技能使用指南

hugging-face-evaluation(HuggingFace模型评估管理)Skill 是什么?如何下载?

HuggingFace模型评估管理Skill 能一键把 README 评估表格、Artificial Analysis 基准分数或 vLLM 本地评测结果写入模型卡 model-index,自动生成合规 YAML 并支持提 PR 前查重。本文详解安装步骤、四种使用方法、竞品对比与常见问题,帮模型作者快速补齐结构化评估数据、提升排行榜曝光。

HuggingFace模型评估管理Skillhugging-face-evaluation
8 个章节 约 22 分钟阅读 AI 智能生成

HuggingFace模型评估管理Skill:把评估分数一键写进模型卡,让模型实力被看见

  • 一句话定位:这是一款专为 Hugging Face 模型卡打造评估数据管理工具,能把 README 里的评估表格、Artificial Analysis 的基准分数,或你自己跑出来的评测结果,转换成标准 model-index 元数据并写入模型卡。
  • 四条数据通路:README 表格提取、Artificial Analysis API 导入、HF Jobs 上的 inspect-ai 评估作业、本地 GPU 上的 vLLM/lighteval 自定义评估,覆盖"已有分数"和"没有分数"两类情况。
  • 生态兼容性:生成的 model-index 遵循 Papers with Code 规范,可直接被 Hugging Face 排行榜识别,避免手工拼 YAML 出错。
  • 安全护栏:内置 get-prs 检查机制,创建 PR 前先查重,避免向他人模型仓库提交重复评估请求,把维护者的负担降到最低。
  • 低门槛:基于 uv run 的 PEP 723 脚本头自动装依赖,一条命令即可预览、应用或提 PR,当前版本 1.3.0。

该技能叫什么?如何下载安装 AI 技能提升开发效率?

技能基本信息

项目 内容
中文名 HuggingFace模型评估管理Skill
英文名 hugging-face-evaluation
技能ID 13634
当前版本 1.3.0

它解决什么问题

在 Hugging Face 上发布模型,光有权重和 README 还不够。社区用户、排行榜、下游开发者判断一个模型"行不行",主要看模型卡里的 model-index 结构化评估数据。但现实中,评估分数往往散落在 README 的 Markdown 表格里、第三方评测网站的页面上,或者是自己跑完还没整理的评测日志里。手工把这些内容改写成符合规范的 YAML,既枯燥又容易写错字段、写错缩进、写错模型名。

这个技能就是把这套"评估数据搬运与规范化"的流程自动化:解析表格、拉取 API 分数、运行评测、生成 YAML、合并进模型卡、必要时自动开 PR,全链路一气呵成。

一键安装与验证步骤

  1. 安装前提:准备一个可用的 Hugging Face 账号与具备写入权限的访问令牌(HF_TOKEN);如果要导入 Artificial Analysis 分数,还需要对应的 AA_API_KEY;如果要跑自定义模型评估,需要本地有 GPU 且安装了 uv。
  2. 进入技能目录:所有脚本路径都是相对于包含 SKILL.md 的目录,运行前先 cd 到该目录,或使用完整路径。
  3. 安装依赖(推荐方式):首选 uv run,脚本头遵循 PEP 723 规范,会自动安装所需依赖,无需手动配置环境。若你的环境不便使用 uv,也可手动安装核心依赖:pip install huggingface-hub markdown-it-py python-dotenv pyyaml requests。启用 vLLM 自定义评估时,还需 lighteval[accelerate,vllm]>=0.6.0、vllm>=0.4.0、torch>=2.0.0、transformers>=4.40.0、accelerate>=0.30.0。具体版本约束与更新以官方说明为准。
  4. 配置环境变量:设置 HF_TOKEN(写入令牌)与 AA_API_KEY(按需)。技能支持 python-dotenv,会自动加载 .env 文件,因此也可以把令牌写进 .env 里。
  5. 验证是否生效:运行 uv run scripts/evaluation_manager.py --version 查看版本,运行 uv run scripts/evaluation_manager.py --help 获取最新工作流指南。再执行一次 uv run scripts/evaluation_manager.py inspect-tables --repo-id "用户名/模型名称",若能正常列出 README 中的表格结构,说明环境已就绪。

这里的"一键"并不是魔法,而是把"依赖安装 + 鉴权 + 解析 + 生成 + 推送"打包成一条命令。真正省下来的,是你反复手改 YAML 和反复调试格式的时间。

该技能的主要功能和特点

  • README 评估表格提取:用 inspect-tables 查看 README 中所有表格的结构、列名与示例行,再用 extract-readme --table N 指定表格。基于 markdown-it-py 做精准解析,会忽略代码块和示例中的"假表格",避免误抓。
  • 格式智能识别:能识别"基准作为行、模型作为列"的常规表格,也能识别"模型作为行、基准作为列"的转置表格,以及包含多个模型的对比表格。
  • 模型名精确匹配:采用精确归一化令牌匹配,自动去除粗体、链接等 Markdown 格式,统一大小写与分隔符,"OLMo-3-32B" 能匹配到 "**Olmo 3 32B**",但匹配不到就报错,绝不猜,从源头杜绝把别的模型分数抄进来。
  • Artificial Analysis 直连导入:通过 import-aa 从 Artificial Analysis API 拉取基准分数,自动转成 model-index 格式,同时保留来源名称与 URL 归属信息,并附带针对临时 API 故障的重试逻辑。
  • model-index 管理与合并:生成符合 Papers with Code 规范的 YAML,向已有模型卡追加条目而非覆盖,支持批量处理多个模型,并提供 show、validate 子命令做查看与校验。
  • HF Jobs 上跑评估作业:用 hf jobs uv run 把 inspect-ai 评估脚本直接提交到 Hugging Face 基础设施运行,无需编写 Dockerfile、无需管理 Space,可选 CPU 或 GPU 硬件规格,API 令牌通过 --secret 安全传递。
  • vLLM 自定义模型评估:基于 lighteval 或 inspect-ai,用 vLLM 后端在本地 GPU 或 HF Jobs GPU 上跑 Open LLM 排行榜任务,官方描述其推理速度相比标准 HF 方法有显著提升,且模型下载后可离线运行。
  • PR 防重复机制:get-prs 列出仓库所有开放 PR 的编号、标题、作者、日期和 URL,创建新 PR 前必须先行检查,这是写进技能说明的硬性要求。
  • 输出即预览:extract-readme 默认只打印 YAML 不写入,让你先人工比对 README 表格再决定 --apply 还是 --create-pr,把不可逆操作放到最后一步。

与普通"手改 README"的方式相比,它的差异化不在于"能填表",而在于解析准确、格式合规、合并安全、来源可溯、流程可复用。

如何使用该技能?

方法一:从 README 提取评估表格(最常用)

  1. 先查重:uv run scripts/evaluation_manager.py get-prs --repo-id "用户名/模型名称"。如果已有开放 PR,不要新建,把 PR 链接告知相关方即可。
  2. 看表结构:uv run scripts/evaluation_manager.py inspect-tables --repo-id "用户名/模型",输出会告诉你共有几张表、每张表的编号、列标题和若干示例行。
  3. 试提取并预览:uv run scripts/evaluation_manager.py extract-readme --repo-id "用户名/模型" --table 1。此时终端只打印 YAML,不会改动仓库。
  4. 处理多模型表格:优先用 --model-column-index <检查输出中的列索引> 指定模型所在列;无法用索引时再用 --model-name-override "精确列标题",注意标题文本必须与检查结果完全一致。
  5. 补充任务类型:用 --task-type "text-generation" 设置 task.type 字段,用 --dataset-name "自定义基准" 覆盖数据集名称。
  6. 确认写入:自己的模型用 --apply 直接推送;更新他人的模型用 --create-pr 开拉取请求。

示例输出形态如下(YAML,节选):

model-index:
  - name: 模型名称
    results:
      - task:
          type: text-generation
        dataset:
          name: 基准数据集
          type: benchmark_type
        metrics:
          - name: MMLU
            type: mmlu
            value: 85.2
        source:
          name: 来源名称
          url: https://source-url.com

方法二:从 Artificial Analysis 导入分数

  1. 准备好 AA_API_KEY,可写入 .env。
  2. 执行:uv run scripts/evaluation_manager.py import-aa --creator-slug "anthropic" --model-name "claude-sonnet-4" --repo-id "用户名/模型名称"。
  3. 确认结果无误后,追加 --create-pr 发起 PR。注意 creator-slug 与 model-name 必须与 API 中的取值一致。

方法三:在 HF Jobs 上运行评估

  1. 用 hf jobs uv run scripts/inspect_eval_uv.py --flavor cpu-basic --secret HF_TOKEN=$HF_TOKEN -- --model "meta-llama/Llama-2-7b-hf" --task "mmlu" 提交 CPU 作业;换成 --flavor a10g-small 并指定 --task "gsm8k" 即为 GPU 作业。
  2. 也可以用 Python 助手:uv run scripts/run_eval_job.py --model "meta-llama/Llama-2-7b-hf" --task "mmlu" --hardware "t4-small"。

方法四:用 vLLM 跑自定义模型评估

  1. 运行前检查脚本路径、uv 是否安装、nvidia-smi 是否能看到 GPU。
  2. lighteval 方式:uv run scripts/lighteval_vllm_uv.py --model meta-llama/Llama-3.2-1B --tasks "leaderboard|mmlu|5";多任务用逗号分隔;不想用 vLLM 可加 --backend accelerate;指令微调模型加 --use-chat-template。
  3. inspect-ai 方式:uv run scripts/inspect_vllm_uv.py --model meta-llama/Llama-3.2-1B --task mmlu;大模型可加 --tensor-parallel-size 4。
  4. 任务命名遵循 suite|task|num_fewshot,如 leaderboard|mmlu|5、leaderboard|gsm8k|5、lighteval|hellaswag|0。
  5. 想让脚本自动挑硬件:uv run scripts/run_vllm_eval_job.py --model meta-llama/Llama-3.2-70B --task mmlu --framework inspect --hardware a100-large --tensor-parallel-size 4。

硬件参考:30 亿参数以下可用 t4-small;30 亿至 130 亿用 a10g-small;130 亿至 340 亿用 a10g-large;340 亿以上建议 a100-large。

同类型竞品对比分析

方案名称 定位 核心功能 安装/使用门槛 适用场景 优势与不足
hugging-face-evaluation(本技能) 模型卡评估数据的全流程管家 README 表格提取、AA 导入、model-index 合并校验、HF Jobs 评估、vLLM 自定义评测、PR 防重 中低:uv run 自动装依赖,需 HF_TOKEN,vLLM 评测需 GPU 模型作者补评估、第三方补 PR、团队本地跑基准 优势是端到端打通且格式合规、防重复 PR;不足是 vLLM 路线对硬件有要求,需注意显存
在 Hugging Face 网页手工编辑模型卡 最原始的替代方案 人工复制粘贴 YAML 极低:打开网页即可 只有一两行分数、临时修补 优势是零学习成本;不足是易写错缩进与字段、无法批量、多模型表格易抄错行
直接使用 lighteval 原生命令行 通用评估框架 运行 Open LLM 排行榜等任务并输出结果 中高:需自行配置环境与后端 纯做评测、不关心模型卡格式 优势是任务覆盖广;不足是不负责解析 README、不生成 model-index、不会自动开 PR
EleutherAI lm-evaluation-harness 老牌评测工具链 大量基准任务的评测执行 中高:需自行搭环境、显存与并行需调 学术评测、内网离线评测 优势是基准丰富、社区成熟;不足是与 HF 模型卡元数据链路不直连,仍需手工转格式
Artificial Analysis 网页/API 单独使用 第三方基准聚合平台 提供跨模型基准分数与对比 低:网页可直接查 快速横向看分、做选型参考 优势是数据集中直观;不足是只解决"取分"一环,写入模型卡、格式化、提 PR 仍需另做

从对比可以看出,本技能的不可替代性在于"把分数送到该去的地方"——评测框架只管跑分,聚合平台只管展示,而它负责把分数变成模型卡里能被排行榜识别的结构化数据。

该技能的典型应用场景与实际体验情况

场景一:开源模型作者给自己的新模型补上评估数据

角色是独立开发者或小团队算法工程师。痛点是模型刚上传,README 里有一张从论文搬来的成绩表,但从没转换成 model-index,导致排行榜抓不到、曝光低。使用方式是 inspect-tables 看清表格结构 → extract-readme --table 1 --task-type "text-generation" 预览 YAML → 核对无误后 --apply 推送。实际体验上,这条路径最顺,因为仓库自己有写权限,不需要 PR,几分钟内就能完成。注意事项是要先人工比对 YAML 里的数值与 README 表格是否一致,别把"平均值行"当成模型行提取了。

场景二:研究者为他人的模型补充第三方评测

角色是评测方向的研究者或社区贡献者。痛点是手头跑出了别人的模型分数,想贡献回去,但直接开 PR 容易被维护者视为噪音,甚至和已有 PR 撞车。使用方式严格按技能规定:先 get-prs 查开放 PR,没有重复才 --create-pr。实际体验上,get-prs 输出会列出 PR 编号、标题、作者、日期和 URL,信息足够判断是否重复;如果已有 PR,技能的说明明确要求警告用户并展示链接,而不是硬提。注意点是每个仓库只加主模型的结果,不要把训练检查点的分数也塞进去。

场景三:算法团队在自有 GPU 上跑 MMLU / GSM8K 验证微调效果

角色是模型微调工程师。痛点是微调后想知道相对基线的涨跌,但不想把模型上传到任何平台、也不想付 API 费用。使用方式是先 nvidia-smi 确认显卡可用,再用 uv run scripts/lighteval_vllm_uv.py --model meta-llama/Llama-3.2-1B --tasks "leaderboard|mmlu|5" 本地跑,vLLM 后端加载快、吞吐高;不想用 vLLM 就切 --backend accelerate。实际体验上,任务串 suite|task|num_fewshot 一眼能懂,--use-chat-template 对指令模型很关键,忘了加会导致分数明显偏低。注意事项是显存紧张时容易 OOM,可以换更大的硬件规格、调低 --gpu-memory-utilization,或用 --tensor-parallel-size 做多卡并行;遇到 vLLM 不支持的架构,切 --backend hf;像 Phi-2、Qwen 这类需要自定义代码的模型要加 --trust-remote-code。

场景四:社区维护者批量对齐多个模型的公开分数

角色是模型榜单或合集仓库的维护者。痛点是几十个模型的分数来源五花八门,格式各异,逐个手改几乎不可行。使用方式是 --creator-slug + --model-name 组合批量调用 import-aa,把 Artificial Analysis 的分数直接落到各自的模型卡,来源 URL 一并保留。实际体验上,自动格式化与元数据保留省了大量核对工作;但 creator-slug 和 model-name 必须精确匹配 API 取值,写错会提示"Artificial Analysis 中未找到模型",需要先确认拼写。

该技能能为用户带来的价值

效率层面:把一个"看表格 → 抄数字 → 拼 YAML → 校对缩进 → 提交 PR"的机械流程压缩成两三条命令。过去处理一张多模型对比表可能要在 README 和编辑器之间来回切换十几分钟,现在预览加确认基本是分钟级。批量导入时差距更明显,因为命令可以脚本化调用(技能本身也给出了 Python 集成示例,用 subprocess 调 extract-readme 即可批量处理)。

质量层面:model-index 规范里最容易踩的坑是字段名写错、task.type 缺失、模型名里带了 Markdown 加粗符号、把别人的分数混进来。技能通过格式校验、精确令牌匹配、合并而非覆盖、来源 URL 保留这几道关卡,把这些错误挡在提交之前。验证命令 validate 和 show 让"改完对不对"有了确定答案。

门槛层面:不需要事先精通 Papers with Code 的 model-index 规范,也不需要理解 lighteval 的任务命名体系。--help 给出最新工作流,inspect-tables 先带你看清数据结构,默认输出即预览,错误信息也会针对"未找到表格"“转置表找不到模型”“令牌无写入权限”“硬件需付费”"CUDA OOM"等具体情形给出明确提示。

长期价值:模型卡里的结构化评估数据会持续被排行榜、选型工具、下游集成方读取。每次评估更新都按同一套标准写入,就等于为模型积累一份可追溯、可对比、可机器读取的"成绩档案",而不是散落在各处的截图和临时表格。加上 PR 查重机制保护了社区协作礼仪,让贡献行为更容易被接受,长期看是模型曝光度和社区口碑的双重收益。

常见问题 FAQ

Q1:这个技能怎么安装?必须用 uv 吗?

不强制。推荐方式是在技能目录下直接 uv run scripts/evaluation_manager.py ...,脚本的 PEP 723 头会自动安装依赖。如果你的环境不便使用 uv,也可以手动执行 pip install huggingface-hub markdown-it-py python-dotenv pyyaml requests 后改用 python scripts/evaluation_manager.py ...。但走 vLLM 自定义评估路线时,技能说明明确要求设备已安装 uv,并具备足够的 GPU 显存。具体依赖版本以官方说明为准。

Q2:用这个技能要花钱吗?

技能本身是脚本工具,不收取费用。可能产生的成本来自两处:一是 HF Jobs 上使用非 CPU 硬件(如 a10g-small、a100-large)会消耗计算资源,需要账户绑卡,遇到"硬件需要付款"提示通常就是没绑支付方式;二是调用 Artificial Analysis API 可能需要相应密钥与额度。在本地 GPU 上跑评估则只耗自己的电和显卡。

Q3:为什么我创建 PR 时被要求先查 PR?

因为模型仓库的维护者最怕被重复评估 PR 淹没。技能把"创建 PR 前先运行 get-prs"写成了硬性流程:如果已存在开放 PR,正确做法是不新建,告知用户已存在、把已有 PR 的 URL 展示出来,只有在用户明确确认要再开一个时才继续。这既是技术流程,也是社区协作礼仪。

Q4:适合谁用?我只想看看别人的模型分数,需要装它吗?

如果只是查分做选型,直接用模型卡或 Artificial Analysis 网页更省事,不需要安装。这个技能的目标用户是三类人:需要为自己的模型补评估数据的作者、想向他人模型提交评估 PR 的贡献者、以及需要在本地或 HF Jobs 上跑基准并落盘格式化的工程团队。

Q5:提取失败或分数对不上该怎么办?

先看错误类型。提示"README 中未找到评估表格",说明 README 里没有带数字分数的 Markdown 表格,需要先补表格或改用 API 导入;提示"在转置表格中找不到模型 X",脚本会列出可用模型名,用 --model-name-override 指定列表中的精确名称(例如 "**Olmo 3-32B**")即可;提示"令牌没有写入访问权限",检查 HF_TOKEN 是否有该仓库写权限;提示"AA_API_KEY 未设置",把密钥写入环境变量或 .env。另外别忘了 extract-readme 默认只打印 YAML,先拿它和 README 表格逐项核对,确认无误再 --apply 或 --create-pr。