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 官方(仅支持 deepseek-v4-pro / deepseek-v4-flash)
DEEPSEEK_API_KEY=sk-...
# OpenRouter(推荐,一个 key 覆盖 100+ 模型)
OPENROUTER_API_KEY=sk-or-v1-...
# 硅基流动(可选,补充国内模型)
SILICONFLOW_API_KEY=sk-...
# 火山引擎(可选,用于字节 Doubao-Seed-2.0-Pro)
VOLCES_API_KEY=...
2. 安装依赖
cd scripts/
python3 -m venv .venv && source .venv/bin/activate
pip install openai datasets python-dotenv tqdm
3. 跑评测
# 单模型跑所有 7 个 bench(50 题)
python runner.py --model deepseek-v4-flash --bench gsm8k --n 50
# 多模型横评(用 orchestrator)
# 编辑 orchestrator.py 的 MODELS 列表,然后:
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 沙箱 |
参考资料
- 北大 One-Eval(上游 benchmark 配置来源):https://github.com/OpenDCAI/One-Eval
- 本 skill GitHub:https://github.com/OrangeViolin/01fish-llm-radar
诚实声明
本 skill 不是严格的学术 benchmark,定位为独立开发者 / 创业者的选型初筛工具。关键差异:
- ❌ 单次运行,没有多 seed 平均
- ❌ 样本只有 50-100 题
- ❌ 未覆盖长文本 / Agent / 创意写作 / 多模态场景
- ✅ 客观打分、透明原始数据、多维度交叉验证
- ✅ 能在 30 分钟内筛掉 70% 的候选模型
真正选模型,永远以"你自己业务场景里跑一批真实数据"为准。本 skill 只是帮你节省初筛那一步。