首页 / 模型排行 / 正文
模型排行

模型数学能力评测全指南:从基准、数据集到选型落地,避开常见坑

chuanbook chuanbook
发布于 2026 年 10 月 16 日
阅读 约24分钟
浏览 1
评论 0

1.1 从通用能力评测到数学专项评测

我最早做模型评测时,习惯把数学看成通用能力里的一项。语言理解、常识问答、代码生成、数学解题,全都塞进同一套试卷。跑完分数一看,模型好像都挺强。可我仔细翻看错题,发现数学部分被平均分掩盖了。一道多步推理题错了,旁边几道简单算术对了,总分依然好看。这种模糊感让我开始琢磨,要不要把数学单独拎出来。

后来我参与过几个专项评测项目。把数学从通用评测里拆开,用更细的题目去测,模型的短板一下子暴露出来。同一个模型在通用评测里数学得分不低,到了专项评测,遇到需要列方程、分类讨论的题目,错误率飙升。我意识到,通用能力评测像一张大网,能捞到鱼,可漏掉的细节太多。数学专项评测更像显微镜,能看到符号操作、逻辑链条上的裂缝。

从我的经验看,模型数学能力评测的定位不是取代通用评测,而是补上通用评测看不清的地方。数学推理要求每一步都站得住,这恰好是很多模型薄弱的地方。把数学专项评测做好,既能帮研发者定位问题,也能帮应用者判断模型在严肃场景下能不能用。

1.2 模型数学能力评测的核心目标与评价维度

我理解的核心目标很直接:看模型会不会做数学题,以及怎么做的。会不会做,看最终答案;怎么做的,看推理过程。这两个问题拆开,就能引出评价维度。我通常把准确率放在前面,但不会只看准确率。一个模型可能答案对,过程全是瞎蒙;另一个答案错,思路却接近正确。这两种情况在数学评测里差别很大。

评价维度上,我关注答案准确率、推理步骤合理性、对题干变化的鲁棒性、多次运行的一致性。效率也算一个维度,比如模型需要多少轮对话、多少token、要不要调用计算器。这些维度组合起来,才能描摹出模型数学能力的真实轮廓。我做过对比实验,有的模型准确率高,可换个问法就崩;有的模型准确率中等,但过程稳定,适合需要可解释性的场景。

从用户选型角度,模型数学能力评测的价值在于提供分层信息。学生辅导、科研辅助、金融计算,对数学能力的要求不一样。核心目标和评价维度需要跟着场景走。我经常提醒自己,评测不是给模型发奖状,而是帮人做判断。维度选对了,评测结果才有参考意义。

1.3 大模型数学推理能力评测的必要性与挑战

大模型越来越像黑盒,数学推理能力评测的必要性在于提供可检验的抓手。我见过模型在简单加减上翻车,却在复杂应用题上给出漂亮答案。没有专项评测,这些矛盾现象很难被系统发现。数学推理讲究严密,每一步都能验证,用它来压力测试模型,比泛泛的对话评测更有说服力。

挑战也摆在眼前。数学题答案可能唯一,解题路径却千差万别。自动评测很难判断中间步骤对不对。我遇到过模型用错误方法凑出正确答案,也遇到过正确方法因为格式差异被判错。数据污染、评测集泄露、提示词敏感,这些问题都会让评测结果失真。我做过小实验,同一道题换个标点,模型答案就变了。

对我来说,必要性大于挑战。模型数学能力评测能推动模型进步,也能帮应用者避开坑。挑战需要靠更好的基准、更细的标注、更合理的评测协议来化解。这个领域变化很快,保持第一手实验和批判眼光,比迷信某个榜单更重要。

上一章聊了模型数学能力评测的定位和价值,这一章我想说说评测基准的体系和那些有代表性的基准。我参与过一些基准的构建和使用,有些感受挺深。基准不是随便找一堆题就行,它得有自己的设计逻辑,还得能分层看清模型的能力。

2.1 评测基准的设计原则与能力分层

我设计或选用基准时,会先问几个问题:题目覆盖哪些数学领域?难度梯度怎么安排?答案能不能自动验证?这些问题背后是设计原则。题目得有区分度,太简单或太难都不好。答案要唯一或可判定,不然自动评测会乱。题目表述要清晰,不能有歧义。我见过一些基准,题目本身就有漏洞,模型答对了反而被扣分。

能力分层是我特别看重的。我习惯把数学能力分成几层:基础计算层、符号操作层、应用建模层、形式推理层。基础计算层测加减乘除、分数小数。符号操作层测代数式化简、方程求解。应用建模层测把文字转成数学表达式。形式推理层测证明和逻辑推导。分层的好处是能看出模型具体卡在哪一层,而不是笼统说“数学不好”。

我参与过一个基准的评审,发现有些题目跨层。一道题既要列方程又要做几何证明。这种题能测综合能力,但定位问题时就模糊了。所以我倾向于分层设计,每个层有对应的基准。这样研发者能知道模型是计算弱还是推理弱。应用者也能根据场景选对应层的基准来评估。

2.2 基础知识型基准:算术、代数、几何与微积分

基础知识型基准里,算术基准我常用的是GSM8K、SVAMP、ASDiv、MAWPS。这些数据集主要测小学到初中难度的算术应用题。GSM8K有八千多道题,需要多步推理。SVAMP则通过改变题干来测模型对扰动的鲁棒性。我跑过这些基准,模型在简单加减上准确率很高,但遇到需要理解“比……多几分之几”这类表述,错误就多了。

代数基准我关注方程求解、多项式运算、不等式。几何基准测角度计算、面积体积、简单证明。微积分基准测导数、积分、极限。MATH数据集覆盖了这些领域,从代数到微积分都有,难度跨度大。我用MATH测试时发现,模型在代数的符号操作上容易丢负号,几何题需要空间想象力,微积分题则常混淆求导和积分规则。

这些基础基准有个共同点:答案可以精确匹配。模型给出数字或表达式,自动脚本就能判对错。这方便大规模评测。我遇到过模型答案对但格式不对,比如“x=5”写成“5”。评测脚本需要做归一化处理。基础基准的另一个价值是,它们能快速筛出模型的计算错误。一个模型如果连算术都错,高阶推理就不用谈了。

2.3 高阶推理型基准:应用题、竞赛题与形式化证明

高阶推理型基准更接近人类数学思维。应用题需要把现实情境转成数学模型。我见过模型在“火车相遇”问题上犯晕,因为题目里有多余信息。竞赛题基准像AMC、AIME、Olympiad,难度更高。MATH数据集里也有竞赛题部分。我测试过几个大模型在AIME上的表现,准确率很低,但有些模型能给出部分正确的推导步骤。

形式化证明基准是另一个极端。MiniF2F、Lean、Isabelle这些工具要求模型输出严格的形式化证明。我尝试过让模型在Lean里证明简单定理,模型经常卡在语法上。形式化证明的好处是验证绝对严格,每一步都能机器检查。坏处是门槛太高,模型需要同时懂数学和形式语言。我认识的研究者正在做自然语言到形式语言的翻译,这可能是条路。

高阶推理型基准的评测结果往往让人沮丧。模型在竞赛题上得分个位数是常事。但我觉得这恰恰说明基准有价值。如果基准太简单,模型全对,那就没有区分度。高阶基准能推动模型往更深推理走。我关注的一个趋势是,有些基准开始要求模型输出完整推理链,而不仅仅是最终答案。这能测出模型是真懂还是碰巧。

2.4 中文与多语言数学推理评测基准扩展

中文数学推理评测基准这些年多了起来。CMATH、C-MATH这些数据集专门收集中文数学题。我参与过中文基准的构建,发现直接翻译英文题会出问题。比如“鸡兔同笼”这种题,英文里没有对应表达。中文数学题有自己的语言习惯,像“甲比乙多三分之一”和英文的“A is one-third more than B”语序不同。模型需要理解中文的数学表述。

多语言基准里,MGSM把GSM8K翻译成多种语言。我试过用MGSM测模型,发现模型在低资源语言上表现差很多。翻译质量也是个问题。有些题翻译后变了意思,模型答错不能怪模型。我建议多语言基准要有人工校验,不能全靠机器翻译。中文基准还需要考虑简繁体、地区用词差异。

从我的经验看,中文和多语言基准的扩展很有必要。大模型要服务全球用户,数学能力不能只限英语。我见过中文模型在中文数学题上表现不错,但换成英文题就下滑。这说明语言和数学推理是耦合的。构建多语言基准时,要保证题目难度对等,不能英文题难、中文题简单。这样对比才公平。我期待看到更多本土化的数学基准,而不是翻译版。

聊完评测基准的体系,这一章我想说说数据集本身。基准是框架,数据集是血肉。我参与过几个数学数据集的构建和审核,踩过不少坑。数据集的来源、题型、标注方式、污染问题,每一个环节都能决定评测结果可不可信。

3.1 数据集来源:教材、考试、竞赛、合成与人工标注

我构建数据集时,来源通常混着用。教材习题是最稳的底子,尤其是人教版、北师大版这些,知识点覆盖全,表述规范。考试真题来自中考、高考、考研,难度梯度自然,还有地区差异。竞赛题像AMC、AIME、联赛,难度高,适合测高阶推理。我收集过一批竞赛题,发现有些题网上答案不一致,得自己重新算一遍。

合成数据这两年多起来了。用模板生成算术题、方程题,可以批量造出几十万道。我试过用程序生成一元一次方程,答案自动算出来。合成数据的好处是便宜、量大、答案绝对正确。坏处是模式单一,模型容易学到模板。我见过模型在合成数据上准确率九成,换成真实考试题就掉到六成。

人工标注是最后一道保险。我组织过标注团队,让数学专业的学生一道一道写解析。成本高,一天只能标几百道。标注质量也参差不齐。有人把“定义域”写成“取值范围”,答案对但表述不严谨。我的做法是设计标注规范,比如每一步必须写依据,公式用LaTeX。人工标注的数据集往往规模小,但质量可控,适合做测试集。

3.2 题型分类:选择题、填空题、解答题、证明题与交互任务

题型直接影响评测方式。选择题我常用,自动脚本一跑就出分。但选择题有猜测空间。四个选项,模型蒙对的概率是25%。我测过一个模型,在四选一上准确率比随机高一点,但让它解释为什么选,它就胡说了。所以选择题适合快速筛选,不适合测推理深度。

填空题要求精确答案。数字、表达式、区间都算。我遇到过模型填“x=5”但标准答案是“5”,评测脚本得做归一化。填空题的优点是答案唯一,缺点是没法看过程。模型可能碰巧算对。我设计填空题时会加一些需要多步计算的题,让碰巧的概率降下来。

解答题和证明题是重头戏。解答题要求写步骤,证明题要求逻辑链条完整。我标注时会把步骤拆成小段,每段对应一个定理或公式。证明题还要标出引理和推理规则。交互任务比较新,比如让模型调用计算器、画图工具。我试过让模型在求解过程中调用Python,它能算出数值,但不知道什么时候该调用。

3.3 答案与推理过程标注:最终答案、步骤、定理和公式

标注最终答案是最基本的。我见过一些数据集只给一个数字,模型输出一串推理,最后答对了,但中间跳步。这种标注没法评估推理质量。我坚持标注步骤。每一步写清楚用了什么运算、依据什么定理。比如解方程,要写“等式两边同时减3”,而不是直接写结果。

定理和公式标注要规范。我要求标注者用标准名称,比如“勾股定理”不能写成“直角三角形那个”。公式用LaTeX写,避免歧义。我参与过一个几何数据集,标注者把“相似三角形对应边成比例”简写成“相似比”,模型理解起来就乱了。标注规范定得细,后面评测才省心。

推理链标注还有个好处,能发现题目本身的漏洞。我标注时遇到过一道题,条件给少了,答案不唯一。标注者发现了,反馈回来,我们把题改了。过程标注也是人工成本最高的部分。一道解答题标注反推、计算、验证,可能要十分钟。我的经验是,测试集可以精标,训练集可以粗标,但要有一批精标数据做金标准。

3.4 数据污染、泄露与难度校准问题

数据污染让我很头疼。大模型训练语料里可能已经包含了测试题。我做过n-gram重叠检查,发现有些测试题和训练集里的题几乎一样。模型不是推理出来的,是背出来的。我试过用改写工具把题目换个说法,模型准确率就掉了。这说明污染确实存在。

泄露比污染更隐蔽。模型可能没见过原题,但见过答案。我见过一个模型,在某个数据集上表现异常好,后来发现数据集发布在GitHub上,训练时被爬了。我的做法是,测试集尽量用新题,或者人工改写。改写要改数字、改情境、改问法,不能只换几个词。我还建议用时间戳,选模型训练截止之后发布的题。

难度校准是个技术活。我一开始凭感觉标难度,后来发现不准。模型觉得难的题,人类觉得简单。我改用模型表现来校准。先拿几个基线模型跑一遍,根据准确率分难度层。准确率高于90%的算简单,低于30%的算难。这样校准出来的难度,对模型评测更有参考价值。校准还要看题型,选择题和证明题的难度曲线不一样。

3.5 开放数据集资源与使用建议

开放数据集我常用HuggingFace和GitHub。HuggingFace上有很多数学数据集,像GSM8K、MATH、CMATH,直接加载就能用。GitHub上有些数据集带评测脚本,省事。我建议先看许可证,有些数据集禁止商用。再看版本,同一数据集可能有v1、v2,题目和答案有变动。我吃过亏,用了旧版本,结果和别人对不上。

使用建议方面,我强烈建议自己做去重和抽样。不要直接拿测试集调参。我见过有人把测试集当验证集用,模型分数虚高。我的做法是,从测试集里随机抽一批,人工检查有没有污染。再按难度分层抽样,保证评测覆盖各个能力层。开放数据集也要看维护情况,有些数据集几年没更新,题目质量下降。

我还建议多数据集交叉验证。一个模型在GSM8K上高分,在MATH上低分,说明它擅长算术不擅长代数。只看一个数据集会误判。我用三到五个数据集组合评测,再算平均分和方差。方差大说明模型不稳定。最后,数据集要标注来源和构建方法,方便复现。我遇到过数据集没有说明文档,不知道题目从哪来的,这种数据集用起来不放心。

聊完数据集,这一章我讲讲怎么用这些数据去测模型。评测方法、指标和实验设计,这三个环节串在一起,决定了你拿到的分数有没有意义。我做过不少评测实验,踩过的坑比想象中多。

4.1 评测协议:零样本、少样本、思维链与工具调用

我评测模型数学能力时,会先选协议。零样本就是直接给一道题,不加任何例子。少样本给几个示范,让模型照着做。思维链提示要求模型一步步写推理。工具调用允许模型用计算器、Python或者符号计算库。这四种协议测的能力完全不同。零样本测的是模型对数学知识的直接调用,少样本测模式模仿,思维链测推理过程,工具调用测人机协作。

我试过同一个模型在GSM8K上跑不同协议。零样本准确率大概六成,加上少样本涨到七成,用思维链提示能到八成五。工具调用在复杂数值计算上优势明显。但协议不是越复杂越好。我见过模型用思维链时编造不存在的定理,步骤看起来漂亮,答案却是错的。少样本的例子选不好,模型会复制例子里的错误格式。

工具调用需要额外设计。我让模型自己决定什么时候调用计算器,结果它连1+1都要调。后来我加了规则,只有超过两位数的运算才允许调用。提示词里也要写清楚工具返回结果的格式。我试过让模型调用Python解方程,它写代码时忘了导入sympy,直接报错。这些细节在评测协议设计时都要考虑。

4.2 自动评测与人工评测:答案匹配、过程验证与形式化验证

自动评测跑得快,成本低。答案匹配是最常用的方式。我写脚本比较模型输出和标准答案。数学答案形式多样,需要归一化。比如“1/2”和“0.5”得算一样,“x=2”和“2”也得处理。我做过一个正则匹配器,能处理分数、小数、根号、区间。但遇到“x=2或x=3”这种多解,匹配逻辑就复杂了。

过程验证比答案匹配难得多。我想自动检查推理链,得解析每一步的运算和依据。我试过用规则匹配关键步骤,漏报率很高。模型换一种说法,规则就失效了。人工评测准确,但成本高。我组织过标注员逐步骤打分,一道解答题要花五分钟。形式化验证是另一条路。我把几何证明转成Lean代码,花了一周才转几道题。形式化验证结果可靠,但门槛太高,不适合大规模评测。

我的做法是混合用。自动评测做初筛,把明显错的筛掉。人工抽检一部分,看推理链质量。形式化验证用在关键任务上,比如竞赛证明题。三种方式各有适用场景。自动评测适合选择题和填空题,人工评测适合解答题,形式化验证适合证明题。我见过有人只靠自动评测发论文,结果被质疑答案猜测。加一层人工抽检,结论会扎实很多。

4.3 核心指标:准确率、鲁棒性、一致性、推理链质量与效率

准确率是最常报的指标。我算准确率时会分题型、分难度。整体准确率会掩盖问题。一个模型在算术题上九成,在几何题上三成,平均下来六成,看起来还行。拆开看才知道短板。我还会算置信区间,跑多次取平均。单次评测的准确率波动可能很大。

鲁棒性看模型对题目改写的敏感度。我改数字、改问法、改情境,看准确率掉多少。有个模型在原题上准确率八十五,把“小明”改成“小红”,掉到八十。把“求面积”改成“计算区域大小”,掉到七十五。鲁棒性差的模型在实际应用里很危险。一致性看模型多次回答同一题是否稳定。我让模型跑五遍,有的题答案在三个选项之间跳。这种模型不可靠。

推理链质量要人工打分。我看步骤完整性、逻辑性、定理使用是否正确。效率看推理时间和token消耗。我测过一个模型,准确率九成,但每道题要生成两千个token,推理时间半分钟。另一个模型准确率八十五,但只生成两百个token,速度快十倍。选模型要看场景。离线批处理可以容忍慢,实时应用必须快。我常画雷达图,把准确率、鲁棒性、一致性、推理链质量、效率放一起比较。

4.4 实验设计:基线选择、消融分析、跨模型对比

做实验先选基线。我选同规模的开源模型,再加一个闭源API做参照。基线要覆盖不同架构,比如GPT、LLaMA、Qwen。我见过有人只跟一个弱基线比,结论显得模型很强。选基线还要看训练数据。如果基线模型训练时见过测试集,对比就不公平。我尽量选发布时间晚于测试集发布时间的模型。

消融分析我常做。去掉思维链提示,看性能掉多少。去掉工具调用,看数值计算准确率变化。去掉少样本例子,看模式学习能力。消融能告诉我哪个组件真正有用。我做过一个实验,思维链提示在代数题上贡献大,在几何题上贡献小。跨模型对比要注意提示词一致。我见过有人给一个模型精心设计提示,给另一个模型随便写,结果不公平。对比还要看模型版本,同一模型不同版本差异可能很大。

我建议固定随机种子,多跑几次取平均。实验记录要详细,包括提示词、温度参数、最大token数、硬件环境。我吃过亏,过了一个月想复现自己的实验,发现没记全参数。跨模型对比时,我会用同一套评测脚本,同一批测试题,同一个解析器。模型输出格式不一样,解析器要适配。有的模型喜欢加“答案是:”,有的直接写数字。解析器写不好,准确率会差很多。

4.5 常见陷阱:答案猜测、评测集过拟合与提示敏感性

答案猜测在选择题里特别常见。模型可能选出现频率高的选项,或者选最长的选项。我设计选择题时让选项分布均匀,正确答案的位置随机。我还会加一个“以上都不对”的选项,看模型是不是真会。有个模型在四选一上准确率三十,比随机高一点。让它解释为什么选,它就胡说。这种模型在实际场景里不能用。

评测集过拟合是另一个坑。我见过有人反复用测试集调提示词,调到最后准确率很好看。换一个新测试集,掉二十个点。我的做法是留一个隐藏测试集,只在最后跑一次。日常调参用验证集。验证集也要和测试集分布不同。我试过用同一批题做验证和测试,模型很快过拟合。后来我把数据按知识点分层,验证集和测试集覆盖不同知识点。

提示敏感性很麻烦。同一个题,换个问法,模型表现不一样。我把“求x”改成“计算x的值”,准确率变了三个点。提示里的标点、空格、换行都可能影响。我试过在提示末尾加一个句号,模型输出格式就变了。我建议评测时用多个提示模板,取平均分。模板要覆盖不同问法,比如直接问、情境问、反向问。取平均能降低提示带来的方差。我还会记录每个模板下的表现,看模型对哪种问法更敏感。

做模型数学能力评测这些年,我越来越觉得评测本身不是终点。跑完分数,拿到排行榜,真正的活儿才刚开始。这一章我想聊聊评测之后的事——我们卡在哪些地方,接下来会往哪里走,研发者和应用者分别该怎么动手。

5.1 当前模型数学能力评测面临的主要挑战

我最头疼的挑战是评测集的生命周期太短。一个基准刚发布时,模型准确率可能只有三四十。过半年再看,新模型冲到八十以上。再过一年,榜单前几名挤在九十五分附近,区分度几乎没了。GSM8K、MATH这些基准都经历过这个过程。题目没变,模型在变。可模型变强的同时,也在变相地“记住”这些题。数据污染像影子一样跟着评测走。

难度校准也很难做。我试过自己出题,按知识点分层,觉得难度控制得不错。实际跑下来,模型在一道我随手编的题上卡住,在另一道我觉得挺难的题上秒答。人工预估的难度和模型感知的难度不总是一回事。竞赛题、教材题、合成题,各自的难度曲线不一样。合成题看起来复杂,可能只是数字大。竞赛题数字小,推理链条长。混在一起算平均分,信息量会被稀释。

推理链的自动评估依然是个开放问题。我可以用脚本比对最终答案,对就是对,错就是错。过程呢?模型写十步,第三步用错了定理,后面结果碰巧对了。自动评测给满分,人工一看就知道有问题。我试过让另一个模型当裁判,给推理过程打分。裁判模型自己也犯错,还会偏袒和自己风格相近的输出。多模型投票能缓解,成本又上去了。

中文数学评测的资源比英文少一截。我找中文竞赛题、教材题、中高考真题,公开可用的标注数据集不多。很多中文基准是从英文翻译过来的,翻译过程会丢语境。比如“鸡兔同笼”这种题,直译成英文再翻回来,味道就变了。中文数学表达的多样性也大,“求值”“计算”“解”在不同语境下意思相近,翻译模型不一定能对齐。

5.2 大模型数学推理能力评测基准与数据集的发展趋势

我看基准的发展,有几个方向比较清楚。从静态走向动态是一个。固定题库迟早被刷穿,动态生成题目的思路越来越受重视。用程序随机生成数学题,每次评测都是新题,模型没法靠记忆拿分。我试过用符号计算库生成代数题,控制系数范围、方程次数、解的个数。生成器写起来费劲,但能持续产出新题。难度参数可以调,想测哪个层次就调哪个层次。

多模态数学评测在冒头。几何题有图,统计题有表,应用题有示意图。纯文本模型在这些场景里天然吃亏。我见过一些基准开始加入带图的数学题,要求模型读图、理解空间关系、提取数量信息。模型得同时处理视觉和符号。这个方向的评测难度比纯文本高不少,标注成本也大。带图的几何证明题,人工标注一步就要花好几分钟。

过程级评测的呼声越来越高。只对答案的评测方式被越来越多的人质疑。我参加过的几次讨论里,大家都觉得应该看推理步骤。可过程评测的标准很难统一。一道题有几种解法,每种解法的步骤划分不一样。模型用了一种没见过的解法,自动评测系统可能判错。形式化方法是一条出路,把数学推理转成Lean或Isabelle能验证的形式。门槛高,覆盖面窄,现阶段只能做小规模高质量评测。

评测和训练的边界在模糊。以前评测就是评测,训练就是训练。现在有人拿评测集的分析结果去指导数据构造,反过来提升模型。评测反馈进入训练循环,模型迭代更快。这种循环用好了是正向的,用不好就是过拟合。我自己的做法是把评测分成公开集和隐藏集。公开集的结果可以用来分析错误模式,隐藏集只在关键节点跑一次。隐藏集的结果不参与任何训练决策。

5.3 面向研发者的模型数学能力提升策略:数据、训练与推理增强

研发者问我怎么提升模型数学能力,我一般从数据说起。数学数据不在多,在精。我做过对比,一万条高质量带详细推理步骤的题,效果比十万条只有答案的题好。推理步骤要写得清楚,每一步的依据是什么,用了哪个定理,做了哪种变换。标注员最好有数学背景。我找过非数学专业的人标推理步骤,标出来的东西逻辑跳跃,模型学不到东西。

数据配比也关键。纯数学题训练出来的模型,在应用题上表现差。应用题需要语言理解加数学建模。我在训练数据里混入一定比例的文字题,模型在GSM8K这类基准上的表现会好一些。几何题需要空间推理,代数题需要符号操作,微积分需要极限思维。不同能力的题按比例搭配,模型的能力分布更均衡。我试过按知识点分层采样,每个知识点保证最低数量,长尾知识点不至于被淹没。

训练策略上,我观察到几个有用的做法。课程学习有效,先给简单题,再给难题,模型学得稳。我试过直接上难题,模型在简单题上的表现反而下降。思维链微调是另一个抓手。用带推理步骤的数据做监督微调,模型会模仿逐步推理的风格。这个风格在遇到新题时能迁移。我还试过用拒绝采样,让模型生成多个解答,挑出答案正确的那些,再拿来微调。循环几轮,准确率有提升。

推理增强是测试时的功夫。思维链提示、自洽性投票、工具调用,这些方法不需要重新训练模型。我常用自洽性投票,让模型跑五遍,取多数答案。准确率能涨几个点,代价是推理成本翻五倍。工具调用在数值计算和符号运算上立竿见影。我让模型调用Python做矩阵运算、解方程、算积分。模型负责理解题意和规划步骤,计算交给工具。这种分工比让模型硬算靠谱得多。验证器也是思路,生成多个候选答案,用一个专门的验证模型打分,挑最好的。

5.4 面向应用者的选型与落地建议

应用者选模型,我建议先想清楚场景。离线批处理作业,比如批量批改试卷、生成习题解析,可以选准确率优先的模型。慢一点没关系,答案对就行。实时答疑场景,学生等着回复,响应速度权重更高。准确率八十五但响应两秒的模型,可能比准确率九十二但响应十秒的模型更合适。我见过有人只看榜单准确率选模型,上线后响应太慢,用户体验很差。

成本要算总账。API调用按token计费,推理链长的模型消耗大。一道题生成两千token和生成两百token,成本差十倍。开源自部署看起来省了API费用,GPU成本、运维成本、调优成本加起来未必便宜。我帮人做过测算,日请求量低于一定阈值时,API更划算。量大了自部署才有优势。数学能力强的模型往往参数量大,推理成本高。小模型在简单题上够用,复杂题才需要大模型。分级路由是个务实做法,简单题走小模型,复杂题走大模型。

落地时要做预期管理。模型数学能力再强,也会有错。我建议应用者设计人机协作流程。模型出解答,人工抽检或者关键步骤复核。教育场景里,直接拿模型答案给学生看有风险。模型推理链看起来流畅,中间可能藏着错误。我见过模型用错误的公式推出正确答案,学生照着学就学歪了。给用户的输出里加置信度提示,低置信度的结果标出来,让人多看一眼。

领域适配不能忽视。通用数学基准分数高,不代表在特定领域好用。金融数学、工程数学、竞赛数学,各自的符号体系和常见题型不一样。我建议应用者用自己的业务数据做一轮小规模评测。拿几十道真实场景的题跑一下,看模型表现。这个评测不用很正式,但能暴露很多问题。我帮一个团队测过,通用基准九十分的模型,在他们领域的题上只有六十分。问题出在专业符号和行业惯例上。后来用领域数据做了微调,分数才上来。

5.5 构建可信、可复现、可持续的数学能力评测生态

可信的评测,第一要务是透明。评测用了哪些题,题目从哪来,标注流程是什么,评测脚本长什么样,这些信息应该公开。我审过一些评测报告,只给一个分数,细节一概没有。这种分数没法信。可信的评测还要允许第三方复现。同样的题、同样的脚本、同样的模型版本,跑出来应该是一样的结果。我建议评测方提供完整的复现包,包括数据、代码、环境配置。

可复现的难点在模型版本。闭源API模型随时更新,今天测的GPT-4和下周的GPT-4可能不是一回事。我建议评测报告里注明模型版本号和评测日期。开源模型相对稳定,权重固定,复现容易些。推理参数也要记录,温度、top_p、最大token数,这些都会影响结果。我吃过亏,评测时忘了记温度,后来复现发现结果对不上,排查了半天。

可持续的评测生态需要多方参与。一家机构出题,另一家机构评测,第三方审计,这种分工能减少利益冲突。我见过模型厂商自己出题自己测,题目偏向自己的模型。独立评测机构的价值在这里。学术界、工业界、教育界各有视角,凑在一起才能覆盖不同需求。学术界关注推理能力的本质,工业界关注落地效果,教育界关注教学价值。评测基准的设计要听取多方意见。

评测结果的呈现方式也影响生态健康。排行榜有激励作用,也容易导致刷榜。我建议排行榜之外,多发布细粒度分析报告。模型在哪些知识点强,哪些弱,错误类型分布怎样,推理链质量如何。这些信息比一个总分有用。我常看细粒度报告,从中找模型改进的方向。总分相近的两个模型,短板可能完全不同。一个几何弱,一个应用题弱。应用者根据报告选模型,比看总分靠谱。

评测生态还需要长期维护。基准会过时,题目会泄露,模型会进化。我参与过几个基准的维护工作,定期更新题目、淘汰被污染的题、补充新题型。这个工作琐碎,但很重要。没有维护的基准,两三年就废了。我建议评测项目申请长期经费,别做完一版就散伙。维护团队要包含数学专家、评测工程师、数据标注员。数学专家把控题目质量,工程师维护评测平台,标注员持续产出标注数据。三方配合,评测生态才能转起来。

赞0
踩0
☆收藏0
版权声明
文章版权声明:除非注明,否则均为ZBLOG原创文章,转载或复制请以超链接形式并注明出处。
分享到
chuanbook

链接已复制到剪贴板