ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

中文问答评测实战:从评分锚点到四维评估的完整方法

中文问答评测实战:从评分锚点到四维评估的完整方法

中文问答能力评估这件事,说简单也简单,说复杂也复杂。简单在于,你随便找几十道题扔给模型,看它答对多少,也能得出一个数字;复杂在于,这个数字往往经不起追问——题目从哪来的、难度怎么分层、评分标准是什么、换一批题结果会不会翻盘。我在过去一年多里反复做过好几轮中文问答评测,从最开始拍脑袋出题,到后来搭建一套相对可复现的评估流程,中间踩的坑比想象中多得多。这篇内容就是把这套方法和背后的判断逻辑完整拆开讲清楚,适合正在做模型选型的技术负责人、需要给团队搭建评测集的产品同学,以及想认真比较不同模型中文能力差异的开发者。读完你至少能拿到三样东西:一套可落地的小型评测集构建方法、一份评分维度的设计思路、以及一批只有真跑过评测才会知道的注意事项。

1. 为什么中文问答评测不能只看“答对率”

很多人第一次做评测,直觉就是统计准确率:一百道题答对八十道,就是80分。这个思路本身没错,但放在中文问答场景里,它会系统性地高估或低估模型能力,原因藏在三个地方。

1.1 中文问答的“对”本身是个模糊概念

英文问答里,很多题目的答案是可以精确匹配的,比如问某个数值、某个日期,答案唯一。中文问答不一样,大量问题的正确答案是一个区间、一种表述方式、一段需要组织语言的解释。举个我实际用过的题:“为什么夏天白天比冬天长?”模型回答“因为地球自转轴倾斜,夏季所在半球更朝向太阳,日照时间更长”,这个答案是对的;另一个模型回答“因为地球绕太阳公转的轨道是椭圆,夏天离太阳近”,这个答案是错的,但它表述得很自信、很流畅。如果只做关键词匹配,第二个答案里出现了“地球”“太阳”“夏天”,很可能被误判为正确。

所以中文问答评测的第一个认知转变是:评分必须引入语义判断,不能停留在字面匹配。我后来的做法是给每道题预设“得分点”,把标准答案拆成若干必须命中的语义要素,模型回答命中几个要素就给对应分数,而不是简单的对错二分。这个改动让评测结果的可信度提升非常明显,尤其是对那些“答对一半”的回答,区分度一下子就出来了。

1.2 流畅度会伪装成正确性

大语言模型有个特点:它错的时候往往也说得头头是道。我遇到过模型把某个历史事件的年份说错,但前后文逻辑自洽、语气笃定,第一次看的时候差点被唬过去。如果评测者只是快速扫一眼回答,很容易把“说得顺”当成“答得对”。

这个问题在人工评测里尤其致命。我的应对办法是盲评加交叉复核:评测时先不看是哪个模型的回答,只看内容本身打分;同一批回答由两个人独立评,分歧超过一定阈值的题目拎出来单独讨论。听起来麻烦,但实测下来,这一步能筛掉相当一部分“看起来对其实错”的误判。如果团队人手有限,至少要做到评分时对照得分点逐条核对,而不是凭整体印象给分。

1.3 题目分布决定了结论的走向

还有一个隐蔽的坑:题目从哪来。如果题目全部来自某个领域的文档,模型在这个领域表现好,不代表它通用问答能力强;如果题目全是简单常识,那所有模型都能拿高分,评测就失去了区分意义。我见过一份评测集,八成题目是“中国的首都是哪里”这种难度,结果几个模型分数都在95以上,完全看不出差异。

合理的做法是按难度和题型分层抽样。我一般把题目分成四层:基础事实类(单一知识点)、理解解释类(需要组织语言说明原因或机制)、推理类(需要多步思考或计算)、开放生成类(没有唯一答案,看表达质量和信息密度)。每层占一定比例,评测时分层看结果,而不是只看总分。这样即使总分接近,你也能看出模型到底强在哪、弱在哪。

2. 搭建一套小而可用的中文评测集

大机构动辄几千上万道题的评测集,普通团队没必要也没精力复刻。我的经验是,两百到三百道题、结构合理、评分标准清晰,就足以支撑一次有参考价值的横向比较。关键在于怎么选这三百道题。

2.1 题目来源的三个渠道与取舍

我实际用过的题目来源主要有三类,各有优劣,建议混合使用。

第一类是公开数据集筛选。市面上有一些中文问答和阅读理解的开源数据集,题目质量相对有保证,缺点是风格偏学术、和真实用户提问方式有距离。我的做法是从中抽取一部分,但会做改写,把书面化的提问改成更口语的表达,比如把“请阐述……的成因”改成“为什么会……”,让题目更贴近实际使用场景。

第二类是业务真实问题沉淀。如果团队有客服记录、用户提问日志,这是最宝贵的题源,因为它直接反映真实需求分布。我从历史提问里挑出高频问题和典型难题,脱敏后纳入评测集。这类题目的价值在于,评测结果能直接指导业务决策,而不是停留在纸面比较。

第三类是人工构造的边界题。针对模型容易出错的场景专门设计题目,比如多音字歧义、需要区分近义词的题、带否定词的逻辑题、涉及数量计算的题。这类题目数量不用多,但能有效暴露模型的短板。我通常会构造三四十道这类“刁钻题”,单独统计得分,作为模型鲁棒性的参考指标。

题目来源优势局限建议占比
公开数据集筛选改写质量稳定、覆盖广风格偏学术约40%
业务真实问题贴近实际、指导性强需脱敏、分布不均约40%
人工构造边界题暴露短板、区分度高数量有限、主观性强约20%

2.2 每道题必须配一份“评分锚点”

这是我认为整个评测流程里最值得投入时间的环节。所谓评分锚点,就是针对每道题提前写好:满分回答应该包含哪些要点、部分正确的回答长什么样、典型错误回答是什么样。写这个的过程本身就是在逼自己想清楚“这道题到底在考什么”。

举个我实际写过的锚点示例。题目是“解释一下为什么高压锅能加快烹饪速度”。满分锚点:提到气压升高导致水的沸点升高(核心点一),沸点升高使食物在更高温度下烹饪从而更快熟透(核心点二),表述准确无常识错误。部分正确:只提到“压力大所以熟得快”,没有解释沸点机制,给一半分。典型错误:说“高压锅内部温度低所以快”,或者把原理说成“密封导致热量不流失”,这类给低分或零分。

有了锚点,评分就从“凭感觉”变成了“对表打分”,不同评测者之间的一致性会好很多。我建议锚点写得具体一点,宁可啰嗦,也不要写“回答合理即可”这种没法执行的标准。

2.3 难度分层的具体操作

前面提到按难度分层,具体怎么分?我的做法是给每道题打两个标签:知识广度和推理深度。知识广度分三级(常见常识、专业领域知识、冷门知识),推理深度也分三级(直接回忆、单步推理、多步推理)。两个维度交叉,自然形成不同难度档位。

实际操作中,我会确保评测集里“常识+直接回忆”这类简单题不超过三成,否则整体分数虚高;“专业+多步推理”这类难题占两成左右,用来拉开差距;剩下的是中间档。这个比例不是死的,根据评测目的调整——如果目的是选型对比,难题比例可以适当提高;如果目的是摸底现有模型能不能上线,那应该更贴近真实业务的难度分布。

3. 评分维度:除了对错还要看什么

只统计答对率,会丢掉很多有价值的信息。我在多轮评测后固定下来一套四维评分,每个维度单独打分再综合,这样得出的结论比单一分数有说服力得多。

3.1 准确性:核心但需要拆细

准确性是基础维度,但我把它拆成三个子项分别打分:事实正确性(有没有说错事实)、要点覆盖度(该说的要点说了几个)、无虚构内容(有没有编造不存在的信息)。第三项特别重要,因为大语言模型的“幻觉”问题在中文问答里很常见,模型可能给出一个听起来合理但完全虚构的答案。

我遇到过模型在回答某个专业概念时,把两个相近概念的定义混在一起,还编造了一个不存在的出处。这种回答如果只看“像不像那么回事”,很容易给高分,但拆开看事实正确性和无虚构内容两项都是低分。分开打分之后,这类问题就藏不住了。

3.2 表达质量:中文特有的考量

中文问答对表达的要求和英文不太一样。我关注的几个点:语句是否通顺(有没有语病)、用词是否准确(近义词有没有用错)、结构是否清晰(长回答有没有条理)、语气是否得体(该正式的地方是否正式)。这几项里,用词准确是最容易被忽略也最容易出问题的,中文近义词多,模型有时候会用错语境,比如把“截止”和“截至”混用,把“权利”和“权力”搞反。

表达质量我一般用三级评分:好、中、差。好评是通顺准确有条理,中评是有小瑕疵但不影响理解,差评是明显语病或词不达意。这个维度主观性较强,所以我会要求评测者给出简短理由,方便复核。

3.3 信息密度:回答有没有“水分”

有些模型回答问题时喜欢绕圈子,说了一大段但有效信息很少。我专门设了信息密度这个维度,看回答里有效信息占多大比例。判断方法很直接:把回答里删掉客套话、重复表述、无关铺垫之后,剩下的核心内容有多少。

这个维度对开放生成类题目尤其重要。比如问“如何提高睡眠质量”,有的模型给五条具体可操作的建议,有的模型先说一段睡眠重要性的套话再给两条泛泛而谈的建议,两者准确性可能都过得去,但信息密度差距明显。我一般按“高、中、低”三档打分,低密度回答即使没有错误,综合评分也会被拉下来。

3.4 一致性:同一问题多次回答稳不稳

这个维度很多人不做,但我觉得很有必要。大语言模型有随机性,同一个问题问两次可能得到不同答案。如果两次答案在关键事实上矛盾,说明模型对这个知识点掌握不牢。我的做法是抽取一部分题目(大概两成),对每个模型重复提问两到三次,比较答案的一致性。

一致性差的模型,在实际使用中会让人不放心——用户这次问得到一个答案,下次问得到另一个,信任感就没了。这个维度我按“一致、轻微差异、明显矛盾”三档记录,作为选型时的重要参考。

评分维度子项评分方式权重建议
准确性事实正确性、要点覆盖度、无虚构按得分点计分50%
表达质量通顺、用词、结构、语气三级评分20%
信息密度有效信息占比三级评分15%
一致性多次回答稳定性三档记录15%

权重不是固定的,根据用途调整。如果是做知识问答类产品,准确性权重可以提到六成;如果是做内容生成辅助,表达质量和信息密度的权重应该提高。

4. 实测流程:从出题到出报告的完整链路

方法讲完了,这一节把整个流程串起来,按我实际执行的顺序走一遍,中间穿插那些只有真跑过才知道的细节。

4.1 评测前的准备工作

正式评测前有几件事必须先定下来,否则跑到一半会乱。第一是明确评测目的:是选型对比、是上线前验收、还是定期监测模型表现变化?目的不同,题目侧重和评分权重都不一样。第二是锁定模型版本,大语言模型更新频繁,评测时必须记录每个模型的具体版本标识,否则过两周结果就没法复现了。第三是统一提问方式,同一个问题用完全相同的措辞问每个模型,不要这个模型加一句“请详细回答”,那个模型不加,否则比较就不公平。

还有一件容易被忽略的事:控制提问环境。如果通过接口调用,要确认温度参数等设置一致;如果用网页版,要注意不同模型的默认设置可能不同。我吃过一次亏,两个模型一个默认温度低、一个默认温度高,结果高温度那个回答更发散,被误判为“表达更丰富”,其实只是参数差异。

4.2 执行阶段的分批策略

三百道题乘以几个模型,题量不小,一次性跑完容易出错也难管理。我的做法是分批执行,每批五十道题左右,跑完一批立刻做初步检查,看有没有明显的异常——比如某个模型大面积答非所问,可能是接口出了问题;或者某道题所有模型都答错,可能是题目本身有歧义。

分批还有个好处是能及时调整。我有一批题跑完发现难度偏低,所有模型都接近满分,于是后面补了一批更难的题进去。如果一次性跑完才发现这个问题,返工成本就高了。

执行时我会用一张表记录每道题每个模型的原始回答,字段包括:题目编号、模型标识、原始回答全文、回答耗时(可选)。原始回答一定要完整保存,不要只存评分,因为后续复核或者换评分标准时,原始数据是唯一的依据。

4.3 评分环节的组织方式

评分是最耗人力的环节。我的经验是,先机器初筛再人工精评。机器初筛可以做两件事:一是检查回答是否为空或明显异常(比如全是乱码、答非所问),这类直接标记;二是用简单的规则做初步分类,比如回答里是否包含预设的关键得分点词汇,把明显高分的和明显低分的先分出来,人工重点看中间地带的回答。

人工精评时,我坚持两个原则:盲评(不知道回答来自哪个模型)和对照锚点(逐条核对得分点)。每道题评完记录分数和简短理由。三百道题如果一个人评,大概需要两到三个工作日,两个人交叉评的话时间翻倍但质量更有保证。人手紧张的话,可以只对分歧题和边界题做双评,其余单评。

4.4 结果汇总与报告呈现

评分数据汇总后,不要只给一个总分排名。我通常出三张表:第一张是分层得分表,按题型和难度分别列出各模型得分,看差异出在哪一层;第二张是维度得分表,准确性、表达、密度、一致性四个维度分开列;第三张是典型题目对比表,挑出差异最大的若干道题,把各模型的回答原文和评分并列展示,这张表最有说服力,也最方便非技术背景的决策者理解。

报告里我还会专门写一段“意外发现”,记录评测过程中观察到的、不在原计划内的现象。比如某次评测发现某个模型在带否定词的题目上错误率明显偏高,这个发现后来直接影响了使用建议。这类观察往往比总分更有价值。

5. 那些只有真跑过评测才会知道的坑

方法流程讲得再细,实际操作中还是会遇到各种预料之外的情况。这一节把我踩过的、见过的坑集中列出来,都是些文档里不会写但实际会严重影响评测结论的问题。

5.1 题目本身的歧义比模型错误更隐蔽

有一次评测,一道题所有模型得分都很低,我一开始以为是题目太难,后来仔细看回答才发现,是题目本身有歧义——问的是“某类现象的主要原因”,但“主要原因”可以理解成“最根本的原因”也可以理解成“最常见的直接原因”,模型按不同理解作答,答案自然分散。这种题目如果不剔除,会系统性拉低所有模型的分数,而且很难从分数上看出来。

我的处理办法是预测试:正式评测前,先找几个人(不用是专家,普通使用者就行)试答一遍,如果人对题目的理解都不一致,这道题就该改写或剔除。预测试还能发现另一类问题:有些题目在出题者看来很简单,但实际表述绕口,模型不是不会答而是没看懂问什么。

5.2 评分者的“宽容漂移”

人工评分做久了会出现一种现象:刚开始评的时候标准很严,评到后面越来越松,或者反过来,越评越苛刻。这叫评分者漂移,会严重影响结果的可比性。我遇到过一批题前半段平均分明显低于后半段,复查发现是后半段评得松了。

应对办法有两个:一是打乱题目顺序,不要按模型或按题型集中评,混着评能减少系统性偏差;二是定期校准,每评五十道题,回头重评几道已经评过的题,看分数是否一致,如果不一致说明标准漂了,需要调整。这两个办法都不复杂,但能显著提升评分质量。

5.3 模型“迎合提问”带来的评分干扰

大语言模型有个倾向:会根据提问方式调整回答。如果题目里带有暗示性表述,模型可能会顺着暗示走,而不是给出客观答案。比如问“是不是因为某某原因才导致某某现象”,模型可能顺着说“是的,因为……”,即使这个因果关系并不成立。

这类题目在评测里要特别小心。我的做法是中性化提问,把带有预设的题目改成开放式问法,比如改成“某某现象的原因是什么”。另外,评分时要专门留意模型是不是在“顺着说”,如果回答明显在迎合题目预设而缺乏独立判断,即使结论碰巧对了,也要在准确性上适当扣分。

5.4 长回答的评分陷阱

开放生成类题目容易得到长回答,而长回答评分有个陷阱:内容多不等于质量高。有的模型回答很长,覆盖了很多点,但其中夹杂着不准确的信息;有的模型回答简短,但每句都准。如果评分时被长度影响,就会高估啰嗦的回答。

我的处理方式是先提取要点再评分,不管回答多长,先把它压缩成几个核心要点,然后对照锚点评分。这样长度就不再是干扰因素。另外,信息密度维度本身就是用来对冲这个问题的,长而空的回答在这个维度上会拿低分。

5.5 版本更新导致的历史结果失效

这个问题在做长期监测时特别突出。模型会更新,更新后同样的题目答案可能变化,如果不记录版本,前后两次评测结果就没法直接比较。我有一次做季度对比,发现某个模型分数大幅下降,排查半天才发现是中间模型换了版本,不是能力退化而是版本不同。

所以评测记录里版本标识是必填项,而且最好记录评测日期。如果要做趋势对比,尽量保证每次评测用的是同一批题目、同一套评分标准,模型版本变化要在报告里明确标注,避免误读。

6. 从评测结果到实际决策

评测做完,拿到一堆分数和表格,怎么用这些结果做决策,是另一个需要想清楚的问题。分数高不等于适合你的场景,这一节讲讲怎么把评测结果转化成可执行的判断。

6.1 按场景匹配而非按总分选型

总分第一的模型不一定是最适合的。我一般会先明确场景的核心需求,再去看对应维度的得分。如果是做客服问答,准确性和一致性权重最高,表达质量过得去就行;如果是做内容创作辅助,表达质量和信息密度更重要,准确性只要不犯硬伤即可;如果是做知识科普,准确性和表达质量都要好,信息密度也不能低。

实际操作中,我会画一张简单的匹配表:左边列场景需求,右边列各模型在对应维度的得分,一眼就能看出哪个模型和场景最匹配。这个方法比看总分排名靠谱得多,也能避免“选了总分最高但用起来不顺手”的情况。

6.2 关注失败案例而非平均分

平均分告诉你整体水平,失败案例告诉你风险在哪。我每次评测完都会专门翻一遍低分回答,看模型错在什么地方:是知识盲区、是理解偏差、还是表达问题。如果某个模型在某一类问题上集中出错,那这类问题就是使用时的重点防范对象。

比如某次评测发现一个模型在涉及数量比较的题目上错误率偏高,那在实际使用中,凡是涉及数字比较的场景就要加人工复核。这种基于失败案例的风险清单,比一个笼统的分数有用得多。

6.3 评测结果的时效性管理

模型能力在变,评测结果有保质期。我的经验是,重大版本更新后必须重测,即使版本号只变了一点点。平时可以按季度做一次常规复测,用同一套题目看趋势。如果业务场景发生变化(比如新增了某个领域的问答需求),也要针对性地补充题目重测。

还有一点:评测集本身也需要更新。用久了会发现有些题目已经不能区分模型了(所有模型都能答对),这类题目可以保留作为基础监测,但应该补充新的、更有区分度的题目进来。我一般每半年审视一次评测集,替换掉一成左右的题目。

7. 一套可以直接抄的轻量评测模板

最后把我现在常用的一套轻量模板整理出来,团队小、时间紧的情况下可以直接拿去用。这套模板的核心思路是:题目不求多、评分不求细、但每个环节都要有记录、可复现。

7.1 评测集结构建议

两百道题起步,按前面的分层方法配置:基础事实类六十道、理解解释类六十道、推理类四十道、开放生成类四十道。每道题配评分锚点,锚点写清楚满分要点、部分正确情形、典型错误情形。题目来源按公开数据集、业务真实问题、人工边界题混合,比例参考前面表格。

如果时间实在紧张,一百道题也能跑出有参考价值的结果,但分层要保证,每层至少二十道,否则分层统计没有意义。

7.2 执行清单

正式开跑前对照这份清单逐项确认:评测目的写下来了吗;模型版本记录了吗;提问措辞统一了吗;接口参数(如温度)确认一致了吗;评分锚点每道题都有吗;评分者是盲评吗;原始回答完整保存了吗;有没有安排预测试剔除歧义题。这八项里任何一项没做到,结果的可信度都要打折扣。

7.3 报告最小内容

一份能用的评测报告至少包含:评测目的和范围说明、参与评测的模型及版本、评测集构成说明(题目数量、分层比例、来源)、分层得分表、维度得分表、典型题目对比、失败案例分析、使用建议。其中失败案例分析和使用建议是最容易被省略但最有价值的部分,别省。

我在实际使用这套模板的过程中最大的体会是:评测的价值不在于得出一个精确的分数,而在于通过这个过程把“模型到底行不行”这个模糊问题拆解成一系列具体可回答的小问题。分数会过时,但拆解问题的思路和积累下来的失败案例库,是可以长期复用的资产。另外再分享一个小技巧:每次评测完,把那些让评测者产生分歧的题目单独存一个文件,这些题目往往是最能暴露模型能力边界的,下次评测直接拿来用,效率很高。

返回列表