
关于
使用 inspect-ai 或 lighteval 对 Hugging Face Hub 模型运行本地评估。
source: "https://github.com/huggingface/skills/tree/main/skills/huggingface-community-evals" name: hugging-face-community-evals description: 使用 inspect-ai 或 lighteval 对 Hugging Face Hub 模型进行本地评估。 risk: unknown
概述
何时使用
当需要进行本地模型评估、后端选择和 GPU 冒烟测试(不使用 Hugging Face Jobs 工作流)时使用此技能。
此技能用于在本地硬件上对 Hugging Face Hub 上的模型运行评估。
涵盖内容:
- 使用本地推理的
inspect-ai - 使用本地推理的
lighteval - 在
vllm、Hugging Face Transformers 和accelerate之间选择 - 冒烟测试、任务选择和后端回退策略
不涵盖:
- Hugging Face Jobs 编排
- 模型卡或
model-index编辑 - README 表格提取
- Artificial Analysis 导入
.eval_results生成或发布- PR 创建或社区评估自动化
如果用户想要在 Hugging Face Jobs 上远程运行相同的评估,请移交给 hugging-face-jobs 技能,并传递此技能中的某个本地脚本。
如果用户想要将结果发布到社区评估工作流,在生成评估运行后停止,并将发布步骤移交给 ~/code/community-evals。
以下所有路径相对于包含此
SKILL.md的目录。
何时使用哪个脚本
| 用例 | 脚本 |
|---|---|
| 通过推理提供商对 Hub 模型进行本地 inspect-ai 评估 | scripts/inspect_eval_uv.py |
| 使用 vllm 或 Transformers 进行本地 GPU inspect-ai 评估 | scripts/inspect_vllm_uv.py |
| 使用 vllm 或 accelerate 进行本地 GPU lighteval 评估 | scripts/lighteval_vllm_uv.py |
| 更多命令模式 | examples/USAGE_EXAMPLES.md |
前置条件
- 本地执行优先使用
uv run。 - 对于受限/私有模型,设置
HF_TOKEN。 - 对于本地 GPU 运行,启动前验证 GPU 访问:
uv --version
printenv HF_TOKEN >/dev/null
nvidia-smi
如果 nvidia-smi 不可用,可以:
- 使用
scripts/inspect_eval_uv.py进行较轻量的提供商支持评估,或 - 如果用户需要远程计算,移交给
hugging-face-jobs技能。
核心工作流
- 选择评估框架。
- 当需要显式任务控制和 inspect 原生流程时使用
inspect-ai。 - 当基准测试自然表达为 lighteval 任务字符串时使用
lighteval,特别是排行榜风格的任务。
- 当需要显式任务控制和 inspect 原生流程时使用
- 选择推理后端。
- 在支持的架构上优先使用
vllm以获得更高吞吐量。 - 使用 Hugging Face Transformers(
--backend hf)或accelerate作为兼容性回退。
- 在支持的架构上优先使用
- 从冒烟测试开始。
inspect-ai:添加--limit 10或类似参数。lighteval:添加--max-samples 10。
- 仅在冒烟测试通过后才扩大规模。
- 如果用户需要远程执行,使用相同的脚本和参数移交给
hugging-face-jobs。
快速开始
选项A:inspect-ai 使用本地推理提供商路径
当模型已被 Hugging Face 推理提供商支持且你想要最低的本地设置开销时最佳。
uv run scripts/inspect_eval_uv.py \
--model meta-llama/Llama-3.2-1B \
--task mmlu \
--limit 20
适用场景:
- 需要快速本地冒烟测试
- 不需要直接 GPU 控制
- 任务已存在于
inspect-evals中
选项B:inspect-ai 本地 GPU
当需要直接加载 Hub 模型、使用 vllm,或对不支持的架构回退到 Transformers 时最佳。
本地 GPU:
uv run scripts/inspect_vllm_uv.py \
--model meta-llama/Llama-3.2-1B \
--task gsm8k \
--limit 20
Transformers 回退:
uv run scripts/inspect_vllm_uv.py \
--model microsoft/phi-2 \
--task mmlu \
--backend hf \
--trust-remote-code \
--limit 20
选项C:lighteval 本地 GPU
当任务自然表达为 lighteval 任务字符串时最佳,特别是 Open LLM Leaderboard 风格的基准测试。
本地 GPU:
uv run scripts/lighteval_vllm_uv.py \
--model meta-llama/Llama-3.2-3B-Instruct \
--tasks "leaderboard|mmlu|5,leaderboard|gsm8k|5" \
--max-samples 20 \
--use-chat-template
accelerate 回退:
uv run scripts/lighteval_vllm_uv.py \
--model microsoft/phi-2 \
--tasks "leaderboard|mmlu|5" \
--backend accelerate \
--trust-remote-code \
--max-samples 20
远程执行边界
此技能有意止步于本地执行和后端选择。
如果用户想要:
- 在 Hugging Face Jobs 上运行这些脚本
- 选择远程硬件
- 向远程作业传递密钥
- 安排定期运行
- 检查/取消/监控作业
则切换到 hugging-face-jobs 技能,并传递其中一个脚本及所选参数。
任务选择
inspect-ai 示例:
mmlugsm8khellaswagarc_challengetruthfulqawinograndehumaneval
lighteval 任务字符串使用 suite|task|num_fewshot 格式:
leaderboard|mmlu|5leaderboard|gsm8k|5leaderboard|hellaswag|10leaderboard|arc_challenge|25