尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

EvalScope 安装与使用说明:从零搭建模型评测环境并接入 TaoToken 统一 Key

EvalScope 安装与使用说明:从零搭建模型评测环境并接入 TaoToken 统一 Key 1. EvalScope 是什么为什么评测环境要先解决 Key 管理EvalScope 是魔搭社区开源的一站式大模型评测框架能跑 MMLU、C-Eval、GSM8K、ARC 这类 200 多个基准也支持 VLM、Embedding、Reranker 以及 TTFT、TPOT、吞吐量这类推理性能指标。它适合谁适合手里有一批模型、想快速横向对比能力又不想自己写评测脚本的开发者。你可以把它理解成一个「模型考试中心」你提供考卷datasets和考生model它负责判卷、出分、生成可视化报告。但真正落地时很多人卡在第一步——评测环境本身。EvalScope 的安装涉及 Python 版本、虚拟环境、依赖编译、注册表加载任何一环出问题都会报Benchmark gsm8k not found。更麻烦的是评测在线模型时每个模型厂商的 Base URL 和 Key 都不一样评测 5 个模型就要维护 5 套凭证脚本里到处是硬编码换台机器就崩。我试过把 Key 直接写进 config.yaml结果提交代码时差点把密钥推上去。后来改成统一走一个 OpenAI 兼容通道所有模型共用一个 Base URL 和一个 Key评测脚本只改model字段凭证完全不动。这篇就按这个思路从零把 EvalScope 装好再接入 TaoToken 统一 Key最后跑通一次完整评测。核心检索词先明确EvalScope 安装与使用说明本质是「本地部署 首次跑通评测流程」。下面每一步都给可复制命令你跟着敲就行。2. 安装 EvalScope 并修复注册表为空的坑2.1 环境准备与虚拟环境EvalScope 要求 Python 3.10Windows、Linux、macOS 都能跑有 GPU 更好本地模型评测会快很多。先建虚拟环境避免污染系统 Python# 创建虚拟环境 python -m venv venv # Windows PowerShell 激活 .\venv\Scripts\Activate.ps1 # Linux / macOS 激活 source venv/bin/activate激活后命令行前面会出现(venv)说明生效了。这一步别跳过EvalScope 依赖里有 torch、accelerate 这类大包装到全局环境后面很难清理。2.2 安装核心依赖进入 EvalScope 源码目录后安装依赖。国内网络建议用清华镜像加速--prefer-binary能优先拿预编译包避开源码编译cd evalscope pip install -r requirements/framework.txt \ -i https://pypi.tuna.tsinghua.edu.cn/simple \ --prefer-binary # 可选本地模型评测需要 pip install torch accelerate \ -i https://pypi.tuna.tsinghua.edu.cn/simple \ --prefer-binary2.3 关键一步用 .pth 修复注册表这是最容易踩的坑。EvalScope 用 editable install 模式在 Windows 下会有 namespace package 问题导致evalscope/__init__.py没被执行注册表全空跑评测直接报Benchmark gsm8k not found。解决办法是手动写一个.pth文件把源码目录挂进 site-packages# Windows 示例路径换成你自己的 echo E:\project\evalscope\evalscope E:\project\evalscope\venv\Lib\site-packages\evalscope.pth # Linux / macOS 示例 echo /home/user/evalscope/evalscope /home/user/evalscope/venv/lib/python3.10/site-packages/evalscope.pth注意.pth里写的是evalscope/evalscope这个内层包目录不是项目根目录。写错了注册表还是空的。2.4 验证安装是否成功两条命令验证。第一条看模块路径应该输出__init__.py的真实路径而不是Nonepython -c import evalscope; print(evalscope.__file__)第二条看注册表数量所有数值都应该大于 0python -c import evalscope; from evalscope.api.registry import BENCHMARK_REGISTRY, MODEL_APIS, METRIC_REGISTRY, AGGREGATION_REGISTRY; print(Benchmarks:, len(BENCHMARK_REGISTRY), Model APIs:, len(MODEL_APIS), Metrics:, len(METRIC_REGISTRY), Aggregators:, len(AGGREGATION_REGISTRY))正常输出类似Benchmarks: 200 Model APIs: 10 Metrics: 30 Aggregators: 5。如果 Benchmarks 是 0回到 2.3 检查.pth路径。这一步过了安装才算真正完成。3. 接入 TaoToken 统一 Key 的配置写法3.1 为什么评测场景需要统一 KeyEvalScope 支持openai_api评测类型只要目标服务兼容 OpenAI 接口就能评。问题在于你评测的模型可能来自不同厂商每家 Base URL 和 Key 都不同。EvalScope 的--api-url和--api-key是单次任务级别的想评多个模型就得改多次脚本。TaoToken 提供 OpenAI 兼容的统一入口一个 Base URL、一个 Key 就能访问多个模型。对评测场景来说这意味着你的config.yaml里凭证部分永远不变只改model字段就能切换被测对象。评测报告、预测结果、对比表格都能在同一个通道下产出复现性也好很多。3.2 获取 Key 与 Base URL先到控制台创建 API Key地址是 https://taotoken.net/console/api-keys 。创建后复制保存Key 只显示一次。Base URL 统一用https://taotoken.net/api注意这个地址不带任何查询参数直接作为 OpenAI 兼容的 base_url 使用。模型 ID 以控制台或文档里列出的为准比如常见的gpt-4o-mini、claude-3-5-sonnet这类命名具体以你账号下可用的为准。3.3 可复制的 config.yamlEvalScope 支持 YAML 配置文件方式把统一 Key 写进去最省事。创建config.yamlmodel: gpt-4o-mini eval_type: openai_api api_url: https://taotoken.net/api api_key: sk-你的TaoToken密钥 datasets: - gsm8k - arc limit: 5 generation_config: max_tokens: 2048 temperature: 0.7 top_p: 0.95 do_sample: false work_dir: ./outputs三个关键字段对齐api_url填https://taotoken.net/apiapi_key填你的 Keymodel填模型 ID。这就是评测场景的「三件套」缺一个都会报 401 或模型找不到。3.4 用 Python 代码方式配置如果你习惯代码里控制等价写法是这样from evalscope.run import run_task task_cfg { model: gpt-4o-mini, eval_type: openai_api, api_url: https://taotoken.net/api, api_key: sk-你的TaoToken密钥, datasets: [gsm8k, arc], limit: 5, generation_config: { max_tokens: 2048, temperature: 0.7, do_sample: False, }, } run_task(task_cfgtask_cfg)保存为demo_api.py运行python demo_api.py即可。生产环境建议把 Key 放环境变量代码里用os.environ[TAOTOKEN_API_KEY]读取避免硬编码。3.5 环境变量方式推荐更干净的做法是走环境变量配置文件里不出现明文 Key# Linux / macOS export TAOTOKEN_API_KEYsk-你的TaoToken密钥 # Windows PowerShell $env:TAOTOKEN_API_KEYsk-你的TaoToken密钥然后 config.yaml 里api_key留空或写占位运行时用脚本注入。这样配置文件可以安全提交到仓库团队协作也不会泄露凭证。4. 跑通第一次评测并验证结果4.1 命令行快速验证先用命令行跑一次最小评测确认通道通了。--limit 5表示每个数据集只取 5 条样本几十秒就能出结果evalscope eval \ --model gpt-4o-mini \ --api-url https://taotoken.net/api \ --api-key $TAOTOKEN_API_KEY \ --eval-type openai_api \ --datasets gsm8k \ --limit 5如果看到进度条滚动、最后打印出得分表格说明通道和评测流程都正常。第一次跑会下载数据集gsm8k 不大很快。4.2 配置文件方式跑完整任务用第 3 节的config.yaml跑python -c from evalscope.run import run_task; run_task(task_cfgconfig.yaml)这次同时评 gsm8k 和 arc 两个数据集输出会分别给出每个数据集的指标。4.3 成功结果长什么样跑完后终端会打印类似这样的表格┌───────────────────────┬───────────┬──────────┬──────────┬───────┬─────────┐ │ Model │ Dataset │ Metric │ Subset │ Num │ Score │ ├───────────────────────┼───────────┼──────────┼──────────┼───────┼─────────┤ │ gpt-4o-mini │ gsm8k │ mean_acc │ main │ 5 │ 0.8 │ │ gpt-4o-mini │ arc │ mean_acc │ main │ 5 │ 0.6 │ └───────────────────────┴───────────┴──────────┴──────────┴───────┴─────────┘Num是样本数Score是准确率。5 条样本的分数波动大只用来验证流程正式评测把limit去掉或调大。4.4 输出目录与可视化报告结果默认落在./outputs/{timestamp}/下结构是outputs/20260728_100401/ ├── configs/ │ └── task_config.yaml ├── reports/ │ ├── gpt-4o-mini/ │ │ ├── gsm8k.json │ │ └── arc.json │ └── report.html └── predictions/ └── gpt-4o-mini/ └── gsm8k_main_preds.jsonreport.html是可视化报告浏览器直接打开就能看多维度对比。想看交互式 WebUI装服务依赖后启动pip install evalscope[service] evalscope service然后访问http://127.0.0.1:9000。predictions/里是每条样本的原始预测排查模型为什么答错时很有用。4.5 多模型对比统一 Key 的好处在这里体现换model字段就能评另一个模型凭证不动。比如再跑一次claude-3-5-sonnet两次报告放一起对比。命令行多模型写法evalscope perf \ --model gpt-4o-mini claude-3-5-sonnet \ --api-url https://taotoken.net/api \ --api-key $TAOTOKEN_API_KEYperf是性能压测模式会输出 TTFT、TPOT、吞吐量等指标适合评估推理性能。5. 常见报错排查对照表5.1 Benchmark gsm8k not found这是最高频的报错根因是注册表为空evalscope/__init__.py没被执行。先跑验证命令确认python -c import evalscope; from evalscope.api.registry import BENCHMARK_REGISTRY; print(len(BENCHMARK_REGISTRY))如果输出 0回到 2.3 检查.pth文件路径。常见错误是写成了项目根目录而不是内层evalscope目录。改对后重启 Python 进程再验证。5.2 401 Unauthorized / invalid api key评测在线模型时报 401通常是 Key 或 Base URL 不对。检查三件套字段正确值常见错误api_urlhttps://taotoken.net/api多了/v1或末尾斜杠api_keysk-开头完整密钥复制时漏字符或带空格model控制台列出的模型 ID用了不存在的模型名环境变量方式要确认变量真的导入了echo $TAOTOKEN_API_KEY看有没有值。Windows PowerShell 里$env:只在当前会话有效新开窗口要重新设置。5.3 local proxy failed / connection error报连接失败先确认网络能访问https://taotoken.net/api。用 curl 测一下curl -X POST https://taotoken.net/api/chat/completions \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d {model:gpt-4o-mini,messages:[{role:user,content:hi}]}能返回 JSON 说明通道正常问题在 EvalScope 配置返回错误码就看错误信息定位。5.4 reading choices / 解析预测结果失败这个报错通常出现在模型输出格式和评测器预期不一致时。比如 gsm8k 期望模型最后给出#### 数字格式的答案模型没按格式输出解析就失败。排查方法去predictions/目录看原始输出确认模型实际返回了什么。如果是 prompt 问题可以在generation_config里调整或换一个指令遵循更好的模型。5.5 OAuth / 认证相关报错如果报 OAuth 或 token 过期类错误说明 Key 失效或额度用尽。去控制台 https://taotoken.net/console/api-keys 检查 Key 状态必要时重新生成。注意 EvalScope 不会自动刷新 KeyKey 换了要同步更新配置或环境变量。5.6 litellm 安装失败缺少 RustEvalScope 依赖 litellm某些版本需要 Rust 编译。用预编译版本绕过pip install litellm1.55.0 --prefer-binary \ -i https://pypi.tuna.tsinghua.edu.cn/simple5.7 editdistance 编译错误同理装预编译替代包pip install editdistance-s5.8 CUDA 内存不足本地模型评测时显存不够开量化加载task_cfg { model: Qwen/Qwen2.5-0.5B-Instruct, model_args: { device_map: auto, load_in_4bit: True, }, }load_in_4bit或load_in_8bit能显著降显存代价是精度略降。评测场景如果只是验证流程量化完全够用。6. 把评测流程固化下来装好、跑通、排完错接下来就是让这套流程可复现。我的做法是把config.yaml和运行脚本一起放进项目仓库Key 走环境变量.pth配置写进 README 的初始化步骤。换台机器三步就能重建环境——建虚拟环境、装依赖、写.pth然后python demo_api.py直接出报告。统一 Key 的价值在长期使用中会越来越明显评测模型从 3 个加到 10 个凭证部分一行不用改团队里别人拿到仓库配好自己的 Key 就能复现你的评测结果。EvalScope 负责评测逻辑TaoToken 负责通道统一两边各司其职评测环境就稳定了。如果你还没建 Key去 https://taotoken.net/api-keys 创建一个把第 3 节的 config.yaml 填上跑一次--limit 5的 gsm8k看到得分表格那一刻环境就算真正搭好了。后续要评更多数据集改datasets列表即可要评更多模型改model字段即可。
返回列表