想象你是一位班主任,想搞清楚班里每个孩子是不是真的学会了数学。光靠随手出几道题不够公正,于是教研组出了一套标准化的“小学毕业考”:题目全部是贴近生活的应用题,答案唯一,还配好标准答案和评分细则。考试那天,一群 AI 模型像学生一样走进考场。GSM8K,就是这场专为 AI 举办的“小学毕业考”。 GSM8K 的全称是 Grade School Math 8K,收录了 8500 道小学应用题。它由 OpenAI 的研究者整理发布,专门用来检验大语言模型能不能像小学生一样读懂题目、一步一步算出答案。为什么偏要考小学题?因为小学应用题天然需要多步推理:理解、提取、列式、计算、作答,每一道题都是一条必须完整走完的“解题链”。模型想拿高分,就得老老实实把链条从第一环走到最后一环。 本教程沿着这场考试“出卷 → 审题 → 阅卷 → 发榜 → 定标准 → 用成绩”的全流程展开,让你看懂 GSM8K 怎么设计、怎么评测,以及它为什么能成为衡量大模型数学推理能力的“行业高考”。
掌握 GSM8K,等于拿到一张看懂 LLM 数学推理能力的“阅卷资格证”:读论文、写评测报告、选型对比时,你都能用同一把尺子衡量 AI 的推理水平。
可视化演示
演示大语言模型求解数学应用题的多步推理过程,从理解题意、提取数字、构建算到计算结果,逐步构建推理链得到最终答案。
本节配有交互动效(进入视口后自动加载,约 3KB)。
GSM8K小学数学推理 理解题意 提取数字 构建算式 计算结果 多步算术推理
基准概况
考试院出一套正规的毕业考,第一件事不是写题目,而是定大纲:考几门、多少题、难度梯度怎么铺。GSM8K 的“出卷规格”就是一句话:一共 8500 道小学应用题,全部配标准答案。数据集的名字里 "8K" 就来自这 8500 道题——它像一份盖了公章的红头文件,把考试的边界定得清清楚楚。
这套卷子由 OpenAI 研究团队在 2021 年发布,题源是人工撰写整理的小学数学应用题,覆盖加减乘除、比例、单位换算等小学阶段知识点。为了保证阅卷公平,全部题目被切成两块:一块是“练习册”,一块是“正式考卷”。
模型在公司里反复刷题用的是训练集,正式打分则必须用测试集。这种“训练与考试分离”的设计,防止了模型靠背题拿高分。
就像考试院先公布考试大纲,GSM8K 用"7473 + 1319"一句话交代了整套卷子的构成。读懂这道加法,你就拿到了进入这场考试的第一把钥匙。
- N_total(总题量)N 代表 Number(数量),total 表示总计,这里指 GSM8K 数据集的全部 8500 道题目。
- N_train(训练题数)train 表示“用于训练的题目”,共 7473 道,相当于发给 AI 学生的练习册。
- N_test(测试题数)test 表示“用于考试的题目”,共 1319 道,是模型从没见过的正式考卷。
- 求和校验把训练题和测试题相加,重新得到总数 8500,证明数据切分完整、没有遗漏也没有重复。
题目特点
翻开考卷,你会发现没有一道"1+1=?"式的干巴巴算式,每一道题都是一个小故事:小明去买苹果、小红去数铅笔、小刚在分糖果。这正是出题的用心之处——不是考你背口诀,而是考你能不能从日常生活里读出数学。
GSM8K 的题目全部以自然语言叙述,少则需要 2 步推理,多则要走上 8 步。模型必须先“读懂故事”:谁是主人公、给出了哪些数字、问题到底在问什么;然后才能“把故事翻译成算式”。这种先理解后计算的模式,让它比纯算式评测难得多。
举个经典例子:“小明有 12 个苹果,又买了 3 袋,每袋 4 个,一共多少个?”模型要识别出“原有 12 个”“3 袋”“每袋 4 个”三个关键信息,还要明白“每袋 4 个”意味着先算乘法,最后与原有的相加。
每道题都是一则小故事,模型既要当“语文课代表”读懂情节,又要当“数学课代表”完成计算。GSM8K 考的不是单一技能,而是两种能力的接力赛。
- x_1(初始数量)表示故事一开始就存在的量,这里是小明原有的 12 个苹果,它是算式的“起点”。
- n × m(累加量)n 是购买的袋数 3,m 是每袋的个数 4,两者相乘得到新增加的 12 个苹果。
- x_2(最终数量)表示题目要求的最终结果,由初始量与累加量相加得出,即 12 + 12 = 24。
- 运算顺序必须先乘后加,这是小学应用题经典的“陷阱”,也是模型最容易翻车的地方——顺序错了,整条链就断了。
评测机制
考试要公平,阅卷老师手里必须有一份不容争辩的标准答案。GSM8K 为每一道题都写好了标准答案,也就是最终的数字。评分时采用“精确匹配”:模型的最终输出必须与标准答案完全一致,多一个小数点、少一个数字,都算错。
为什么这么严格?因为只有“完全一致”才能用程序自动判卷,让 1319 道测试题的评分在一秒内完成,而且任何人来复现实验,结果都一模一样。宽松的评分标准会引入主观性,破坏基准的可复现性。
把所有题的评判结果汇总,就得到模型的最终分数——准确率。它不是平均分,也不是加权分,就是最朴素的一个比例:答对了几道,除以一共考了几道。
阅卷老师只看标准答案,哪怕中间步骤写得再漂亮,最终数字对不上就是零分。这种“无情”的精确匹配,恰恰保证了 GSM8K 所有历史成绩都站在同一把公平的尺子上。
- N_correct(答对题数)表示模型输出与标准答案精确匹配的题目数量,是“对勾”的个数。
- N_total(总题数)被评测的题目总量,规范做法下是 1319 道测试题,而不是 8500 道全量题。
- 相除取比例答对数除以总题数,得到一个 0 到 1 之间的小数,表示答对的比例。
- ×100%(化为百分数)把小数放大成百分数,变成论文和报告里常见的"92%"这种直观表达。
核心能力
应用题像一条铁链,一环扣一环。老师最欣慰的,是看到学生的草稿纸上每一步都前后连贯:先读题圈重点,再列算式,然后一步步算,最后落笔写答案。GSM8K 真正想考的,就是模型能不能搭起并走完这条“解题链”。
这条链的第一环是“推理链构建”:把自然语言问题映射成数学算式;第二环是“算术计算”:每一步的加减乘除都不能出错;第三环是“逻辑思维”:时刻校验每一步是否合理,能不能支撑下一步。三环缺一,链条就断。
举一个稍复杂的算式链:(12 + 45) × 3 − 21。模型必须先算括号里的 12+45 得到 57,再乘以 3 得到 171,最后减去 21 得到 150。中间任何一个环节算错,最终答案都会跑偏,而精确匹配机制会让它吃零分。
老师夸奖的不是孤立的一步,而是环环相扣的全程。GSM8K 的高分从不是“灵光一现”的结果,它要求模型把推理链稳稳走完——这正是“多步推理”四个字的重量所在。
- 括号内先行先算 12 + 45 = 57,对应题目中“把两组数量先合并”,这是整条链的第一环。
- 乘法次之再算 57 × 3 = 171,遵循“先乘除后加减”的优先级,把合并后的量放大三倍。
- 减法收尾最后算 171 − 21 = 150,完成收尾操作,得到题目要求的唯一答案。
- 链路校验反向检查 150 + 21 = 171,171 ÷ 3 = 57,每一步都能对上,证明链条完整无断裂。
模型表现
学校走廊里贴着一份历届成绩单,记录着 AI 考生们的进步曲线。GSM8K 刚发布的 2021 年,最强的大模型 GPT-3 也仅仅考出约 18% 的准确率——连“及格”都差得远。这个数字当时让整个行业意识到:小学算术对 AI 来说一点都不简单。
转折来自研究者发现的一个技巧:别让模型直接报答案,而是要求它“把草稿纸交上来”,即显式写出中间推理步骤,再给出结论。这种被称为链式思考(Chain-of-Thought,CoT)的方法,让大模型 PaLM 540B 的得分从 17.9% 一跃到 56.9%,翻了超过两倍。此后 GPT-4 等现代模型借助更强的基础能力和推理技巧,把成绩推到了 92% 左右。
成绩单上的每一次刷新,背后都是两条主线在起作用:模型规模越来越大,推理技术越来越精。两者交叉,共同推高了这条曲线。
成绩单上每一次刷新纪录,都是 AI 推理能力的里程碑。从 18% 到 92%,GSM8K 像一面镜子,忠实映照出大模型从“算术学渣”到“数学优等生”的成长史。
- P_standard(标准提示准确率)让模型不写步骤直接作答的成绩,PaLM 540B 只有 17.9%,接近“蒙”的水平。
- P_CoT(链式思考准确率)要求模型先写中间推理步骤再作答的成绩,同一模型飙升到 56.9%。
- Δ(提升幅度)两者相减得到 39.0%,量化了“多写步骤”这一策略对数学推理的增益。
- 趋势启示提升幅度远超随机波动,说明推理链本身承载了理解能力,而不只是“多打几个字”。
行业价值
一所学校的期末考再严谨,影响力也有限;只有当所有学校都采用同一张卷子,它才升级为“高考”。GSM8K 正是凭借题目质量高、答案可自动判定、规模适中这三大优势,从众多评测集中脱颖而出,成为 LLM 评测体系里公认的“标准基准”之一。
在行业里,GSM8K 的分数就是一条重要的“评测信号”。论文作者用它证明新方法有效,开源社区用它给模型排名,甲方技术选型时也拿它当硬指标。因为它足够标准,团队 A 的 85% 和团队 B 的 60% 之间,可以直接做减法、算比例。
这种横向对比通常用相对差距来描述:不仅看“差了多少分”,还看“相对于较弱模型提升了几成”。量化模型之间的能力鸿沟,让“谁更强”不再是感觉问题,而是一个可以写进报告的数字。
全行业共享同一张考卷,模型的数学推理水平才第一次有了“可通约”的货币。GSM8K 这份“行业高考”,让每个团队的评测结果都能放在同一张榜单上比拼。
- A_A(模型 A 准确率)代表表现较优模型在 GSM8K 测试集上的成绩,这里取 0.85。
- A_B(模型 B 准确率)代表作为参照的较弱模型成绩,这里取 0.60,是相对比较的“分母”。
- 差值归一化分子 0.25 是绝对差距,除以 0.60 后得到相对差距,消除基数不同造成的误导。
- ×100% 化百分数把比例转成便于报告的百分比 41.7%,写成“A 相对 B 领先约四成”。
实际应用
招生办拿到成绩单后干什么?三件事:摸底录取、分配班级、检验补习效果。AI 从业者使用 GSM8K 的方式惊人地相似——评估候选模型、选择上线模型、监控训练迭代,一条完整的“招生—教学—考核”闭环就此运转。
第一步是能力评估:面对一个新模型,先跑一遍 GSM8K 测试集,像摸底考试一样快速摸清它的数学推理底子。第二步是模型选型:在多个开源大模型之间做选择题时,GSM8K 准确率是打分表上最重的权重项之一。第三步是迭代优化:微调过程中每周跑一次测试集,一旦分数下滑,说明模型发生了“能力回退”,需要立即调整训练策略。
不过招生办有一条铁律:正式考试只能用从没透给学生的卷子。在 GSM8K 上,这意味着测试集的 1319 道题绝不参与训练或调参,只用于最终打分。测试集占全量的比例,直接影响评测预算的分配。
正如招生办既要抓练习更要抓考试,AI 团队也靠这套“训练—评测—迭代”的闭环不断打磨模型。GSM8K 不只是一份试卷,更是一套被反复验证的教学质量管理体系。
- N_test(测试题数)1319 道正式考卷题目,这些题在训练阶段被严格隔离,保证成绩可信。
- N_total(总题数)8500 道全量题目,是计算占比时的“整体”。
- 相除得比例1319 ÷ 8500 ≈ 0.155,表示测试集在全量数据中所占的份额。
- ≈15.5% 化百分数换算成 15.5%,指导团队在数据划分时预留出足够且不过量的“考试题”。
AI 应用场景
模型能力评估
阶段:LLM 评测体系搭建
解决的问题:传统方式靠人工出几道题让模型作答,题目不统一、答案判定靠人眼,既慢又不公平。用 GSM8K 作为标准测试集,可以让 1319 道固定题目、固定答案自动判卷,几分钟内产出一份可复现、可对比的数学推理能力报告。
具体案例:某评测工程师在引入新开源模型前,先跑一遍 GSM8K 测试集,得到 72% 的准确率,随即在周报中附图对比 GPT-4 的 92%,管理层一眼看清差距,决定该模型暂不进入核心业务线。
模型选型对比
阶段:工程选型与采购
解决的问题:云厂商和开源社区模型众多,光看宣传语无法判断“谁会做应用题”。GSM8K 作为行业公认基准,提供了统一的横向对比尺子,把“我觉得 A 更强”变成“A 的 GSM8K 分数比 B 高 25 个百分点”的硬证据。
具体案例:某公司的 AI 架构师在 Llama、Qwen、Mistral 三个候选模型中选型,分别跑 GSM8K 测试集得到 68%、81%、75% 的准确率,结合推理延迟与成本,最终选定 81% 的模型作为在线客服的数学问答底座。
训练迭代监控
阶段:模型训练与微调
解决的问题:微调阶段模型可能在追求新能力时“忘记”旧技能,出现灾难性遗忘。在 GSM8K 测试集上定期复测,能及时捕捉数学推理能力的回退信号,帮助训练团队定位是哪一轮数据配比出了问题。
具体案例:训练工程师在每周微调检查点中运行 GSM8K 评测,某次分数从 80% 掉到 72%,回溯发现新增的代码数据占比过高,于是下调比例并回滚到上一检查点,挽救了模型的核心推理能力。
Python 演示
# -*- coding: utf-8 -*-"""MiniGSM8K: 迷你版小学数学应用题评测""" import re PROBLEMS = [ ("小明有12个苹果,又买了3袋,每袋4个,一共多少个?", 24), ("小红有5支铅笔,又买了2盒,每盒6支,一共多少支?", 17), ("小刚有9颗糖,又买了4包,每包3颗,一共多少颗?", 21),] def solve_word_problem(text): """模拟多步推理: 提取 A, B, C 并返回 A + B * C""" nums = [int(x) for x in re.findall(r"\d+", text)] if len(nums) < 3: return None a, b, c = nums[0], nums[1], nums[2] return a + b * c def evaluate(dataset, exact_match=True): """跑一遍评测, 返回准确率""" correct = 0 for question, answer in dataset: pred = solve_word_problem(question) if exact_match and pred == answer: correct += 1 return correct / len(dataset) if __name__ == "__main__": acc = evaluate(PROBLEMS) print("MiniGSM8K 准确率: {:.1%}".format(acc))
nums = [int(x) for x in re.findall(r"\d+", text)]正则表达式一次性抓出题面里所有数字,对应“从自然语言中提取关键信息”的解题链环节。if len(nums) < 3: return None数字数量不足说明没读懂题意,返回空值,模拟“读题失败”。return a + b * c实现“原有量 + 袋数 × 每袋个数”的两步推理,对应先乘后加的运算顺序。if exact_match and pred == answer:精确匹配评分:预测值必须与标准答案完全相等,错一个数字都不得分。correct += 1计数器累加答对的题数,对应标准答案的“对勾”。return correct / len(dataset)准确率 = 答对题数 ÷ 总题数,复刻 GSM8K 的核心评测指标。
常见误区
误区模型在 GSM8K 上考了 90%,肯定已经具备接近人类的数学智能了,其他任务肯定也能顺手全包。
正解GSM8K 只覆盖小学应用题这一窄域,考察的是多步算术推理与自然语言理解,并不能代表代码生成、常识问答、多模态理解等能力。就像小学毕业考满分说明不了大学实力,它适合当“数学推理”的单项体检,而不是全能体检。评判模型时,要把它和代码、知识、对齐等维度的评测组合起来看。
为何常见:分数直观又震撼,而人类天然有“总分高=样样强”的思维惯性,容易把单项测试过度外推。
误区评测时把 GSM8K 准确率跑出来就完事了,60 分就是 60 分,背后的推理过程不用看。
正解准确率只看最终答案,可能掩盖“蒙对答案”或“过程一塌糊涂”的情况。严谨的评测还要抽查推理链、分析错误类型分布,甚至构造数字扰动的变体题,确认模型是理解了规律而不是记住了套路。好比老师不能只看分数,偶尔也要翻翻草稿纸,看看学生是不是真的会。
为何常见:精确匹配让准确率看起来极其客观、可复现,人们容易把“容易计算”误当成“足够全面”。
误区模型在 7473 道训练题上刷了很久,评测报告直接拿训练集上的 99% 当成绩交差了。
正解训练集相当于练习册,模型完全可能“背题”。只有 1319 道从未见过的测试题才能反映真实的泛化能力,规范的评测报告必须使用测试集分数。就像招生只看正式考试成绩,不认平时作业——练习册满分再多,也证明不了考试能考好。
为何常见:训练集分数容易刷、数字很好看,而且新手常分不清“训练”和“测试”两道流程的本质区别。
误区数学应用题嘛,无非是加减乘除,考的是计算速度,跟语言没关系。
正解每道题都是一段自然语言小故事,模型必须先读懂“谁有多少、买了什么、最后问什么”,才能把故事翻译成算式。所以 GSM8K 同时考核语言理解、推理链构建和算术执行三种能力,缺一不可。好比应用题先考读题再考计算,读不懂题,算得再快也是白搭。
为何常见:“小学题”三个字给人的第一印象太简单,让初学者低估了自然语言理解环节的真实难度。
面试题
Q1. GSM8K 数据集总共包含约多少道小学应用题?
- A.约8500道← 正确答案
- B.约1319道
- C.约7473道
- D.约10000道
答案:A。GSM8K 的 “8K“ 就代表约 8500 道题,其中训练集约 7473 道、测试集约 1319 道。选 B 是把测试集当总量,选 C 是把训练集当总量,选 D 是干扰项。记住”7473+1319=8500”这个加法就能答对。
Q2. GSM8K 评测中用来给模型打分的核心指标是?
- A.准确率← 正确答案
- B.召回率
- C.响应耗时
- D.参数量
答案:A。GSM8K 用最朴素的准确率,即答对题数除以总题数,公式为答对数 ÷ 总题数 × 100%。召回率是检索任务的指标,响应耗时和参数量与推理能力无关。就像看考试成绩,第一眼永远是平均分。
Q3. GSM8K 中用于最终正式打分的题目来自哪里?
- A.测试集← 正确答案
- B.训练集
- C.验证集
- D.全部题目
答案:A。训练集相当于练习册,模型可能在上面背题;只有从未参与训练的测试集才能反映真实泛化能力。正式评测必须用 1319 道测试题打分,这与“招生只认正式考试成绩,不认平时作业”是一个道理。
Q4. “精确匹配”在 GSM8K 评测中指的是什么?
- A.最终答案与标准答案一致← 正确答案
- B.解题步骤与参考答案一致
- C.思考过程与评分细则一致
- D.题目文本与训练样本一致
答案:A。GSM8K 的阅卷只看最终输出的数字是否与标准答案完全一致,多一位少一位都判错。B 和 C 错在它并不检查中间步骤,D 错在它检查的是“题目的答案”而不是“题目本身”。这种严格保证了自动判卷的可复现性。
Q5. 下列哪项是 GSM8K 重点考察的能力?
- A.多步算术推理能力← 正确答案
- B.图像识别与分类能力
- C.语音合成与识别能力
- D.代码编译与运行能力
答案:A。GSM8K 的每道题都是一则有生活场景的应用题,模型需要读懂自然语言、构建推理链、分步计算,核心就是多步算术推理。图像、语音、代码都不是这套数据集的设计目标。把它想象成“小学毕业考”,考的就是数学。
Q6. 为什么链式思考(CoT)能大幅提升 GSM8K 得分?
- A.显式写出中间推理步骤← 正确答案
- B.偷偷增加了训练数据量
- C.缩短了模型的思考时间
- D.降低了模型的参数量
答案:A。CoT 的核心是让模型在给出最终答案前显式生成一步步的推理文字,等于把草稿纸交上来,每一步计算都有据可查,减少了“跳步算错”的概率。它不改变模型规模也不改变数据,却能带来数十个百分点的提升。
Q7. GSM8K 的题目具备哪些特点?(多选)
- A.小学应用题← 正确答案
- B.需要多步推理← 正确答案
- C.自然语言叙述← 正确答案
- D.全部是选择题
答案:ABC。GSM8K 的题目是小学水平的应用题,用自然语言讲生活故事,平均需要 2~8 步推理,最终答案是一个数字而非选项。D 错在它没有选择题,全是填空题式的精确答案,这正是它适合自动判卷的原因。
Q8. 为什么报告成绩时更看重测试集分数而非训练集分数?
- A.测试集未参与训练泛化更真实← 正确答案
- B.测试集题目数量更大
- C.测试集题目语言更难
- D.测试集没有标准答案
答案:A。训练集被模型反复看过,模型可能靠记忆和模式匹配“背”出高分;测试集从未参与训练,分数才能反映真实泛化能力。测试集只有 1319 道,数量并不更大,难度也未必更高,但它具备“没见过”这一不可替代的价值——这才是成绩可信的关键。
Q9. GSM8K 对行业的价值体现在哪些方面?(多选)
- A.提供能力评测信号← 正确答案
- B.支持模型横向对比← 正确答案
- C.充当标准参考基准← 正确答案
- D.可以取代全部评测
答案:ABC。GSM8K 用固定题目和固定答案提供了可靠评测信号,让不同模型的数学推理能力可以直接对比,因此成为行业公认的标准基准。但它只是“单项体检”,D 错在它无法替代代码、知识、对齐等其他维度的评测。
Q10. 使用 GSM8K 评测 LLM 时,下列做法正确的有哪些?(多选)
- A.只用测试集来打分← 正确答案
- B.结合推理链来分析← 正确答案
- C.排查训练数据污染← 正确答案
- D.分数高即可覆盖全部能力
答案:ABC。规范评测要用没见过的测试集打分,还要抽查推理链判断模型是“真会”还是“蒙对”,同时排查训练数据污染以免分数虚高。D 错在 GSM8K 只测数学推理,高分不能代表模型的全部能力,报告时必须注明评测范围。