1.1 主题界定:中文知识问答准确率的含义、对比维度与核心价值
我先把中文知识问答准确率说成一句大白话:模型用中文回答知识性问题时,答案对得上标准答案的程度。这个“对得上”不只看结论对错,还看答案是否完整、是否扣题、是否把限定条件说清楚。比如问“某历史事件发生在哪一年”,年份对了但事件对象搞错了,我会判错;问“某政策的主要目标”,只答一个关键词也不够,我会看它有没有把目标层次讲明白。我平时做中文知识问答准确率对比,会把这类细节拆开记录。
我关心的对比维度不止一个总分。题型上,单选题、多选题、填空题、开放问答题的判分难度差别很大;知识类型上,常识、学科知识、事实性问答、垂直领域问答对模型的要求也不一样。知识时效和长尾覆盖同样要放进来看。一个模型在常见常识题上得分高,遇到冷门学科题或新近事实题,准确率可能掉下来。我做对比时会按题型和领域分组看,避免被一个平均分带偏。
这套对比的核心价值,我常跟同事说得很直白:帮人选模型、帮人找短板、帮人设计更好的测试集。选型时,榜单能给出一个起点;找短板时,分组准确率能告诉我模型弱在常识还是弱在专业领域;设计测试集时,对比结果能提醒我别只堆简单题。中文知识问答准确率对比做得好,能让评测更贴近真实使用,也能减少“高分低能”的误判。
1.2 评测榜单总览:大模型中文知识问答准确率对比评测榜单的构成、指标与解读方式
我拿到一份大模型中文知识问答准确率对比评测榜单,会先翻它的“说明书”。榜单构成一般包括参评模型清单、测试数据集说明、题型配比、评分口径、版本日期和误差范围。模型清单要看版本号,同名模型不同版本差别很大;数据集说明要看样本来源和去重方式;题型配比要看开放题占多少。评分口径里,答案匹配规则、人工复核比例、拒答处理方式都会影响准确率数字。
指标这块,我习惯把准确率当成主指标,把覆盖度、鲁棒性、拒答率当成辅助指标一起看。准确率高但覆盖度低,说明它可能只挑了容易答的题;鲁棒性差,说明换个问法就掉分;拒答率异常,说明模型在保守和冒险之间偏了一边。我看中文知识问答准确率对比榜单时,会特别留意分组指标,比如常识组、学科组、事实组、领域组各自的准确率。一个总分背后的结构,比总分本身更有信息量。
解读方式上,我会守住几条:看样本量够不够,看置信区间宽不宽,看评分规则是否透明,看榜单更新频率。样本量太小的分组,我不会拿来下结论;评分规则不透明的开放题,我会打折看;版本太旧的榜单,我只把它当历史参考。我还会把榜单和真实业务问题放在一起对照,挑几十条业务问题做小样本复核。榜单是地图,不是终点。
1.3 对比要素总述:模型能力、知识覆盖、题型差异与领域分布对准确率的影响
我做中文知识问答准确率对比时,会把模型能力拆成几个可观察的点:参数规模、训练数据的中文占比、对齐策略、推理稳定性。参数规模不是唯一变量,中文语料质量和训练配比往往更影响中文知识问答表现。对齐策略会影响模型愿不愿意直接回答,推理稳定性会影响同一道题多次提问的答案一致性。我常拿同一批题重复测几次,看答案波动大不大。
知识覆盖这块,我会分常见知识、长尾知识、时效知识和垂直领域知识。常见知识题得分普遍高,长尾题和时效题更容易拉开差距;垂直领域题要看模型有没有领域语料积累。题型差异也很明显:选择题有选项约束,模型容易排除干扰项;开放问答题没有固定边界,判分和作答都更难。领域分布上,医学、法律、金融、科技这类领域对术语和上下文要求高,模型答偏一点,准确率就会掉下来。
我把这些要素放在一起看,不会只盯一个维度。模型能力强,知识覆盖窄,遇到领域题照样吃亏;知识覆盖广,题型适配差,开放题也可能失分。我做对比时会做交叉分组,比如“常识+开放题”“学科+选择题”“领域+事实题”。交叉分组能看出模型的能力结构,也能帮我判断它在真实场景里靠不靠谱。
1.4 评测方法总述:中文知识问答准确率对比测试数据集与方法的设计原则与使用边界
我设计中文知识问答准确率对比测试数据集时,会守住几条原则:来源可追溯、标注有规范、难度有分层、题型有均衡、领域有覆盖、防泄漏要做足。来源可追溯,指的是每道题能查到出处和版本;标注有规范,指的是标准答案、可接受答案、判错边界都写清楚;难度分层能避免简单题堆高分;防泄漏要检查测试题有没有出现在公开训练语料里。中文语境也要照顾到,专有名词、简称、口语化问法都得纳入样本。
评测方法上,我会控制提示词和少样本设置。提示词长度、格式、是否给示例、示例质量都会影响准确率;少样本设置不同,模型表现也会变。我会把提示词模板固定下来,把少样本数量固定下来,把温度参数和最大输出长度记录下来。人工复核比例也要写清楚,开放题不能只靠字符串匹配。复现实验时,我会保留随机种子和模型版本号,方便别人核对。
使用边界我也说得很清楚:榜单结果不能直接替代业务验证,测试集有采样偏差,模型版本会更新,评分规则有主观空间。中文知识问答准确率对比适合做横向参考和短板定位,不适合当成唯一采购依据。我会用业务小样本再做一轮验证,把榜单分数和真实任务表现放在一起看。评测方法越透明,中文知识问答准确率对比越有参考价值。
2.1 数据集分类与构建:通用常识、学科知识、事实性问答及领域问答的样本来源与标注规范
我做中文知识问答测试集的时候,第一步是把它拆成四类:通用常识、学科知识、事实性问答、领域问答。通用常识题我主要从百科条目、生活常识手册和公开问答社区里挑,重点选那些中文语境里经常被问到的内容,比如节气、传统节日、常见动植物。学科知识题我偏向从教材习题、考试真题和学科竞赛题里找,数学、物理、历史、地理各占一部分,难度按年级分层。事实性问答题我盯的是“可核验”三个字,人物、时间、地点、事件这类有明确答案的题目优先。领域问答题我选医学、法律、金融、科技四个方向,样本来源是行业公开文档、专业词典和经过审核的科普文章。
样本来源确定之后,我特别在意去重和防泄漏。同一道题换个问法算不算重复,我会用一个语义相似度阈值来筛,超过阈值的只保留一条。防泄漏这块,我会把候选题目拿去和公开训练语料做 n-gram 比对,命中率高的题目直接剔除。中文还有个麻烦事,简称和全称混着来,比如“北大”和“北京大学”,我会在题目里统一用全称,答案里保留常用简称作为可接受答案。每个类别我至少保留三百道题,领域问答每类不少于一百五十道,样本量太小的分组我不太敢单独拿出来说事。
标注规范我写得比较细。每道题配一个标准答案、一组可接受答案、一条判错边界说明。标准答案是唯一正确的核心表述,可接受答案覆盖同义表述和常见简称,判错边界说明写清楚哪些情况算错,比如答非所问、只答一半、把限定条件搞反。开放问答题我还会加一条“关键点清单”,人工复核时按关键点覆盖比例打分。标注人员我要求两人独立标注,分歧超过一定比例就拉第三人仲裁。中文标点、数字格式、单位写法这些细节,我在标注手册里都给了示例,避免因为格式问题把对的判成错的。
2.2 评测指标与实验流程:准确率、覆盖度、鲁棒性及提示词与少样本设置的控制策略
指标这块,我把准确率当主指标,覆盖度和鲁棒性当副指标。准确率的算法我分两套:选择题和填空题用严格匹配加规则归一化,开放题用关键点覆盖比例加人工复核。覆盖度我定义为模型给出有效回答的题目占全部题目的比例,拒答和答非所问都算未覆盖。鲁棒性我用同一道题的多种问法来测,包括换语序、加干扰信息、用口语化表达,看准确率波动有多大。这三个指标放在一起看,比单看准确率靠谱得多。
实验流程我固定成一套模板。提示词模板统一用“请用中文回答以下问题,尽量简洁准确”开头,不给额外示例的情况叫零样本,给示例的情况固定给三个示例,示例从训练集里抽,不碰测试集。温度参数我一般设成零或者零点一,最大输出长度按题型设上限,选择题给五十个 token,开放题给三百个 token,超了就截断。每次实验我记录模型版本号、推理框架版本、随机种子和硬件环境。同一批题我至少跑两轮,看结果稳不稳定。
少样本设置的控制我踩过坑。示例数量从零到五我都试过,发现给三个示例的时候准确率相对稳定,给五个反而有些模型开始模仿示例格式,答非所问。示例质量也很关键,我要求示例覆盖不同题型和不同难度,不能全是简单题。提示词长度我控制在两百字以内,太长了模型容易忽略后面的指令。还有一点,我在提示词里不写“你是专家”这类角色设定,避免引入额外变量。实验流程写清楚之后,别人复现起来会轻松很多。
2.3 榜单结果与模型差异分析:大模型中文知识问答准确率对比评测榜单中的分组表现与误差来源
我看榜单结果先看分组,不看总分。通用常识组里,各模型准确率普遍在八成以上,差距不大;学科知识组开始拉开,数学和物理的分差最明显,历史地理相对接近;事实性问答组里,时效性强的题目把差距进一步放大;领域问答组的分差最大,医学和法律两道坎,不少模型掉到六成以下。我印象比较深的是,有些模型常识组能到九成,领域组直接掉到五成出头,这种结构性差异比总分更有看头。
模型差异的来源我归了几类。训练语料的中文占比和领域覆盖是第一层,中文语料少、领域文档少的模型,在学科和领域组吃亏明显。对齐策略是第二层,偏保守的模型拒答率高,覆盖度上不去;偏冒险的模型乱答多,准确率被拉低。题型适配是第三层,选择题靠排除法能提分,开放题靠组织语言,有些模型选择题强、开放题弱,分组一看就露馅。还有推理稳定性,同一道题跑三次答案不一致的情况我遇到过不少,这种波动在榜单上体现不出来,但实际用起来很要命。
误差来源我也做了拆解。采样误差方面,样本量小的分组置信区间宽,我不会拿几百道题的分组去下强结论。评分误差方面,开放题的人工复核有主观空间,我统计过复核一致性,关键点清单写得越细,一致性越高。数据泄漏方面,有些题目在公开语料里出现过,模型可能见过,这部分题目我单独标记,分析时打折看。模型版本差异也不能忽略,同名模型不同版本的分差有时候比不同模型之间的分差还大。看榜单结果,我会把这些误差来源在脑子里过一遍,再决定信几分。
2.4 复现与验证:中文知识问答准确率对比测试数据集与方法的可复现性、公平性与局限性
复现这件事,我的做法是把能公开的都公开。数据集我给出题目、标准答案、可接受答案、关键点清单和来源标注,训练集和测试集的划分方式写清楚,去重和防泄漏的脚本也附上。评测代码我打包成脚本,提示词模板、少样本示例、温度参数、最大输出长度都写在配置文件里。模型版本号和推理框架版本我要求精确到小版本号,随机种子固定下来。做到这些,别人复现出来的数字和我的数字差距能控制在一个百分点以内。
公平性我盯几个点。所有模型用同一套提示词模板、同一批测试题、同一套评分脚本,这是基本盘。模型调用方式要统一,API 调用和本地部署的差异我会单独标注,不混在一起比。有些模型对提示词格式敏感,我会做一轮提示词敏感性测试,看换个模板准确率波动多大,波动大的模型我在榜单里加备注。参评模型的版本日期我也标清楚,不同日期的版本不放在同一张表里直接比。公平性不是绝对的平均,是把变量控制住,把差异说清楚。
局限性我说得比较直白。测试集有采样偏差,我选的题目偏重公开可查的知识,冷门长尾和最新事实覆盖不够。评分规则对开放题有主观空间,关键点清单再细也不能完全消除分歧。模型更新速度快,榜单结果有保鲜期,超过三个月的榜单我只当历史参考。中文语言现象复杂,方言、网络用语、行业黑话我覆盖得有限。这些局限性我不会藏着,写在使用说明里,提醒使用者别把榜单当唯一标准。
2.5 使用建议与趋势展望:理性看待榜单结果、优化评测设计并提升中文知识问答准确率
用榜单的时候,我建议先明确用途。选型阶段,榜单可以缩小候选范围,把明显不合适的模型筛掉。定短名单之后,一定要拿自己的业务问题做小样本验证,几十道到上百道题就够看出趋势。看榜单我建议看分组、看覆盖度、看鲁棒性,别只盯总分。总分高的模型不一定适合你的场景,业务问题偏领域问答的,领域组准确率比总分重要得多。榜单是起点,业务验证才是终点。
优化评测设计这块,我有几个正在试的方向。题目难度分层我想做得更细,按模型答对比例动态调整难度标签。鲁棒性测试我想加更多中文特有的变体,比如把书面语改成口语、把全称换成简称、加一些无关的背景信息。领域问答我想扩大覆盖,医学和法律之外,再把教育、工程、农业加进来。评分方式上,我在尝试用关键点清单加语义相似度的混合评分,减少纯人工复核的成本。评测集版本化管理我也在推,每次更新记录变更内容,方便追溯。
提升中文知识问答准确率,模型侧和评测侧要一起使劲。模型侧,中文语料的质量和领域覆盖是根本,对齐策略要在保守和冒险之间找平衡点,推理稳定性要通过解码策略和一致性训练来改善。评测侧,测试集要更贴近真实使用,题型配比要合理,评分规则要透明可复现。我自己的体会是,评测做得好,能反过来指导模型优化,告诉训练团队短板在哪里。中文知识问答准确率对比这件事,做深了有价值,做浅了就是一堆数字。我会继续把测试集做厚、把方法做透、把结论说清楚。