ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

OpenCompass 评测结果持久化实战:数据站上传、覆盖与读取全指南

OpenCompass 评测结果持久化实战:数据站上传、覆盖与读取全指南 模型评测人工智能大模型AI 评测【免费下载链接】opencompassOpenCompass is an LLM evaluation platform, supporting a wide range of models from OpenAI, Anthropic, Gemini, Qwen, GLM, DeepSeek, etc, across 100 datasets covering knowledge, reasoning, coding, science, language, long-context, and safety.项目地址https://gitcode.com/gh_mirrors/op/opencompass点击查看免费下载OpenCompass 默认将评测结果保存在本地工作目录但在团队协作、跨机共享或快速查看已有公共评测结果等场景下往往需要把结果沉淀到统一的数据站。本文基于 docs/en/advanced_guides/persistence.md 与仓库源码系统讲解 OpenCompass 评测结果持久化机制的三种核心操作——上传、覆盖更新、读取复用并深入其底层实现帮助你完整掌握数据站的目录格式、参数语义与调用链实现评测结果的可靠沉淀与高效复用。一、为什么需要结果持久化OpenCompass 在运行一次评测时会按时间戳生成工作目录默认形如outputs/default/20250927_020705/参见 opencompass/cli/main.py评测产物inference 阶段的 predictions、evaluation 阶段的 results默认只落盘在该工作目录下。这种模式在以下场景会遇到问题团队共享多个评测者需要彼此复用已跑过的模型-数据集结果避免重复消耗算力快速浏览希望直接查看他人或历史任务的公共评测结果而不必重新运行评测结果归档将关键评测结果统一沉淀到指定公共路径便于长期留存和后续对比。为此OpenCompass 在评测任务链路中提供了数据站results station机制一个普通的本地/共享目录配合三个 CLI 参数-sp/--station-path、--station-overwrite、--read-from-station即可完成上传、更新、读取三类操作。二、快速开始向数据站存储数据上传评测结果有两种等价方式命令行参数或 Eval 脚本配置。方式一在 CLI 评测指令中添加-sp参数在原有的opencompass评测命令后追加-sp--station-path并指定公共路径地址即可opencompass ... -sp /your_path方式二在 Eval 脚本中添加station_path配置在评测配置脚本中直接声明station_path效果与命令行参数一致station_path /your_path从源码看两种方式最终都会被消费命令行参数优先级更高脚本配置作为兜底。在 opencompass/utils/result_station.py 中if args.station_path is not None: station_path args.station_path else: station_path cfg.get(station_path)主流程在 opencompass/cli/main.py 中触发上传if args.station_path is not None or cfg.get(station_path) is not None: save_to_station(cfg, args)也就是说只要-sp或station_path任一被设置评测主流程结束后就会自动调用save_to_station把本次结果转存到数据站。三、去重与更新--station-overwrite的语义数据站存储并非无脑覆盖。上传前系统会根据模型与数据集配置中的abbr属性判断数据站中是否已存在相同任务的结果若{dataset_abbr}/{model_abbr}.json已存在则取消本次存储并打印提示result of {dataset} with {model} already exists若需要更新这部分旧结果请追加--station-overwriteopencompass ... -sp /your_path --station-overwrite对应源码逻辑位于 opencompass/utils/result_station.py当文件已存在且未开启station_overwrite时直接continue跳过开启后则允许重新写入。此外若本次运行还开启了--read-from-station上传阶段会额外参考已读到的结果组合rs_exist_results凡是已从数据站读到结果的任务同样在未开启 overwrite 时被跳过opencompass/utils/result_station.py。四、读取复用--read-from-station为了避免重复评测可以开启读取模式已有的结果会被直接下载到本地工作目录并参与后续的summarize步骤只有数据站中未存储结果的任务才会真正启动评测。opencompass ... -sp /your_path --read-from-station底层调用链读取在评测启动前完成位于 opencompass/cli/main.pyif args.read_from_station: existing_results_list read_from_station(cfg, args) rs_exist_results [comb[combination] for comb in existing_results_list] cfg[rs_exist_results] rs_exist_resultsread_from_stationopencompass/utils/result_station.py的核心动作是遍历配置中的每个model × dataset组合检查{station_path}/{dataset}/{model}.json是否存在将找到的结果文件中的results字段下载写入本地工作目录{work_dir}/results/{model}/{dataset}.json返回所有已存在组合的列表combination记录[model_abbr, dataset_abbr]。为什么下载到本地就能参与 summarize这是因为汇总summarize阶段天然只读本地结果目录。以 opencompass/summarizers/default.py 的_pick_up_results为例它通过get_infer_output_path(model, dataset, osp.join(self.work_dir, results))读取每个模型在每个数据集上的数值结果。因此只要read_from_station把数据站结果落回work_dir/results汇总流程无需任何改动即可直接消费这些复用结果。一个隐含约束从 opencompass/cli/main.py 可以看到在eval或viz模式下要么指定-r/--reuse要么必须同时指定--read-from-station与--station-path否则会抛出 ValueError。这是设计上的强制校验确保任务要么复用本地历史结果要么从数据站读取结果。五、指令组合仅上传最新结果不补跑缺失任务在纯归档场景下你可能只想把最新一次工作目录中的结果上传到数据站而不希望系统为了补齐缺失结果而启动新的评测任务。此时组合-r latest与-m vizopencompass ... -sp /your_path -r latest -m viz-r latest复用work_dir下最新时间戳的实验目录参见 opencompass/cli/main.py-m viz仅执行可视化/汇总流程不启动 infer/eval 任务在 viz 模式下save_to_station遇到本地缺少的 results 或 predictions 文件时会直接跳过而非报错opencompass/utils/result_station.py从而保证能传多少传多少。六、数据站存储格式在数据站中评测结果按model-dataset 对组织为 JSON 文件目录形式为/your_path/dataset_name/model_name.json例如-sp /data/station且评测了mmlu数据集上的Qwen2.5-7B模型则对应文件为/data/station/mmlu/Qwen2.5-7B.json。这里的dataset_name与model_name均来自配置中的abbr字段详见下文第七节。每个 JSON 文件存储一个结果字典包含predictions、results、cfg三个子项Result { predictions: List[Dict], results: Dict, cfg: Dict { models: Dict, datasets: Dict, # 仅主观评测数据集才有 judge_models: Dict } }字段含义如下字段类型含义predictionsList[Dict]模型对数据集中每一条数据的预测结果列表resultsDict模型在该数据集上的评分/汇总指标如 accuracy、score 等cfgDict本次评测任务中模型与数据集的详细配置主观评测数据集额外包含judge_models评测模型配置这一结构与 opencompass/utils/result_station.py 中的组装逻辑完全对应predictions来自本地work_dir/predictions/{model}下按正则^{dataset}(?:_\d)?\.json$匹配到的预测文件results来自work_dir/results/{model}/{dataset}.jsoncfg则从配置中按 abbr 精确匹配出模型与数据集的原始配置项。七、源码级原理abbr 如何决定存储路径与去重数据站的上传去重、路径命名全部围绕配置中的abbr属性展开。相关实现位于 opencompass/utils/abbr.pymodel_abbr_from_cfg优先取模型配置中的abbr字段若未显式指定则按type 模型路径末两段拼出默认缩写dataset_abbr_from_cfg优先取数据集配置中的abbr字段否则用path可能拼接name并替换/为_。由此可以推断出数据站文件命名的完整规则{station_path}/{dataset_abbr}/{model_abbr}.json这也解释了为什么相同任务的判定完全依赖 abbr——只要模型和数据集配置的 abbr 一致即使配置的其他细节不同也会被视为同一任务结果而被去重拦截。八、主观评测的特殊处理当配置中包含judge_models即主观评测时上传与读取会走独立的处理分支opencompass/utils/result_station.py文件名为{base_model_name}{model_abbr_of_model_and_judge}.json其中基础模型缩写会作为前缀如base_model_形式cfg字典会额外携带judge_models配置项读取时会按模型-裁判组合拼接多个结果文件路径只有当全部组合在数据站中都存在时才判定该模型-数据集结果完整可用opencompass/utils/result_station.py。若某模型-数据集结果在数据站中只存在一部分不完整读取流程会打印results of ... at station is not complete该任务仍会被启动评测。九、使用建议与注意事项路径权限-sp指向的可以是本地目录、共享盘或任何可读写的公共路径OpenCompass 在上传时会自动os.makedirs创建{dataset}子目录。组合使用读取上传--read-from-station与-sp同时使用时读取到的结果会在上传阶段被自动跳过除非--station-overwrite可放心用于增量补齐场景。viz 模式上传-m viz下即使本地结果文件不完整也不会报错适合批量归档历史结果而普通 eval 模式下缺少本地文件会直接抛出invalid file错误需确保结果文件存在。主观评测完整性读取主观结果时务必保证数据站中该任务的全部模型-裁判组合文件齐全否则系统仍会重新评测。与默认工作目录的关系数据站只承载predictions/results/cfg三类信息其余如日志、配置快照等仍保留在本地工作目录需要完整复现时请同时保留工作目录。十、小结评测结果持久化是 OpenCompass 在本地工作目录 时间戳子目录默认模式之上提供的一套轻量共享机制通过-sp/--station-path指定数据站、--station-overwrite控制覆盖、--read-from-station实现读取复用配合-r latest -m viz等指令组合即可覆盖归档、共享、增量复用等典型场景。其核心实现集中在 opencompass/utils/result_station.py上传/读取逻辑与 opencompass/cli/main.py参数解析与主流程调度数据站目录格式稳定为dataset_abbr/model_abbr.json包含predictions、results、cfg三部分。掌握这套机制后团队即可围绕统一的公共路径沉淀评测资产显著减少重复评测开销。赞分享模型评测人工智能大模型AI 评测【免费下载链接】opencompassOpenCompass is an LLM evaluation platform, supporting a wide range of models from OpenAI, Anthropic, Gemini, Qwen, GLM, DeepSeek, etc, across 100 datasets covering knowledge, reasoning, coding, science, language, long-context, and safety.项目地址https://gitcode.com/gh_mirrors/op/opencompass点击查看免费下载相关推荐OpenCompass评测结果持久化机制详解OpenCompass评测结果持久化机制详解 引言 在大模型评测过程中评测结果的存储与管理是一个重要环节。OpenCompass提供了一套完善的评测结果持久化模型评测人工智能大模型AI 评测OpenCompass 评估结果持久化机制详解OpenCompass 评估结果持久化机制详解 引言 在大规模语言模型评估过程中结果持久化是确保评估数据可靠性和可重现性的关键环节。OpenCompass 作模型评测人工智能大模型AI 评测GPT-Crawler与数据库集成持久化存储爬取结果GPT Crawler与数据库集成持久化存储爬取结果 引言解决GPT训练数据的存储困境 你是否在使用GPT Crawler时遇到过这些问题爬取结果分散在多AI 应用RAG人工智能网页爬虫上一篇推荐开源项目json-stringify-safe - 解锁安全的JSON字符串化新体验下一篇如何用Engine-Sim打造专属发动机自定义参数与声音的完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表