# 构建评测指数(Index) 通过 **Collection**,你可以在 EvalScope 中定义属于自己的 **评测指数(Index)**: 把多个数据集按业务价值“配比”在一起,一次跑测,得到贴合你真实场景的综合评分。 --- ## 什么时候需要自定义 Index? 很多团队在选型时只看单一基准(例如 MMLU 分数),但往往遇到几个典型问题: - **单一数据集不等于真实场景** 你的实际场景可能是: - RAG 问答(知识库检索 + 回答) - 金融/法律等垂直领域分析 - 代码补全与代码审查 这些往往难以被某一个公开数据集完全覆盖。 - **公共榜单不等于你的最佳模型** 榜单关注“通用能力”,而你更关心“业务价值”: - 哪个模型更适合你的 RAG workflow? - 哪个模型在你关心的领域错误率最低? - 哪个模型在成本和效果之间更平衡? - **你需要一个“反映自己价值观”的指数** 就像: - [Artificial Analysis Intelligence Index](https://artificialanalysis.ai/methodology/intelligence-benchmarking#intelligence-index-evaluation-suite-summary) 聚焦通用智力能力 - [Vals Index](https://www.vals.ai/benchmarks/vals_index) 聚焦商业价值 你也可以定义一个 **只服务于你业务决策的 Index**。 EvalScope 的 **Collection** 就是为此设计的: 你可以把多个数据集“打包”,按业务重要性设置权重,形成一个真正属于你的评测指数。 --- ## 核心心智模型:Collection = 带权重的多数据集评测 可以把 Collection 理解为: > 一个描述“我关心什么,以及各占多少比重”的 **配置文件** > → 抽样出一个混合数据集 > → 用 EvalScope 一次性评测 > → 得到一份按你价值观加权的“模型综合得分表”。 从使用者角度,你只需要关心三件事: 1. 我要评哪些 **数据集**? 2. 每个数据集在我的决策里 **占多少权重**? 3. 我希望从这些数据集中 **怎么抽样**(多少样本、如何分布)? --- ## 从 0 到 1:如何使用 Collection 构建 Index? 下面是一个最小可用的工作流,帮助你快速上手。 ### 1. 定义 Schema:声明“我在意什么” 在 **Schema** 中,你需要做两件事: - 选定要纳入 Index 的 **数据集列表** 例如: - `gsm8k`:基础数学推理 - 一个内部构造的 RAG 问答数据集 - 一个代码补全数据集 - 为每个数据集设置 **权重(weight)** 权重可以反映你对不同能力维度的重视程度: - RAG 场景占 50% - 金融问答占 30% - 一般推理能力占 20% **更多细节请见:** [定义你的 Schema](schema.md)。 --- ### 2. 采样数据:从多个数据集中抽出代表性样本 基于 Schema,EvalScope 可以为你生成一个 **混合数据集 JSONL**。 你可以通过几种常见策略来控制采样方式: - **按权重采样**:数据量大致按权重比例分配; - **分层采样**:不同难度等级/子任务都能被覆盖; - **均匀采样**:每个数据集取固定数量样本,方便做对比。 最终得到的是一个“已经混好”的 JSONL 文件,后续评测只需要对这个 JSONL 跑一遍即可。 **采样方式与命令示例:** 见 [如何采样](sample.md)。 --- ### 3. 统一评测:一次跑出你的专属指数得分 拿到混合 JSONL 以后,你可以: - 像评测普通数据集一样调用 `evalscope eval` - 一次性得到: - 各个子数据集的得分 - 按权重聚合后的 **Index 总分** - 对应的详细日志、预测、评审与报告 评测完成后,你可以用: - 报表汇总不同模型在同一个 Index 下的表现; - EvalScope 的 **可视化应用(`evalscope service`)** 直观对比模型优劣。 **具体评测命令与示例输出:** 见 [如何评测](evaluate.md)。 :::{toctree} :maxdepth: 1 schema.md sample.md evaluate.md :::