尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Marin评估系统架构完全设计:从45份Serving配置到数据迁移机制
Marin评估系统架构完全设计从45份Serving配置到数据迁移机制【免费下载链接】marinOpen-source framework for the research and development of foundation models.项目地址: https://gitcode.com/GitHub_Trending/ma/marinMarin是一个面向基础模型研究与开发的开源框架其评估系统evaluation system用一条命令即可完成选择模型 → 拉起推理服务 → 跑完全部评测 → 落盘可查询记录的完整闭环。本文带你拆解 Marin 评估系统的两大核心设计以 44 份模型 YAML外加 1 份 schema 说明共 45 个文件组成的 Serving 配置目录以及一套迁移前先验证、失败可随时恢复的数据迁移机制。无论你是想为自己的大模型接入标准化评测还是研究可靠的实验数据归档方案这套设计都值得借鉴。 一图看懂Marin 评估系统的整体架构Marin 的评估系统位于 experiments/evaluation/ 目录围绕一次服务、多次评测的思路组织启动器Launcher接收模型 评测集两个输入自动计算推理服务需要多大的硬件切片提交一个 CPU 编排任务编排器Orchestrator把模型服务起来一次然后按顺序对同一个推理端点运行所有选中的评测记录Record每个评测独立写一份record.json整个套件共享同一个group_id仪表盘扫描这些记录后即可查询仪表盘Evaldash后台摄取器扫描对象存储中的记录upsert 进eval_runs与eval_metrics两张表评测器本身不连接任何数据库。 架构细节见 experiments/evaluation/README.md用户向的完整教程见 docs/tutorials/run-lm-evals.md。 45份Serving配置模型目录是如何组织的评估系统要回答的第一个问题是这个模型该用什么参数起服务Marin 的答案是一份按组织分目录的 YAML 模型目录位于 experiments/evaluation/serve/models/serve/models/ ├── Qwen/ Qwen3-32B.yaml、Qwen3-30B-A3B-Instruct-2507.yaml … ├── allenai/ SERA-32B.yaml、tmax-27b.yaml … ├── laion/ CoderForge、Sera 系列训练 checkpoint 评测 … ├── SWE-bench/ SWE-agent-LM-32B.yaml … ├── QuantTrio/ GLM-4.6-AWQ.yaml … └── 共 16 个组织目录44 份模型 YAML 1 份 schema README每份 YAML 描述五个部分schema 定义在 serve/models/README.md配置块作用新手理解location/revision模型来源HF 仓库 ID 或gs:///s3://导出路径 可选的不可变版本钉扎评测哪个模型、哪一版权重resource_hintHBM 预算如 21GB或精确 GPU 形状如{H100: 2}选多大的一张卡servevLLM 服务行为张量并行、上下文长度、工具调用解析器等服务怎么起generation生成预算与额外生成参数如思维模型关闭特殊 token 剥离采样怎么调agentAgentic 评测传给智能体的请求参数智能体怎么对话以 Qwen3-32B.yaml 为例仅需 16 行 YAML声明 2 张 H100、张量并行 2、32K 上下文、hermes 工具调用解析器就能让启动器自动完成硬件选型与服务拉起。配置即目录config-as-catalog的好处新增一个模型只需加一个文件字段写错会在加载时报错而不是等到服务运行时才炸。除了 YAML 目录还有第二条注册路径——models.py 中的Python 工厂用于需要动态计算服务参数的手调模型如 256 专家 MoE 模型需要显式指定数据并行 专家并行。两条路径汇入同一个缓存的models()注册表重名会直接报错避免歧义。 一条命令的评估闭环smoke / core / agentic 三大套件选好模型后评测集用套件名或逗号分隔的评测键选择共三档smoke冒烟套件截断版 MMLU 截断版 GSM8K用于集群快速体检几分钟出结果core核心套件11 个标准基准mmlu、gsm8k、arc-challenge、hellaswag、winogrande、truthfulqa、boolq、piqa、openbookqa、humaneval、math500一次启动模型、一次共享端点、11 份独立记录在仪表盘上形成完整的模型 × 任务评测网格agentic智能体套件通过 Harbor 运行沙箱化智能体基准tb2、swebench、gaia、bfcl、aider 等沙箱内终端智能体经能力 URL 访问被服务的模型验证器打分后归一化为标准评测样本。除了注册表内置评测Marin 还支持两类文件驱动的评测配置无需修改代码即可扩展Evalchemy 配置configs/evalchemy/ 下 23 份 YAMLgsm8k、mmlu、ifeval、olympiadbench…通过--evalchemy-config追加提交单文件单评测单记录Harbor 配置configs/harbor/ 下 13 份智能体基准策略 YAMLswebench、aime、gaia…通过--harbor-config追加且支持注册表评测 文件策略在同一次启动中混合运行。所有机制代码集中在marin.evaluation包Evalchemy 与 Harbor 运行在隔离的 uv 环境中钉扎精确版本保证评测可复现。 评估结果如何落盘record.json 是唯一的真相源每个评测写入{records_prefix}/{run_id}/record.json它是整个评估系统的唯一真相源source of truth包含归一化的模型配置、硬件信息、运行状态succeeded/failed/artifact_failed/infra_failed每任务指标、来源溯源信息、归一化的评测器配置共享的group_id与背后所有 Iris 作业路径编排器、推理子任务、本评测子任务失败运行时额外附带失败子任务的最后 100 行日志——大多数失败不用登录集群就能定位。与此同时每道被单独打分的题目会导出为 Parquet每样本契约EvalSample可用 pandas/duckdb 或 Pydantic 直接读回对任意一次运行钻取到样本级。这种JSON 记录做索引、Parquet 存样本、仪表盘只做查询的分层让评测结果既适合人看也适合程序分析。 数据迁移机制升级前验证、失败可恢复评估系统最容易被忽视、却最见功力的部分是 migrations/ 下的数据迁移工具。Marin 的评测归档经历了从 v1按任务散落的samples_*.parquet到 v2统一的 FineStore 归档见 lib/finestore/的格式升级其迁移流程有四个鲜明特点1️⃣ 非破坏性冒烟smoke-upgrade升级前先在一个受控平台上跑非破坏性验证选一个已封存的 v1 归档把 FineStore 对象复制到同桶临时前缀迁移副本后将每个源对象与去重表行和 v2ReadView逐一对比。最终的statusvalidated输出包含对象数、字节数、聚合摘要、每表行数和 v2 提交令牌——源数据全程保持 v1 不动。2️⃣ 全量演练fleet rehearsalsmoke-upgrade-fleet先以--mode inventory扫描新旧两代记录根目录、去重共享结果路径列出所有已封存归档干跑报告精确选择并拒绝读取任何不可读记录再以完整演练把每个归档克隆到带tmp/ttl1d生命周期的临时根下独立校验只有全部通过后才可用--mode cleanup清理出错则保留现场直到生命周期过期。3️⃣ 幂等 逐对象校验migrate_archive.py回填式迁移把旧 Parquet 写入归档的samples表样本按(task, doc_id, trial_id, filter)去重可安全重跑。对智能体样本还会把引用的轨迹拉进blobs表、展开为steps表若旧轨迹在对象存储中已丢失样本与原 URI 会被原样保留——归档永远是幸存数据的忠实表示。归档旧文件时每个对象先复制、再校验大小与校验和最后才删源复制阶段失败会完整保留旧布局。4️⃣ 主键升级的先快照后删除samples_v4.pyschema v4 把filter加入主键。由于窄主键写入的行无法与宽主键的行坍合去重工具会把旧表完整复制到区域本地 30 天存储并逐对象核对字节数然后才从活动清单中删除——任何一步失败留下的要么是原始逻辑表、要么是一份表外的完整副本绝不会出现半迁移状态。 这套计划plan→ 迁移migrate→ 验证validate→ 归档archive四段式 全程幂等 生命周期兜底的设计是任何实验数据平台升级格式时的可靠范本。️ 新手快速上手三步跑通第一次评估看干跑计划uv run python -m experiments.evaluation.cli launch --model qwen3-8b --evals smoke --dry-run——不提交任何任务只看解析出的计划换模型加配置对未入库的导出 checkpoint用--model-config /path/to/fresh-checkpoint.yaml直接传入同 schema 的 YAML 即可无需修改目录看结果等待对象存储中的record.json写入CLI 会打印各任务指标仪表盘会自动摄取形成模型 × 任务评测网格。更多选项--accelerator指定精确切片、--limit限制实例数、--federated_cluster指定 GPU 集群等见 experiments/evaluation/README.md 的 Commands 一节。️ 关键文件导航内容路径评估系统总览与命令experiments/evaluation/README.mdServing 配置 schema 说明experiments/evaluation/serve/models/README.md示例模型配置experiments/evaluation/serve/models/Qwen/Qwen3-32B.yaml模型注册表Python 工厂experiments/evaluation/models.py启动器 CLIexperiments/evaluation/cli.py流水线集成eval_stepexperiments/evaluation/pipeline.py遗留样本回填迁移experiments/evaluation/migrations/migrate_archive.pyschema v4 主键升级experiments/evaluation/migrations/samples_v4.py迁移 CLI 入口experiments/evaluation/migrations/cli.py归档存储库 FineStorelib/finestore/用户向评测教程docs/tutorials/run-lm-evals.md总结Marin 的评估系统用YAML 即目录管理了 44 份跨组织、跨训练阶段的模型 Serving 配置用一次服务、多评测、单真相源记录把评测成本与查询体验做了平衡再用一套幂等、可演练、可恢复的迁移机制守护历史实验数据。这三层设计——配置、闭环、迁移——正是它值得大模型团队关注的地方。【免费下载链接】marinOpen-source framework for the research and development of foundation models.项目地址: https://gitcode.com/GitHub_Trending/ma/marin创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

Shaka Player 模糊语言匹配(Fuzzy Locale Matching)机制解析:从设计策略到源码实现

Shaka Player 模糊语言匹配(Fuzzy Locale Matching)机制解析:从设计策略到源码实现

Shaka Player 模糊语言匹配(Fuzzy Locale Matching)机制解析:从设计策略到源码实现 【免费下载链接】shaka-player JavaScript player library / DASH & HLS client / MSE-EME player 项目地址: https://gitcode.com/GitHub_Trending/s…

📅 2026/9/16 13:23:21
STC15单片机超声波测距OLED显示实战:从原理到原理图设计

STC15单片机超声波测距OLED显示实战:从原理到原理图设计

简介:这份面向STC15单片机初学者的超声波测距项目,集成了测距算法、OLED显示与硬件原理图,适用于嵌入式课程设计、竞赛备赛或实际避障模块开发,也可作为毕业设计参考。方案基于IAP15系列8051内核MCU,通过HC-SR04类超声…

📅 2026/9/16 13:18:20
C#对象映射实战:反射、特性与表达式树应用

C#对象映射实战:反射、特性与表达式树应用

1. 项目背景与核心目标最近在重构一个老旧的.NET项目时,我遇到了一个经典问题:如何在不同的数据模型之间进行高效、安全的属性映射。手动编写每个属性的赋值代码不仅枯燥乏味,还容易出错。这时候很自然地想到了AutoMapper这个业界标杆&#x…

📅 2026/9/16 13:18:20
MORE NEWS

更多资讯

📰

OptiScaler 完整指南:让任何游戏用上 FSR4 与帧生成

OptiScaler 完整指南:让任何游戏用上 FSR4 与帧生成 【免费下载链接】OptiScaler OptiScaler bridges upscaling/frame gen across GPUs. Supports DLSS2/XeSS/FSR2 inputs, replaces native upscalers, enables FSR-FG/XeFG on non-FG titles. Supports Nukem mod …

📰

WeChatMsg完整指南:3种格式永久保存微信聊天记录,还能生成年度聊天报告

WeChatMsg完整指南:3种格式永久保存微信聊天记录,还能生成年度聊天报告 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.c…

📰

OBLITERATUS 敏感数据审计报告:硬编码密钥、凭据与环境变量安全治理实践

OBLITERATUS 敏感数据审计报告:硬编码密钥、凭据与环境变量安全治理实践 【免费下载链接】OBLITERATUS OBLITERATE THE CHAINS THAT BIND YOU 项目地址: https://gitcode.com/GitHub_Trending/ob/OBLITERATUS 本文是基于 OBLITERATUS 仓库(docs/S…

📰

WebdriverIO DevTools Session Screencast 指南:用 CDP / BiDi 将浏览器会话自动录制为 WebM 视频

WebdriverIO DevTools Session Screencast 指南:用 CDP / BiDi 将浏览器会话自动录制为 WebM 视频 【免费下载链接】webdriverio Next-gen browser and mobile automation test framework for Node.js 项目地址: https://gitcode.com/GitHub_Trending/we/webdrive…

📰

Instructor 批量处理实战指南:一套 BatchProcessor 代码跑通三家供应商

Instructor 批量处理实战指南:一套 BatchProcessor 代码跑通三家供应商 【免费下载链接】instructor structured outputs for llms 项目地址: https://gitcode.com/GitHub_Trending/in/instructor 这是一篇 Instructor 批量处理实战指南:用 Batc…

📰

OptiScaler 上采样自由切换:跨显卡替换 DLSS/FSR/XeSS 的 3 步安装与 12 项实战配置

OptiScaler 上采样自由切换:跨显卡替换 DLSS/FSR/XeSS 的 3 步安装与 12 项实战配置 【免费下载链接】OptiScaler OptiScaler bridges upscaling/frame gen across GPUs. Supports DLSS2/XeSS/FSR2 inputs, replaces native upscalers, enables FSR-FG/XeFG on non-…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬