AI 入门指南
如何阅读 AI 基准:MTGBench 和一个 5 提示词测试
排行榜排名取决于任务。看看 MTGBench(EMNLP 2026)展示了什么,然后在两个模型上运行你自己的 5 个提示词,比较每个任务的成本。

你打开一个排行榜,看到模型 A 排在模型 B 之上,于是选了 A。然后 A 在你的任务上磕磕绊绊,B 却不会。这并没有哪里坏掉:排名是别人任务上的平均值,而你的任务可能和他们的不一样。解决办法很简单。拿五个你自己的提示词,在两个模型上运行,读一读答案,比较每个任务各花了多少钱。本页剩下的部分用一个新论文作为例子,说明为什么这样做有效,并给你脚本。
为什么排名不是判决#
这篇论文是 MTGBench: A Multi-Turn Game Benchmark for Diverse LLM Capability Assessment,发表在 Findings of EMNLP 2026(2026 年 10 月 29 日核对)。作者在七个游戏上评估了 16 个前沿模型,他们的主要发现之一是模型排名严重依赖任务。换一个游戏,顺序就变了。
现在想想一个顶部只有一个平均分的排行榜。平均值把游戏藏起来了。如果你的任务看起来像某个模型擅长的游戏,你就赢了。如果不是,你读到的那个数字说的是别的东西。
自己试试试一试:一个排行榜把模型 A 排在模型 B 之上。第一个该问的问题是什么?显示答案
问:在哪个任务上更高? 在 MTGBench 中排名随任务变化,所以一个总体排名对你的情况说明不了什么。找每个任务的分数,然后检查最像你任务的那个。
七个游戏是什么#
这些游戏是 Word Chain、Wordle、20 Questions、Wheel of Fortune、Situation Puzzles、20 Features 和 Alias(名称来自 GitHub 上的项目 README,2026 年 10 月 29 日核对)。它们是多轮的:模型不是回答一次,而是玩。猜、得到反馈、再猜。Wordle 是简单的画面:你提出一个词,了解哪些字母对得上,再试一次。
设计中有两点值得在你自己的测试里照搬。
第一,谁来检查答案。四个游戏由普通代码评分。另外三个用受限的 LLM 作为规则执行者,作者用人类标注者验证了它。总得有人决定什么算正确。在你的小测试里,那个人就是你。
第二,语言。这套测试是双语的,英语和俄语,而且各语言的回合是原生生成的,不是翻译的。作者还收集了人类基线,476 个会话,报告的是俄语。他们的总结:最强的启用推理的模型在整个套件上达到或超过该基线。
闪卡
你在基准报告里会遇到的词
点击卡片翻转

分数不能告诉你什么#
它不能告诉你该怎么问。 MTGBench 比较三种设置:仅回答(默认)、思维链和原生推理。作者报告说 CoT 对字母级游戏几乎必不可少,但在知识驱动的游戏上收益不均。所以同一个模型看起来会因问法不同而不同。测试时,把你最难的提示词两种方式都试一遍。
它不能告诉你思考的成本。 大声思考是模型写出的文字,而写出的文字是输出,是账单上更贵的一侧(更多见 输入 vs 输出 token 和 推理力度与思考 token)。假设一个 600 token 的提示词在没有 CoT 时得到 100 token 的答案,有 CoT 时得到 600 token 的答案。在 DeepSeek-V4-Flash 上,每次请求是 $0.000019 对 $0.000069。小钱,直到你一天发几千个请求。
它不能告诉你你的语言的情况。 MTGBench 用英语和俄语原生构建回合,而不是翻译,这本身就是个提示:语言是任务的一部分。如果你的用户用俄语写,就把俄语提示词放进你的五个里。
运行 5 提示词测试#
API 兼容 OpenAI,所以一个脚本能跑任何模型,只有模型 id 会变(id 在 文档里)。
分步操作
你自己的迷你基准,四步
选五个提示词
从你的工作中拿五个真实请求。简单和困难混合,再加一个正确答案是“我从这看不出来”的。把它们保存为 prompts/1.txt … prompts/5.txt。
在两个模型上运行
脚本打印每个答案及其 finish_reason,以及每个模型的 token 总数。如果你看到 length,答案被 max_tokens 截断了:调高它(见 为什么答案会截断)。
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.cheaptokens.dev/v1",
api_key=os.environ["CHEAPTOKENS_API_KEY"],
)
models = ["deepseek-ai/DeepSeek-V4-Flash-0731", "zai-org/GLM-5.3-Flash"]
prompts = [open(f"prompts/{i}.txt").read() for i in range(1, 6)]
for model in models:
tin = tout = 0
for i, prompt in enumerate(prompts, 1):
r = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": prompt}],
max_tokens=2000,
)
tin += r.usage.prompt_tokens
tout += r.usage.completion_tokens
print(f"--- {model} / prompt {i} / {r.choices[0].finish_reason}")
print(r.choices[0].message.content)
print(f"=== {model}: {tin} in, {tout} out")自己给答案评分
给每个答案 0(错)、1(改改能用)或 2(好)。十个答案,一张表。你在这里是验证器,所以在看成本之前先评分。
把 token 变成每个任务的成本
把脚本的总数放进成本标签。假设脚本为 DeepSeek-V4-Flash 打印了输入 3,000、输出 1,500:那是全部五个任务的 $0.0002。除以五得到一个任务,然后对第二个模型做同样的事。

下表是同一个例子,五个请求各 600 token 输入、300 输出,在我们所有的模型上,旁边是 OpenRouter 作参考。输入和输出一起计算,每一行的总数都低于 OpenRouter。
| 模型 | 输入 $/1M | 输出 $/1M | 每次请求 | 5 次请求 | OpenRouter,5 次请求 |
|---|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.000024 | $0.00012 | $0.00024 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.000039 | $0.0002 | $0.00038 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.000075 | $0.00038 | $0.0027 |
每次请求 600 个输入 token 和 300 个输出 token。每 100 万 token 的价格为当前价格,会随我们的资费一同变动;OpenRouter 列显示相同工作负载的参考价格。
一个以几分之一成本得 10 分中 9 分的模型,胜过一个以几倍价格得 10 分中 10 分的模型,现在你能看出自己属于哪种情况。定价页有其余模型的实时数字,DeepSeek 页涵盖长答案(最多 32,768 输出 token),如果你的提示词需要逐步输出。
你的五个提示词里放什么#
正确的五个取决于你构建什么。选你的情况。
选择你的情况
哪些提示词进入你的测试?
选择一个选项以查看答案
支持机器人
拿五条真实客户消息。包括一条愤怒的消息和一条机器人没有信息的:正确答案是“我不知道”,而许多模型会编一个。评分语气和诚实,不只是事实。
摘要器
拿五份真实文档,长度是你实际发送的。对照来源检查每份摘要里有没有不存在的事实。也注意输入 token:长文档让输入侧成为你账单中更大的部分。
代码助手
从你自己的仓库里拿五个小 bug,每个都有一个失败的测试。验证器就是测试:运行建议的修复,通过就评 2 分。给最难的那个 bug 加一个 CoT 版本。
俄语答案
用俄语写全部五个提示词,用你领域的真实词汇。MTGBench 为每种语言原生生成回合正是这个原因:翻译过的任务是不同的任务。
数字到手后,如何选择 AI 模型帮助做剩下的决定:上下文大小、输出长度,以及两个模型打平时怎么办。



