美团 LongCat 开源 General 365:推理评测的及格线,大多数模型都没摸到

2026-05-15 27 预计阅读时间:1 分钟
来源:tech.meituan.com AI 摘要 原文链接

免责声明:本文为 AI 摘要整理,建议结合原文阅读。摘要可能省略上下文、版本差异或边界条件,不作为官方说明。

预计阅读时间:10 分钟

大模型推理能力的评测一直是个棘手问题——现有基准要么题目太老被"刷穿",要么覆盖面窄、难以反映真实推理水平。美团 LongCat 团队刚开源的 General 365 试图填补这个空白:365 道题、覆盖多领域、强调推理链而非知识记忆。实测结果相当扎眼——26 款主流模型里,目前得分最高的 Gemini 3 Pro 也只有 62.8%,大多数模型连 60 分的及格线都没过。

为什么需要一把新标尺

现有推理基准的痛点集中在三方面:

  1. 数据泄露:不少基准题目已被纳入训练语料,模型"背答案"而非真正推理。
  2. 领域偏窄:数学推理基准多,但逻辑推理、常识推理、多步因果推理的覆盖不足。
  3. 评分粗糙:只看最终答案对不对,不评估推理过程是否合理,模型可以"蒙对"。

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

用不同策略跑评测、对比准确率和推理链质量,比盲目调参数更有方向感。

采纳建议与风险提示

  1. 先跑基线再优化:用 General 365 建立你当前模型的推理能力基线,后续任何优化(微调、prompt、RAG)都回来重跑,量化改进。
  2. 不要只看总分:总分 55% 和 55% 可能完全不同——一个模型可能数学推理 80% 但常识推理 30%,另一个正好反过来。按类别拆开看才有诊断价值。
  3. 警惕评测污染:如果你后续用 General 365 的题目做训练,这些题就不能再作为评测项。严格分离训练和评测数据。
  4. 推理链评分是方向但非银弹:自动评估推理链质量仍有技术挑战(谁来评判"推理是否跳步"?),目前最可靠的方式还是人工抽检 + 自动评分结合。
  5. 及格线 60% 是硬标杆:如果你的业务场景强依赖推理(法律分析、医疗诊断、金融风控),模型在 General 365 上低于 60% 就意味着存在系统性推理缺陷,需要谨慎上线。

General 365 的开源让推理评测有了更硬的尺子。尺子本身不解决问题,但它让你知道问题有多大、在哪里——这比盲目相信"模型参数够大就能推理"要务实得多。


相关推荐