大模型推理能力的评测一直是个棘手问题——现有基准要么题目太老被"刷穿",要么覆盖面窄、难以反映真实推理水平。美团 LongCat 团队刚开源的 General 365 试图填补这个空白:365 道题、覆盖多领域、强调推理链而非知识记忆。实测结果相当扎眼——26 款主流模型里,目前得分最高的 Gemini 3 Pro 也只有 62.8%,大多数模型连 60 分的及格线都没过。
为什么需要一把新标尺
现有推理基准的痛点集中在三方面:
- 数据泄露:不少基准题目已被纳入训练语料,模型"背答案"而非真正推理。
- 领域偏窄:数学推理基准多,但逻辑推理、常识推理、多步因果推理的覆盖不足。
- 评分粗糙:只看最终答案对不对,不评估推理过程是否合理,模型可以"蒙对"。
General 365 的设计思路直指这些问题——365 题横跨多个推理类型,题目经过去污染处理,评分关注推理链的完整性。
实测数据揭示的残酷现实
LongCat 团队对 26 款主流模型做了系统评测,核心发现:
| 梯队 | 代表模型 | 大致表现 |
|---|---|---|
| 顶尖 | Gemini 3 Pro | 62.8%(最高) |
| 中上 | GPT-4o、Claude 系列 | 55–60% 区间 |
| 中等 | 多数国产大模型 | 45–55% |
| 偏弱 | 较小参数模型 | 低于 40% |
几个值得注意的点:
- 及格线(60%)几乎是一道鸿沟。只有极少数模型能跨过,说明"推理"远比"知识问答"难。
- 参数量不等于推理能力。某些 70B+ 模型的推理得分反而低于优化过的较小模型。
- 推理类型差异显著:模型在数学推理上表现相对好,但在多步因果推理和常识推理上掉链子明显。
用 General 365 跑一次评测
General 365 已开源,下面演示如何加载评测数据并对你的模型跑一轮推理评测。假设你有一个本地部署的模型(或调用远程 API),核心流程是:加载题目 → 构造 prompt → 采集模型输出 → 评分。
# general365_eval.py — 最小可运行评测脚本
# 前置依赖:pip install datasets openai pyyaml
from datasets import load_dataset
from openai import OpenAI
import json, yaml, os
# 1. 加载 General 365 评测集(假设发布在 HuggingFace)
# 实际 repo 名以 LongCat 官方公告为准,此处为示意
ds = load_dataset("longcat/general365", split="test")
# 2. 配置你的模型端点
client = OpenAI(
base_url=os.getenv("MODEL_BASE_URL", "https://api.openai.com/v1"),
api_key=os.getenv("MODEL_API_KEY", "sk-xxx"),
)
MODEL_NAME = os.getenv("MODEL_NAME", "gpt-4o")
# 3. 构造推理 prompt模板
PROMPT_TEMPLATE = """你需要逐步推理并回答以下问题。请按以下格式输出:
## 推理过程
[请写出你的每一步推理,不要跳步]
## 最终答案
[用一个简短的答案作结]
题目:{question}
选项(如有):{options}
"""
def call_model(prompt: str) -> str:
resp = client.chat.completions.create(
model=MODEL_NAME,
messages=[{"role": "user", "content": prompt}],
temperature=0.1, # 推理评测尽量低温度,减少随机性
max_tokens=1024,
)
return resp.choices[0].message.content
# 4. 批量评测
results = []
for item in ds:
prompt = PROMPT_TEMPLATE.format(
question=item["question"],
options=item.get("options", "无"),
)
output = call_model(prompt)
results.append({
"id": item["id"],
"category": item.get("category", "unknown"),
"ground_truth": item["answer"],
"model_output": output,
})
print(f"[{item['id']}] done — category: {item.get('category')}")
# 5. 保存原始结果,后续可对接 General 365 的官方评分脚本
with open("general365_results.json", "w", encoding="utf-8") as f:
json.dump(results, f, ensure_ascii=False, indent=2)
print(f"评测完成,共 {len(results)} 题,结果已保存。")
运行前需要设置环境变量:
# 示例:评测本地 vLLM 部署的模型
export MODEL_BASE_URL="http://localhost:8000/v1"
export MODEL_API_KEY="token-abc123"
export MODEL_NAME="Qwen2.5-72B-Instruct"
python general365_eval.py
评分说明:上述脚本采集了模型的推理过程和最终答案。General 365 的官方评分工具会同时检查答案正确性和推理链质量(是否有跳步、逻辑矛盾等)。如果你只想快速看答案准确率,可以先用以下简化版:
# quick_score.py — 快速答案准确率统计
import json
with open("general365_results.json", "r", encoding="utf-8") as f:
results = json.load(f)
correct = 0
for r in results:
# 简单匹配:模型输出中是否包含标准答案
if r["ground_truth"].strip() in r["model_output"]:
correct += 1
acc = correct / len(results) * 100
print(f"答案准确率:{acc:.1f}% ({correct}/{len(results)})")
print(f"对照:Gemini 3 Pro 在 General 365 上为 62.8%")
评测之外:推理能力的工程提升
General 365 的数据不只是用来"打分",它也是诊断模型推理短板的工具。几个实践方向:
按类别做错误归因
# error_analysis.py — 按推理类别统计错误分布
from collections import Counter
error_by_cat = Counter()
for r in results:
if r["ground_truth"].strip() not in r["model_output"]:
error_by_cat[r["category"]] += 1
print("错误分布(类别: 错误数):")
for cat, cnt in error_by_cat.most_common():
total_in_cat = sum(1 for r in results if r["category"] == cat)
print(f" {cat}: {cnt}/{total_in_cat} 错误率 {cnt/total_in_cat*100:.0f}%")
拿到这个分布后,你可以针对性优化——比如多步因果推理错误率高,就增加相关训练数据或调整 prompt 策略。
推理链 prompt 优化实验
同一套题,换不同 prompt 策略再跑一遍,对比差异:
# prompt_strategies.yaml — 三种推理 prompt 策略配置
strategies:
baseline:
template: "请逐步推理并回答:{question}"
temperature: 0.1
chain_of_thought:
template: "让我们一步步思考。首先分析问题条件,然后逐步推导,最后给出答案。\n问题:{question}"
temperature: 0.1
self_verify:
template: "请推理并回答问题,完成后再检查一遍你的推理过程是否有逻辑错误。\n问题:{question}"
temperature: 0.2
用不同策略跑评测、对比准确率和推理链质量,比盲目调参数更有方向感。
采纳建议与风险提示
- 先跑基线再优化:用 General 365 建立你当前模型的推理能力基线,后续任何优化(微调、prompt、RAG)都回来重跑,量化改进。
- 不要只看总分:总分 55% 和 55% 可能完全不同——一个模型可能数学推理 80% 但常识推理 30%,另一个正好反过来。按类别拆开看才有诊断价值。
- 警惕评测污染:如果你后续用 General 365 的题目做训练,这些题就不能再作为评测项。严格分离训练和评测数据。
- 推理链评分是方向但非银弹:自动评估推理链质量仍有技术挑战(谁来评判"推理是否跳步"?),目前最可靠的方式还是人工抽检 + 自动评分结合。
- 及格线 60% 是硬标杆:如果你的业务场景强依赖推理(法律分析、医疗诊断、金融风控),模型在 General 365 上低于 60% 就意味着存在系统性推理缺陷,需要谨慎上线。
General 365 的开源让推理评测有了更硬的尺子。尺子本身不解决问题,但它让你知道问题有多大、在哪里——这比盲目相信"模型参数够大就能推理"要务实得多。