| name | 01fish-llm-radar |
| title | LLM 能力雷达(基于北大 One-Eval 口径) |
| description | 用 7 个客观 benchmark(GSM8K / MATH / MMLU / MMLU-Pro / C-Eval / IFEval / HumanEval)快速评测任意 OpenAI 兼容 API 的大模型。支持 DeepSeek 官方 / OpenRouter / 硅基流动 / 火山引擎 / 自部署 vLLM,一键多模型横评 + 单模型深度 profile。 |
01fish-llm-radar
定位:独立开发者 / 创业者的模型选型初筛工具。30 分钟内把 20 个候选模型压缩到 5 个,再拿你的真实业务场景去复测那 5 个。
评测框架参照北大 OpenDCAI/One-Eval 的 bench_gallery.json 和 bench_config.json 配置选 benchmark,runner / scorer 自己写(One-Eval 是 agentic 评测框架,不适合纯跑分场景)。
触发词
| 触发词 | 场景 |
|---|
/llm-radar <模型> | 单模型完整评测(7 bench × 50 题) |
/llm-radar <模型A>,<模型B> | 多模型横评 |
/llm-radar compare A vs B | 两模型直接对决,出差异报告 |
/llm-radar --bench math,mmlu-pro <模型> | 指定 bench 跑 |
/llm-radar --custom <endpoint> <model-name> | 评测自部署 vLLM / Ollama endpoint |
/llm-radar report | 扫描已有 summary 重新出报告 |
| "评测模型 xxx" / "跑 benchmark xxx" / "横评 xxx" | 自然语言触发 |
支持的评测维度(7 个 bench)
| # | Benchmark | 样本 | 考核能力 | 数据源 |
|---|
| 1 | GSM8K | 100 | 小学数学应用题(多步算术推理) | openai/gsm8k |
| 2 | MATH | 50 | 竞赛级数学题(AMC / AIME 风格) | HuggingFaceH4/MATH-500 |
| 3 | MMLU-数学 | 100 | 大学数学选择题 | cais/mmlu 数学 5 子集 |
| 4 | MMLU-Pro | 50 | 高阶知识(10 选 1,最强区分度) | TIGER-Lab/MMLU-Pro |
| 5 | C-Eval | 50 | 中文学科(52 科目均匀抽样) | ceval/ceval-exam |
| 6 | IFEval | 50 | 指令遵循(程序化规则验证) | google/IFEval |
| 7 | HumanEval | 50 | 代码生成 pass@1(沙箱执行) | openai_humaneval |
详细介绍见 references/bench-gallery.md。
快速开始(3 步)
1. 配置 API Key
复制 .env.example 到 .env,填至少一个 provider 的 key:
DEEPSEEK_API_KEY=sk-...
OPENROUTER_API_KEY=sk-or-v1-...
SILICONFLOW_API_KEY=sk-...
VOLCES_API_KEY=...
2. 安装依赖
cd scripts/
python3 -m venv .venv && source .venv/bin/activate
pip install openai datasets python-dotenv tqdm
3. 跑评测
python runner.py --model deepseek-v4-flash --bench gsm8k --n 50
python orchestrator.py
python compare.py
python analyze.py
核心文件
01fish-llm-radar/
├── SKILL.md # 本文档
├── README.md # GitHub 开源说明(面向外部用户)
├── scripts/
│ ├── runner.py # 主评测脚本(单 model × 单 bench)
│ ├── benches.py # 8 个 bench 的 loader + prompt + scorer
│ ├── orchestrator.py # 多模型并行跑
│ ├── compare.py # 生成对比报告(均分 + 矩阵 + 单项榜单)
│ └── analyze.py # 深度分析(成本/思考效率/速度/稳定性)
├── references/
│ ├── SETUP.md # Key 获取和配置详细指南
│ ├── bench-gallery.md # 7 个 benchmark 的深度介绍
│ └── providers.md # 各 provider 配置(OR allowlist 等)
└── .env.example # Key 模板
产出物
每次跑完评测,在 results/ 目录生成:
results/
├── report.md # 最终对比报告(含 5 个反直觉 + 单项榜单 + 性价比)
└── raw/
├── <bench>-<model-slug>.jsonl # 每题的 prompt / 输出 / reasoning / token / 耗时
└── <bench>-<model-slug>.summary.json # 汇总(accuracy / tokens / 耗时)
Provider 路由规则
基于 resolve_provider() 函数:
| 模型前缀 | 走哪个 provider | 说明 |
|---|
deepseek-v4-pro / deepseek-v4-flash | DeepSeek 官方 API | 最便宜 |
xiaomi/* | OpenRouter + provider.only=["xiaomi"] | |
qwen/* | OpenRouter + provider.only=["qwen"] | 需 OR allowlist 开启 |
moonshotai/* | OpenRouter + provider.only=["moonshotai"] | |
z-ai/* | OpenRouter + provider.only=["z-ai"] | |
minimax/* | OpenRouter + provider.only=["minimax"] | |
stepfun/* | OpenRouter + provider.only=["stepfun"] | |
bytedance-seed/* | OpenRouter + provider.only=["seed"] | 注意 provider slug 不同 |
tencent/* | OpenRouter(不加 filter,走默认) | 目前走 siliconflow |
| 其他 | OpenRouter 不加 filter | |
扩展新 provider:编辑 runner.py 的 resolve_provider() 函数。
核心设计原则
- 客观打分 only:所有 7 个 bench 都是程序化打分,不用 LLM-as-judge(避免主观偏差)
- Thinking 模式默认:适配 2026 年主流模型都带 reasoning 的现状,
max_tokens=8192
- 样本 50-100:追求快速反馈而非统计严谨(±3-5% 抖动是可接受的选型信号)
- 全透明原始数据:每道题的 prompt / 输出 / 对错都保存 jsonl,可追溯
故障处理
| 症状 | 处理 |
|---|
| OpenRouter 429 限流 | 降低 --concurrency,或换 provider |
| provider "No allowed providers" | 去 OR 设置 把对应 provider 加 allowlist |
| HF 数据集 gated error | GPQA 等需 HF token,跳过或申请 |
| 某模型最后几题卡死 | 已在 orchestrator 里自动跳过,看 summary 的 partial: true 字段 |
| HumanEval 代码有副作用 | 默认 subprocess 执行 15s timeout,必要时可改 Docker 沙箱 |
参考资料
诚实声明
本 skill 不是严格的学术 benchmark,定位为独立开发者 / 创业者的选型初筛工具。关键差异:
- ❌ 单次运行,没有多 seed 平均
- ❌ 样本只有 50-100 题
- ❌ 未覆盖长文本 / Agent / 创意写作 / 多模态场景
- ✅ 客观打分、透明原始数据、多维度交叉验证
- ✅ 能在 30 分钟内筛掉 70% 的候选模型
真正选模型,永远以"你自己业务场景里跑一批真实数据"为准。本 skill 只是帮你节省初筛那一步。