你住的小区里,多半有一位“问不倒”的大伯:你问他水管冻了会不会裂,他说会;你问他邻居帮了忙要不要道谢,他说要;你问他朋友丢了猫该说什么,他说先安慰再帮忙找。他没背过百科全书,只是在这个小区住了几十年,把柴米油盐里的经验磨成了直觉。这种“不用翻书、看见场景就能推断”的能力,就是常识推理。对 AI 从业者来说,“给大模型发一张社区生活段位考卷”,看它在物理常识、社会常识这些日常场景里能不能像这位大伯一样靠谱,就是常识推理评测要做的事。本文从定义、框架、数据集、评分标准讲到物理与社会两类场景、表现差异和提升路径——读完你就能看懂主流的常识推理评测是怎么设计和打分的。

岗位关联

掌握常识推理的评测方法,你就能为模型设计出更贴近真实世界的“考卷”,在训练数据、提示词与知识增强上找到可量化的改进方向——这是每一位 AI 评测工程师的基本功。

目录
  1. 可视化演示
  2. 1. 推理能力定义
  3. 2. 评测框架设计
  4. 3. 典型数据集
  5. 4. 评分标准
  6. 5. 物理常识场景
  7. 6. 社会常识场景
  8. 7. 表现差异分析
  9. 8. 提升路径方法
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

演示常识推理的评测机制:模型调用预训练积累的物理/社会/时间常识知识,在CommonsenseQA等选择题中从多个候选中选出最合理答案。

本节配有交互动效(进入视口后自动加载,约 3KB)。

模式1:常识知识网络 预训练积累世界知识 实体-关系链接 entity→relation→entity 分布式知识表示支持推理

1. 推理能力定义

小区里的“问不倒”王大伯,年轻时是个普通工人,没上过大学,但你问他“刚浇完热水的老式暖瓶能不能立刻拧盖”“楼下装修的噪音该找谁投诉”,他随口就能答。他不是从某本书上背到了这些答案,而是把几十年的生活经验压缩成了一种“见到场景就知道该怎么办”的判断力。这种判断力,就是我们要考察的常识推理。

大模型也有它的“生活经验”——那是预训练时读过的海量文本。常识推理评测要做的,就是看模型能不能像王大伯一样,把散落在文本里的日常知识“调用”出来,面对一个新编的日常场景做出合理推断。它考察的不是“记没记住”,而是“会不会用”。一个模型可能背下了“玻璃是易碎品”这个句子,但遇到“玻璃杯掉在瓷砖地上会怎样”这样没见过的问法,依然需要真正的推理能力。

技术上说,评测时会给模型一道选择题,例如给出一个日常场景和四个候选答案。模型输出一个选项,评测脚本把它与标准答案比对。衡量整体表现最直观的指标是准确率:答对的题数除以总题数。

这就像居委会给王大伯发了一张“社区生活考卷”,准确率就是卷面得分。得分高,不代表他背过答案,而是说明他真能把生活经验用在对的地方——这正是常识推理与其他知识记忆类评测最大的不同。

Accuracy=NcorrectNtotal×100%Accuracy = \frac{N_{correct}}{N_{total}} \times 100\%
准确率就是把“答对的题数”换算成“百分制卷面分”,是常识推理评测最基础的指标。
  1. 分子 N_correct模型答对的题目数量,是评判结果的直接计数。
    NcorrectN_{correct}
  2. 分母 N_total评测集中包含的题目总数,代表考卷的总题量。
    NtotalN_{total}
  3. 比例与百分号把答对比率乘以 100%,换算成更易读的百分制分数。
    NcorrectNtotal×100%\frac{N_{correct}}{N_{total}} \times 100\%

2. 评测框架设计

居委会要给新住户办“社区生活段位赛”,不能随手抓几个问题就开考。先得想清楚:考什么题型、题目怎么编、谁来判分。这三件事想明白了,考卷才有公信力。AI 常识推理评测也一样,需要一套完整的评测框架。

这套框架通常包含三个环节:任务类型、数据构建和自动化评分。任务类型上,主流做法是多项选择(Multiple Choice)——给一个日常场景,配四到五个候选答案,让模型选一个。多选题的好处是答案客观、评分简单,也方便大规模自动化执行。

数据构建是框架的重头戏。题目要覆盖真实生活场景,比如物理常识、社会常识、工具使用等;同时要防止“答案泄漏”——如果训练语料里出现过一模一样的题,模型就等于提前看到了答案。评分环节则靠脚本自动完成:读取模型的预测选项,与标准答案比对,统计准确率,全程不需要人工判卷。为了保证评测可复现,数据通常要划分成训练、开发和测试三部分。

这就是居委会办段位赛的完整流程:出题(数据构建)、发卷(任务设计)、判分(自动化评分),三件事缺一不可。框架设计得越严谨,考出来的“段位”才越真实。

D=Dtrain:Ddev:Dtest=8:1:1D = D_{train} : D_{dev} : D_{test} = 8 : 1 : 1
数据划分比例:训练集、开发集、测试集按 8:1:1 划分,保证模型调参和最终评测互不干扰。
  1. D_train(训练集)模型训练时使用的题目,占八份,用来学习常识知识。
    DtrainD_{train}
  2. D_dev(开发集)模型调参时使用的题目,占一份,用来选择最优超参数。
    DdevD_{dev}
  3. D_test(测试集)最终测评使用的题目,占一份,模拟“闭卷考试”。
    DtestD_{test}

3. 典型数据集

王大伯的考卷不能只有一张,不同小区的出题风格不一样:有的爱考“生活物理”,有的偏重“人情世故”。常识推理评测也有几套经典的“题源”,被全行业当成共同的尺子。

最常用的是 CommonsenseQA,它从 ConceptNet 知识图谱中采样生成,五选一,覆盖大量日常概念关系;Winogrande 是二选一代词消歧题,比如“奖杯太重,搬运工搬不动它,于是(他/它)被放在地上”,模型要判断“它”指代谁,难度较大;SIQA(Social IQa)专门考察社会互动,问“如果小明想给朋友惊喜,他应该怎么做”这类需要理解意图的问题。中文方面也有常识问答数据集,用来检验模型在中文文化语境下的常识水平。

评估一个模型在这些数据集上的表现,不能只看某一类题目的正确数,还要看它在所有类别上都稳定发挥。这时常用宏平均 F1 分数(Macro-F1):先算每个类别的 F1,再把所有类别的 F1 取平均,避免“偏科”模型靠某一个简单类别刷高分。

不同数据集就像不同小区出的考卷:有的考物理常识,有的考社会常识,有的考语言歧义。用多套数据集联合测评,才能全面看出一个模型到底是“全能万事通”还是“只会某一门的偏科生”。

F1macro=1C∑i=1C2PiRiPi+RiF1_{macro} = \frac{1}{C} \sum_{i=1}^{C} \frac{2 P_i R_i}{P_i + R_i}
Macro-F1 是“各科成绩的平均分”:先算每一科的 F1,再平均,防止模型偏科。
  1. 类别数 C评测集中常识类别的总数,比如物理、社会、文化等。
    CC
  2. 单类精确率 P_i 与召回率 R_i精确率看“答对的占所答的比例”,召回率看“答对的占应答的比例”。
    Pi=TPiTPi+FPi,Ri=TPiTPi+FNiP_i = \frac{TP_i}{TP_i+FP_i}, \quad R_i = \frac{TP_i}{TP_i+FN_i}
  3. 调和平均把精确率和召回率调和成一个数,两者都高 F1 才高。
    2PiRiPi+Ri\frac{2P_iR_i}{P_i+R_i}
  4. 所有类别平均将各类别的 F1 求和后除以类别数,得到宏观平均。
    1C∑i=1C(2PiRiPi+Ri)\frac{1}{C}\sum_{i=1}^{C}\left(\frac{2P_iR_i}{P_i+R_i}\right)

4. 评分标准

判卷不能只看绝对分。如果一张考卷全是“五选一”,闭着眼睛瞎蒙也有 20% 的正确率;要是“二选一”,蒙也有 50%。居委会要是把 25% 的蒙题分当成“及格”,那考卷就失去了意义。所以评分标准里必须有一根“蒙题基线”。

这根基线就是随机猜测的正确率期望:选项数为 C 时,瞎蒙的正确率是 1/C。评测报告在给出模型准确率的同时,必须同时给出这个基线,读者才能判断分数是“真本事”还是“运气好”。比如模型在五选一的 CommonsenseQA 上拿到 60%,而随机基线是 20%,说明模型确实学到了东西;但如果只拿到 22%,就基本等于没学会。

除了对照基线,评分还要按难度分层。通常用人类答题的正确率把题目分成容易、中等、困难三档:人类正确率高于 90% 的是容易题,60%–90% 是中等题,低于 60% 是困难题。模型在不同难度档的表现分开报告,能暴露它在“简单常识”和“冷门常识”上的具体短板。

有了“蒙题基线”和“难度分层”,考卷的评判就像体育比赛的“净胜分”:不仅要看赢没赢,还要看赢过对手多少。模型得分必须显著高于随机基线、并向人类水平靠拢,这样的分数才值得写进评测报告。

Baseline=1CBaseline = \frac{1}{C}
随机基线:选项越多,瞎蒙猜对的概率越低,这就是评分的“地板”。
  1. 选项数 C一道单选题提供的候选答案数量,比如四个选项则 C=4。
    CC
  2. 随机猜测概率没有任何信息时,从 C 个选项中随机选一个猜对的期望概率。
    1C\frac{1}{C}

5. 物理常识场景

王大伯的物理常识不是从课本里学的,而是“打碎过几个碗、冻裂过一次水管、看着孩子碰倒过暖瓶”换来的。他知道瓷碗掉在瓷砖上会碎,不是因为背过“陶瓷硬度大于瓷砖”之类的句子,而是因为见过太多次“掉下去—碎掉”的结果。这类关于客观世界的判断,就是物理常识。

在评测里,物理常识主要考察三个子类:时空因果(把热水倒进玻璃杯,杯子可能炸裂)、物体属性(气球比铁球轻,扔出去会飘一会儿)、动作结果(人从台阶上踩空会摔倒而不是飞起来)。这些场景的共同点是:答案由物理规律决定,与人的主观意愿无关,因此题目设计比较客观,评分也稳定。

衡量一个模型在物理常识子集上的表现,可以单独计算“物理题准确率”:只统计物理类题目的答对比例。指示函数用来记录单题对错,最后求平均。

物理常识是宇宙给所有住户出的统一考题——无论哪个国家、哪种文化,水往低处流、玻璃易碎都是不变的。模型在这类题上的得分,反映的是它对客观世界规律的“直觉”是否扎实。

Accphy=1∣Dphy∣∑q∈Dphy1(y^q=yq)Acc_{phy} = \frac{1}{|D_{phy}|} \sum_{q \in D_{phy}} \mathbb{1}(\hat{y}_q = y_q)
物理题准确率:遍历所有物理题,答对记 1、答错记 0,再求平均,得到物理场景的专项得分。
  1. 物理题子集 D_phy从完整评测集中筛出所有物理常识题,组成专项小考卷。
    DphyD_{phy}
  2. 指示函数 1(·)当模型预测 \(\hat{y}_q\) 与真实答案 \(y_q\) 相等时取 1,否则取 0。
    1(y^q=yq)\mathbb{1}(\hat{y}_q = y_q)
  3. 求和与平均把所有题目的对错加总,除以题目数量,得到平均正确率。
    1∣Dphy∣∑q∈Dphy1(y^q=yq)\frac{1}{|D_{phy}|}\sum_{q \in D_{phy}}\mathbb{1}(\hat{y}_q = y_q)

6. 社会常识场景

除了物理世界,人还要生活在人群里。王大伯最深得人心的本事,不是懂水管,而是懂人情:邻居帮他搬了重物,他知道要道谢;朋友丢了宠物很伤心,他知道先安慰再帮忙找;饭桌上别人讲了个冷笑话,他知道礼貌地笑一笑。这种“读人、读关系、读情境”的能力,就是社会常识。

社会常识在评测中主要考察三个子类:人际互动(别人帮助了你,要表达感谢)、情感意图(朋友皱眉叹气,可能是在烦恼,别再追问)、文化规范(参加正式会议要穿正装,不能穿睡衣)。这类题目的特点是答案没有严格的物理定律,而是由社会约定俗成的规则决定,因此标注时容易有分歧。

为了让评分更可靠,评测方通常会请多位标注者给同一道题标答案,然后看标注者之间的一致性。一致性越高,说明题目越“有公论”,评测结果越可信。人类一致性本身就是一条重要的参考线:如果人类标注者之间的一致性都不高,那这道题就不适合放进考卷。

社会常识是“人情世故”的考卷,它没有唯一的宇宙答案,却有“大多数人都认同”的答案。模型在这类题上拿高分,意味着它不只是懂语法,更懂人和人之间那些心照不宣的规则。

Agree=NagreeNtotal×100%Agree = \frac{N_{agree}}{N_{total}} \times 100\%
人类一致性:多名标注者对同一批社会常识题给出相同答案的比例,越高说明题目越有共识。
  1. 一致题数 N_agree多位标注者对题目给出相同答案的题数。
    NagreeN_{agree}
  2. 总题数 N_total参与一致性检验的题目总数。
    NtotalN_{total}
  3. 一致性比例一致题数除以总题数并换算成百分比,得到一致性分数。
    NagreeNtotal×100%\frac{N_{agree}}{N_{total}} \times 100\%

7. 表现差异分析

同样一张段位考卷,不同球员的分数差很多:住了三十年的老住户几乎满分,刚搬来的年轻人可能刚及格;同一批住户,用中文答题和用英文答题,水平也不一样。模型之间也存在这种“表现差异”,分析这些差异是评测的重要环节。

第一个明显规律是模型规模效应:参数量越大的模型,在常识推理基准上通常得分越高。大模型见过更多样的文本,能记住更多日常生活场景,调用知识时也更稳。第二个规律是语言差异:模型在英文常识数据集上往往比中文数据集表现好,因为英文训练语料更丰富,中文日常场景的表达和文化背景还没被充分覆盖。第三个规律是知识盲区:某些罕见场景——比如“沙漠里手机没信号该往高处走还是低处走”——几乎所有模型都答不好,说明这些场景在训练语料里出现太少,成了集体的盲区。

分析差异时,最直接的方法是计算两个群体的得分差,例如大模型平均准确率减去小模型平均准确率,差值越大说明规模带来的增益越明显。

发现差异不是目的,找到原因才是。差异报告就像成绩单上的“失分分析”:哪类题丢分、哪个语言环境更弱、哪个场景完全不会——知道了这些,下一步的改进才有方向。

Δ=Acclarge−Accsmall\Delta = Acc_{large} - Acc_{small}
得分差值:用大模型准确率减去小模型准确率,量化“规模效应”带来的提升。
  1. 大模型准确率 Acc_large参数量较大的模型在评测集上的整体准确率。
    AcclargeAcc_{large}
  2. 小模型准确率 Acc_small参数量较小的模型在同一评测集上的整体准确率。
    AccsmallAcc_{small}
  3. 差值两者相减,正数表示大模型更优,数值越大差距越明显。
    Acclarge−AccsmallAcc_{large} - Acc_{small}

8. 提升路径方法

新住户想变成王大伯那样的万事通,光着急没用,得靠方法:多在小区里泡着、多看多听(数据);遇到不懂的主动开口请教(提示);床头放一本《生活小百科》随时翻(知识)。大模型提升常识推理,走的正是这三条路。

第一条路是数据增强:在训练语料中补充更多样化的日常场景描述,尤其是模型已有的知识盲区,比如罕见天气、小众职业、地方习俗。第二条路是提示工程:给模型设计更合理的提示词,让它先“复述场景再作答”,比如“请先描述这个场景里发生了什么,再选择答案”,这能激活模型已有的常识知识。第三条路是知识增强:把常识知识图谱(如 ConceptNet)的信息在训练或推理时注入模型,相当于给模型一本随时可查的“生活手册”。

如何衡量改进有效?不能只看绝对分数涨了多少,因为已经接近满分的模型很难再涨。更科学的指标是“相对提升率”:用实际提升量除以还剩下的提升空间,反映改进的难度与效率。

从“新住户”到“万事通”没有捷径,但数据、提示、知识这三条路,就像社区里的三条小路:你不需要每条都走一遍,但知道路在哪里、怎么走最划算,才是评测工程师真正要修炼的本事。

Gain=Accnew−Accold1−Accold×100%Gain = \frac{Acc_{new} - Acc_{old}}{1 - Acc_{old}} \times 100\%
相对提升率:看“涨了多少分”占“还有多少分可涨”的比例,分数越高说明改进越有效。
  1. 新准确率 Acc_new采取改进措施后模型在评测集上的准确率。
    AccnewAcc_{new}
  2. 旧准确率 Acc_old改进前模型的准确率,作为比较基准。
    AccoldAcc_{old}
  3. 可提升空间 1 - Acc_old距离满分还差多少,代表理论上的最大提升余地。
    1−Accold1 - Acc_{old}
  4. 相对提升率实际提升量除以可提升空间,再换算成百分比,得到改进效率。
    Accnew−Accold1−Accold×100%\frac{Acc_{new} - Acc_{old}}{1 - Acc_{old}} \times 100\%

AI 应用场景

智能客服的常识质检

阶段:模型上线前评测 / 能力维度评估

解决的问题:传统客服机器人靠关键词匹配,遇到“手机掉水里了该怎么办”这类需要生活常识的问题经常答非所问。用常识推理评测集对客服模型进行专项打分,能定位它在物理常识(如液体泼溅、设备断电)和社会常识(如安抚用户情绪)上的短板,再针对性补充训练数据。

具体案例:某手机厂商用一份包含物理常识与社会常识子集的评测题,对客服大模型进行盲测,发现“液体泼溅处理”类目准确率仅 41%,明显低于整体水平。团队定位到训练语料缺少维修场景的问答对,补充了 2000 条相关数据后,该类目准确率提升到 76%,用户满意度同步上升。

内容平台的社会常识安全护栏

阶段:模型对齐与安全评测

解决的问题:生成式模型在开放对话中可能输出“反常识、反人情”的回答,比如面对“朋友很难过我该不该嘲笑他”这样的提问给出负面回应。通过社会常识基准(如 SIQA 风格)自动评测模型的“情商”得分,可以在上线前拦截不合格的模型版本。

具体案例:某内容社区在审核流程中增加了一道“社会常识评分”关卡:每次模型更新后,自动运行 500 道社会互动场景题,计算准确率与人类一致性。得分低于阈值时,模型版本被禁止上线,需重新进行安全微调后再评测,有效降低了社区投诉率。

Python 演示

python78 行
# -*- coding: utf-8 -*-"""常识推理自动评测脚本 用一小批日常常识选择题,按类别统计模型的回答准确率,并与随机基线对照,输出简单的评测报告。"""import json QUESTIONS = [    {"id": 1, "category": "物理", "question": "玻璃杯掉在瓷砖地上会怎样?",     "choices": ["完好无损", "碎成几片", "变成气球", "自动浮起"], "answer": 1},    {"id": 2, "category": "物理", "question": "冬天水管没有保温,最可能发生什么?",     "choices": ["水管结冰", "水管冒火", "水管变软", "水管长叶"], "answer": 0},    {"id": 3, "category": "社会", "question": "邻居帮你搬了重物,你应该怎么做?",     "choices": ["假装没看见", "说声谢谢", "立刻搬家", "买把新锁"], "answer": 1},    {"id": 4, "category": "社会", "question": "朋友丢了宠物很难过,你该怎么做?",     "choices": ["讲个笑话", "嘲笑他", "安慰并帮忙找", "扭头就走"], "answer": 2},    {"id": 5, "category": "因果", "question": "连续熬夜且喝大量咖啡,最可能的结果是?",     "choices": ["更加清醒", "心跳加快犯困", "再也不困", "长出翅膀"], "answer": 1},    {"id": 6, "category": "文化", "question": "参加正式会议时,最合适的着装是?",     "choices": ["穿睡衣", "穿正装", "穿泳衣", "穿工装"], "answer": 1},]  def random_baseline(question):    """随机基线:固定返回 0 号选项"""    return 0  def mock_model(question):    """模拟一个只会背答案的模型:仅答对前两题"""    return question["answer"] if question["id"] in (1, 2) else (question["answer"] + 1) % len(question["choices"])  class CommonSenseEvaluator:    def __init__(self, questions):        self._questions = questions        self._stats = {}     def evaluate(self, predict_fn):        results = []        for q in self._questions:            pred = predict_fn(q)            results.append((pred, q["answer"]))        return results     def accuracy(self, results):        if not results:            return 0.0        correct = sum(1 for pred, label in results if pred == label)        return correct / len(results)     def report(self, results):        cats = sorted(set(q["category"] for q in self._questions))        for cat in cats:            cat_results = [                (pred, label)                for (pred, label), q in zip(results, self._questions)                if q["category"] == cat            ]            correct = sum(1 for pred, label in cat_results if pred == label)            self._stats[cat] = correct / max(1, len(cat_results))        print("=== 常识推理评测报告 ===")        for cat in cats:            print(cat + "类准确率: {:.2%}".format(self._stats[cat]))        overall = self.accuracy(results)        print("总体准确率: {:.2%}".format(overall))        return {"category_acc": dict(self._stats), "overall_acc": overall}  if __name__ == "__main__":    evaluator = CommonSenseEvaluator(QUESTIONS)    print("--- 候选模型 ---")    model_results = evaluator.evaluate(mock_model)    evaluator.report(model_results)    print("--- 随机基线 ---")    base_results = evaluator.evaluate(random_baseline)    evaluator.report(base_results)
目的:用一份迷你常识题库,自动计算“候选模型”和“随机基线”在物理、社会、文化等类别上的准确率,演示常识推理评测的完整流程。
  1. QUESTIONS = [...]手工构造的迷你常识题库,每道题包含类别、问题、选项和标准答案,相当于一张“微型社区生活考卷”
  2. def random_baseline(question): return 0随机基线,固定选 0 号选项,用来模拟“瞎蒙”的下限水平
  3. def mock_model(question)模拟一个只会死记前两题的弱模型,用于和随机基线形成对比
  4. class CommonSenseEvaluator:评测器类,封装了逐题作答、准确率计算和报告输出三个核心功能
  5. def evaluate(self, predict_fn)让模型对每道题作答,把预测结果和正确答案打包成配对列表
  6. correct / max(1, len(cat_results))单类准确率:该类中答对数除以题目数,用 max(1, ……) 防止除零
  7. self._stats[cat] = ...按类别记录得分,方便最终按类别输出报告
  8. if __name__ == "__main__":程序入口:先评测候选模型,再评测随机基线,最后打印对比报告

常见误区

误区“模型能背出'水的沸点是 100℃',常识推理肯定也满分。常识推理不就是考谁记得多吗?”

正解常识推理考的是“运用”而不是“背诵”。知道沸点是记忆,而知道“开水洒到手上要立刻用凉水冲”才是常识推理。评测题会刻意避开能直接背出的陈述句,改用新编的日常场景考察模型的迁移能力,所以“记得多”不等于“会推理”。

为何常见:常识和知识在中文里界限模糊,大家习惯把“知道得多”等同于“有常识”,忽略了“会用”这个关键动作。

误区“模型在常识基准上拿了 90%,说明它已经像人一样懂生活了。”

正解高准确率可能来自数据泄漏或题目模式记忆。如果训练语料里混入了测试题原文,模型等于提前看到了答案。所以正规评测要防止泄漏,并且必须同时报告随机基线和人类水平,综合判断分数背后的真实能力。

为何常见:人们习惯把分数直接等同于能力,忽略了数据污染、题目重合这些“看不见的干扰项”。

误区“常识题不就是查记忆吗?模型词表大一点就能全答对,谈不上什么推理。”

正解许多常识题需要多步推断。比如“玻璃杯掉在瓷砖地上会碎”,要串联起“瓷砖比玻璃硬—掉落产生冲击力—玻璃易碎”这一串因果链条。模型如果只靠记忆,遇到没见过的场景组合就会失效;真正的常识推理必须能应对新情境。

为何常见:很多常识题对成年人来说“显然成立”,让人误以为不需要推理,其实这种“显然”恰恰是多年经验压缩后的推理结果。

误区“选择题嘛,二选一瞎蒙也有一半正确率,所以所有选择题的随机基线都是 50%。”

正解随机基线取决于选项数 C,公式是 1/C。五选一就是 20%,四选一才是 25%,只有二选一才是 50%。Winogrande 是二选一所以基线 50%,CommonsenseQA 是五选一基线 20%。写评测报告时必须注明选项数,否则基线会误导读者。

为何常见:很多人只做过“对/错”或二选一的题,把“一半概率”的经验错误推广到了所有选择题。

误区“常识不够,数据来凑。多喂几亿条语料,模型的常识分肯定蹭蹭涨。”

正解盲目增加语料可能加剧数据偏置、引入大量重复样本,反而让模型更会“背题”而不是“推理”。有效的做法是针对性补充多样化日常场景数据,再配合提示工程和知识增强,让模型学会“调用”知识而不是“死记”知识。

为何常见:“数据越多模型越强”是大模型时代的普遍直觉,但常识推理更依赖数据质量与场景覆盖度,单纯的规模堆砌收益有限。

面试题

Q1. 常识推理主要评测大模型的哪种能力?

单选题 · easy

  • A.运用日常知识做推断← 正确答案
  • B.执行复杂数学运算
  • C.生成高质量代码
  • D.识别图像中的物体

答案:A。常识推理考察的是模型把日常世界知识“调用”出来、对新场景做出合理判断的能力,就像小区万事通面对生活琐事随口给出靠谱答案。数学运算、代码生成、图像识别分别属于其他能力维度,不是常识推理的核心考察对象。

Q2. 下列哪个数据集专门用于常识推理评测?

单选题 · easy

  • A.Winogrande 数据集← 正确答案
  • B.ImageNet 图像集
  • C.WMT14 翻译集
  • D.LibriSpeech 语音集

答案:A。Winogrande 是专门评测常识推理的二选一代词消歧数据集。ImageNet 用于图像分类,WMT14 用于机器翻译,LibriSpeech 用于语音识别,它们分别属于视觉、翻译和语音领域,与常识推理无关。

Q3. 五选一常识题,随机瞎蒙的期望正确率是?

单选题 · mid

  • A.百分之五十左右
  • B.百分之二十左右← 正确答案
  • C.百分之八十左右
  • D.百分之一百左右

答案:B。随机基线等于 1/C,其中 C 是选项数。五选一时 C=5,所以瞎蒙的期望正确率是 20%。50% 是二选一的基线,80% 和 100% 明显超过随机水平,不属于“瞎蒙”的期望值。

Q4. “玻璃杯掉在瓷砖地上会碎”主要考察哪类常识?

单选题 · mid

  • A.物体属性与因果← 正确答案
  • B.人际交往规则
  • C.文化风俗传统
  • D.语法用词规范

答案:A。这道题需要推断“玻璃易碎、瓷砖坚硬、掉落产生冲击力”这一连串物理属性和因果关系,属于物理常识中的“物体属性与因果”。人际交往、文化风俗属于社会常识,语法规范属于语言能力,均不符合题意。

Q5. “朋友难过时应主动安慰”最能体现哪类常识?

单选题 · mid

  • A.情感与社会互动← 正确答案
  • B.物体运动规律
  • C.时间先后顺序
  • D.数字计算能力

答案:A。理解朋友的难过情绪并做出“安慰”这个社交动作,需要同时调用情感识别和社会互动规则,属于社会常识中的“情感与社会互动”。物体运动规律是物理常识,时间顺序和数字计算都与本题的社交情境无关。

Q6. 模型准确率远高于随机基线,但不能直接说明?

单选题 · hard

  • A.模型已经学到规律
  • B.模型没有随机乱猜
  • C.模型具备真实常识← 正确答案
  • D.模型能够读懂题目

答案:C。高于随机基线说明模型在数据集上发现了某种规律,没有瞎蒙,也能处理题目。但这可能是“背题”、模式记忆或数据泄漏带来的虚假高分,不能直接证明模型具备能泛化的真实常识,需要结合防泄漏设计和人类对照进一步验证。

Q7. 面对常识推理评测,最稳健的提升策略是?

单选题 · hard

  • A.提升训练数据多样性← 正确答案
  • B.无限扩大模型参数量
  • C.只增加训练轮数
  • D.更换更大的词表

答案:A。常识推理依赖场景覆盖度,补充多样化日常场景数据是最稳健的路径,能直接填补知识盲区。无限扩参和增加训练轮数成本高且收益递减,更换词表对常识推理几乎没有直接影响。

Q8. 常识推理评测框架通常包含哪些环节?

多选题 · mid

  • A.构建覆盖生活场景的题目← 正确答案
  • B.制定清晰的评分标准← 正确答案
  • C.用人工逐一审核答案
  • D.自动化计算模型得分← 正确答案

答案:ABD。评测框架的核心三环节是出题(构建场景题目)、定标准(评分标准)和自动判分(脚本计算准确率)。人工逐一审核答案成本过高,不是大规模评测的常规环节;框架设计的初衷正是用自动化评分替代人工判卷。

Q9. 关于常识推理评分标准,下列说法正确的是?

多选题 · hard

  • A.应设置随机猜测基线← 正确答案
  • B.准确率是唯一指标
  • C.可按难度分层报告← 正确答案
  • D.需与人类水平对照← 正确答案

答案:ACD。严谨的评分标准必须包含随机基线(防止把蒙题分当本事)、难度分层(暴露具体短板)和人类对照(判断分数的实际意义)。准确率虽然是核心指标,但不是唯一指标,单独使用容易被数据泄漏或题目偏置误导。

Q10. 提升大模型常识推理能力的常见方法包括哪些?

多选题 · extreme

  • A.补充多样日常场景数据← 正确答案
  • B.设计更合理的提示词← 正确答案
  • C.引入知识图谱增强← 正确答案
  • D.完全禁用外部知识

答案:ABC。数据增强(补充日常场景)、提示工程(引导模型先复述再作答)、知识增强(注入常识知识图谱)是三条主流路径,分别对应“多经历、会思考、有手册”。完全禁用外部知识属于自我设限,不会提升常识推理能力。