想象你走进一场“全能知识竞赛”:监考老师发下一本横跨 57 个学科的厚卷子,从历史、法律、医学,到物理、化学、计算机,每一道都是四选一的选择题。就在卷首,组委会贴心附上了五道“样例题”——题目、选项、标准答案一应俱全,但不计入总分。你扫了两眼,立刻明白了答题卡的涂法:哦,原来是要圈一个 A/B/C/D 啊。至于后面那几百道真题目能做对多少,就得看你脑子里平时积累了多少货了。 这正是 MMLU(Massive Multitask Language Understanding,大规模多任务语言理解)基准的玩法:它不给大模型任何“复习范围”,只丢几个带答案的样例演示作答格式,然后把 57 个学科的真题目摆在模型面前,看它凭自己的知识储备能答对多少。这种“给几个例子就上考场”的评测方式,就叫 few-shot 评测。样例题到底教会了模型什么?它又真正测出了模型什么?本文用这场竞赛当线索,把 MMLU 的 few-shot 机制从头拆到尾。

岗位关联

理解 MMLU 的 few-shot 评测机制,是读懂大模型能力报告、亲手设计模型对比实验的第一步,也是评测工程师与算法工程师日常对话的共同语言。

目录
  1. 可视化演示
  2. MMLU基准概述
  3. few-shot设定基础
  4. 示例引导机制
  5. 知识储备评估
  6. 上下文学习与泛化
  7. 评测局限与解读
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示示例逐条注入提示构造提示的过程、0/1/5/k-shot准确率随示例数量提升的对比、以及温度缩放校准预测概率的可靠性曲线。

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

示例注入提示构造 从开发集选取标注示例 示例按模板与测试问题组合 57科/14k题 MMLU采用5-shot标准设置

MMLU基准概述

组委会把 57 个学科的题目汇编成一本厚重的大考卷,这就是 MMLU 本身。2021 年,加州大学伯克利分校等机构的研究者发布了这份“全科竞赛试卷”:从幼儿园数学到专业法学,从天文地理到生化环材,共覆盖 57 个学科、约 1.4 万道四选一题目。小明推开考场大门的那一刻,这场考察“全科知识面”的比赛就正式开始了。

这份试卷最精妙的设计在于“封闭式”:每道题只有一个题干加四个选项,模型不用写小作文,只要给出一个字母。把开放式的文本生成变成可自动判卷的选择题,分数自然稳定、可复现——这也是 MMLU 能成为各大模型发布会“成绩单”的原因。想要量化一张卷子的作答水平,最直观的指标就是准确率:答对的题数占总题数的比例。

竞赛最终以“答对比例”发榜,MMLU 也以 Acc 一锤定音——57 门课一张卷,分数说话。理解了这个分母 N 和分子“答对数”,后面所有 few-shot 技巧都只是在想办法提高这个分子。

Acc=1N∑i=1N1(y^i=yi)\displaystyle \text{Acc} = \frac{1}{N}\sum_{i=1}^{N}\mathbb{1}(\hat{y}_i = y_i)
准确率 = 答对题数 ÷ 总题数。N 是题目总数,$\hat{y}_i$ 是模型对第 i 题给出的答案,$y_i$ 是标准答案,指示函数 $\mathbb{1}$ 在两者相等时记 1、否则记 0。
  1. 指示函数$\mathbb{1}(\hat{y}_i = y_i)$ 像一个盖章员——模型答案与标准答案一致就盖“对”,不一致就盖“错”。
    1(y^i=yi)\displaystyle \mathbb{1}(\hat{y}_i = y_i)
  2. 逐题累加把每道题盖到的“对”加总,得到整个卷子的答对题数。
    ∑i=1N1(y^i=yi)\displaystyle \sum_{i=1}^{N}\mathbb{1}(\hat{y}_i = y_i)
  3. 取平均除以题目总数 N,把整数换成 0 到 1 之间的比例,方便不同模型、不同学科横向比较。
    1N∑i=1N1(y^i=yi)\displaystyle \frac{1}{N}\sum_{i=1}^{N}\mathbb{1}(\hat{y}_i = y_i)

few-shot设定基础

组委会在卷首附了五道带答案的样例题,这就是 few-shot 里的“shots“——示例的个数。小明翻开卷子,看到的不是复习提纲,而是几道”题目 + 选项 + 标准答案“的示范:哦,原来不用写过程,圈个字母就行。”5-shot”就意味着给他 5 条这样的示范;一条不给、直接做题,则叫 0-shot。

在技术层面,“k-shot“指的是在提示(prompt)里塞进 k 个由”题干、选项、正确答案“组成的三元组示例。MMLU 报告成绩时最常用的是 5-shot:5 条样例足以让模型看清答题协议,又不至于撑爆上下文窗口。0-shot 则作为对照基线,用来考察模型在没有任何格式提示时能不能自己”领会题意”。一条典型的 few-shot 提示长这样:

注意最后的“答案:”后面空着——这就是留给模型填空的“答题卡横线”。整段提示被喂进模型后,它在概率空间里慢慢“看出”规律:前面都是“题目→选项→答案”,所以接下来该输出一个字母。这个过程的数学本质,是求条件概率:

对小明来说,样例题不是“冲刺班资料”,而是“答题卡使用说明”。5-shot 评测的关键就在于:说明看得懂、格式能照抄,至于答案对不对,那是接下来要考察的知识储备问题。

P(y∣x; e1,e2,…,ek)\displaystyle P(y \mid x;\, e_1, e_2, \ldots, e_k)
给定目标题 x,并参考 k 条示例 $e_1$ 到 $e_k$ 后,模型认为答案 y 的可能性。示例没有改变模型参数,只是改变了它作答时的“上下文背景”。
  1. 目标题条件y 是待填的答案,x 是目标题的题干与选项,概率从 x 开始推算。
    P(y∣x)\displaystyle P(y \mid x)
  2. 示例注入在竖线右侧追加 $e_1, e_2, \ldots, e_k$,表示模型作答时“眼前摆着 k 条样例题”。
    P(y∣x; e1,e2,…,ek)\displaystyle P(y \mid x;\, e_1, e_2, \ldots, e_k)
  3. 分号的含义分号强调这些示例只是提示上下文,不是需要学习的统计权重——它们不在参数更新范围内。
text11 行
题目:牛顿第一定律又被称为?选项:A.惯性定律 B.动量守恒 C.能量守恒 D.万有引力答案:A 题目:光在真空中的速度约为每秒多少公里?选项:A.30 B.30万 C.3万 D.300万答案:B 题目:DNA 的主要功能是?选项:A.储存遗传信息 B.运输氧气 C.催化反应 D.传递神经信号答案:

示例引导机制

小明看完样例题后的第一反应不是“哇我又学到了新知识”,而是“原来要圈字母”。示例引导机制的核心,就是让模型从样例中识别任务格式,并学会“把答案映射成 A/B/C/D 中的一个”。没有这些样例,模型可能洋洋洒洒写一段话,或者把四个选项原文照抄,判卷程序根本没法给分。

具体怎么从四个选项中挑一个?模型把 A、B、C、D 四个候选字母分别接到提示末尾的“答案:”后面,计算“接下来生成这个字母”的概率,谁的概率大就选谁。也就是对每个候选做一次打分,而不是让模型自由生成文本再去解析。这一步只需一次前向传播,没有任何训练过程——这正是“上下文学习”(In-Context Learning)的雏形。

就像小明不会因为看了答题说明就多掌握一条物理定律,示例引导也“只教格式、不教知识”。它保证模型答得“像模像样”,但答得对不对,拼的是下面要说的真本事。

y^=arg⁡max⁡c∈{A,B,C,D}log⁡P(答案:c∣prompt,e1,…,ek)\displaystyle \hat{y} = \arg\max_{c \in \{A,B,C,D\}} \log P(\text{答案:}c \mid \text{prompt}, e_1, \ldots, e_k)
模型把“答案:”后面接 A、接 B、接 C、接 D 这四种写法的概率分别算出来,取对数后比大小,选最大者作为最终答案。加 log 是为了防止概率连乘时数值过小。
  1. 候选集合$c \in \{A,B,C,D\}$ 限定比较范围——只有四个字母参赛,杜绝“自由发挥”。
    c∈{A,B,C,D}\displaystyle c \in \{A,B,C,D\}
  2. 条件概率打分在提示与 k 条示例条件下,计算模型生成“答案:c”的概率,取对数方便比较。
    log⁡P(答案:c∣prompt,e1,…,ek)\displaystyle \log P(\text{答案:}c \mid \text{prompt}, e_1, \ldots, e_k)
  3. 求最大值$\arg\max$ 表示“找出让这个值最大的那个 c”,即所有候选中 log 概率最高的字母。
    y^=arg⁡max⁡clog⁡P(答案:c∣prompt,e1,…,ek)\displaystyle \hat{y} = \arg\max_{c} \log P(\text{答案:}c \mid \text{prompt}, e_1, \ldots, e_k)
  4. 与标准答案比对得到的 $\hat{y}$ 与人工标注的 $y_i$ 比对,一致则 $\mathbb{1}(·)=1$,计入准确率分子。

知识储备评估

格式看懂了,接下来拼“存量”。小明这十几年的百科积累,此刻全部派上用场:历史题想起朝代更迭,化学题记起元素性质,医学题回忆起人体结构。MMLU 的题目大多正是这类事实性知识——某定律的内容、某元素的性质、某个国家的首都,靠的是“有没有背过”,而不是现场推理。

模型也一样。它在预训练阶段从海量语料里“记”下了无数事实,评测时凭记忆作答:不开卷、不查资料、不联网。因此 MMLU 的 few-shot 成绩,本质上是模型知识储备的一次抽样体检。为了让“体检报告”有参照物,研究者引入了人类专家基线:让各领域的专家做对应学科的题目,平均正确率约 89.8%。把模型成绩与专家成绩摆在一起,差距一目了然。

竞赛发榜时,主办方总爱把冠军成绩与历史纪录对比——MMLU 报告把模型分数和人类专家分数并排印在表格里,也是在回答同一个问题:这台机器,知识量到底相当于一个普通人,还是半个专家?

Gap=Accexpert−Accmodel\displaystyle \text{Gap} = \text{Acc}_{\text{expert}} - \text{Acc}_{\text{model}}
差距 = 专家正确率 − 模型正确率。Gap 越接近 0,说明模型的知识储备越逼近人类专家。
  1. 专家基线$\text{Acc}_{\text{expert}}$ 是领域专家作答同类题目的正确率,数值约 0.898,是“满分参照系”。
    Accexpert≈0.898\displaystyle \text{Acc}_{\text{expert}} \approx 0.898
  2. 模型成绩$\text{Acc}_{\text{model}}$ 是模型在同样题集、同样 5-shot 提示下的正确率,来自前面的 Acc 公式。
    Accmodel\displaystyle \text{Acc}_{\text{model}}
  3. 取差值相减得到“知识鸿沟”;差值越小,模型越接近专家水平。
    Gap=Accexpert−Accmodel\displaystyle \text{Gap} = \text{Acc}_{\text{expert}} - \text{Acc}_{\text{model}}

上下文学习与泛化

few-shot 最迷人的地方,是“临时抱佛脚居然有效”。小明从没为这场竞赛做过专项复习,但五道样例题像开关一样激活了他已有的解题套路:原来要选字母,原来每个领域都是这么考。模型也展现出类似能力——仅凭提示中的几条示例,不更新任何参数,就能切换到“选择题答题模式”,这就是上下文学习(In-Context Learning)。

更妙的是,这套从样例中学到的答题协议可以跨学科迁移:物理学科的样例题,完全不影响模型去答历史题。五条样例“教”的是一种通用格式,而不是某道题的答案本身。因此,5-shot 相对 0-shot 的提升幅度,成了衡量模型“临场适应力”的重要指标:提升越大,说明模型越擅长从上下文中捕捉任务规律。

小明走出考场时可能会感慨:那五道样例题本身没让我多会一道题,却让我把会的全写在了答题卡的正确位置。MMLU 的 few-shot 评测,测的正是这种“会”与“写得对”之间的转化能力。

Δshot=Acc5-shot−Acc0-shot\displaystyle \Delta_{\text{shot}} = \text{Acc}_{5\text{-shot}} - \text{Acc}_{0\text{-shot}}
差值 = 5-shot 准确率 − 0-shot 准确率。$\Delta$ 越大,说明示例引导带来的增益越明显,模型的上下文学习与泛化能力越强。
  1. 基线水平$\text{Acc}_{0\text{-shot}}$ 表示不给任何样例、直接作答的准确率,反映模型“裸考”水平。
    Acc0-shot\displaystyle \text{Acc}_{0\text{-shot}}
  2. 引导水平$\text{Acc}_{5\text{-shot}}$ 表示给 5 条样例后再作答的准确率,反映“看过答题说明”后的水平。
    Acc5-shot\displaystyle \text{Acc}_{5\text{-shot}}
  3. 差值含义$\Delta_{\text{shot}}$ 越大,说明模型越善于利用上下文示例,把“看懂格式”转化为“答对题目”。
    Δshot=Acc5-shot−Acc0-shot\displaystyle \Delta_{\text{shot}} = \text{Acc}_{5\text{-shot}} - \text{Acc}_{0\text{-shot}}

评测局限与解读

再严谨的竞赛也有软肋:泄题、押题、运气成分。MMLU 的 few-shot 评测同样有三大隐患。第一,样例敏感:换掉五条样例题中的一两条,或调整它们的顺序,分数可能波动好几个点;第二,数据污染:如果预训练语料里混入了测试集原题,等于提前把卷子答案泄露给模型;第三,随机猜测下限:四选一的选择题,闭着眼睛蒙也有 25% 的正确率保底。

因此,解读分数时必须守几条规矩。横向对比要“同模板、同样例数、同评分脚本”,把提示模板和评测代码一起固定并公开;纵向追踪版本要控制变量,任何提示改动都会污染对比结果;看绝对数值要心怀敬畏——从 24.9% 涨到 26%,可能还不及随机误差;只有跨越数个百分点的差异,才值得写进发布会的 PPT。

竞赛组委会当然希望考试公平公正,但测评人必须时刻记得:任何分数都是“特定条件下”的分数。读懂 MMLU 的 few-shot 报告,既要看数字,更要看数字背后的条件与陷阱。

Accrand=1∣C∣=14=0.25\displaystyle \text{Acc}_{\text{rand}} = \frac{1}{|\mathcal{C}|} = \frac{1}{4} = 0.25
随机猜测的准确率 = 1 ÷ 候选答案数。四选一就是 25%,这是评测的“地板”,任何低于它的分数都说明模型连格式都没学会。
  1. 候选集合大小$|\mathcal{C}|$ 表示候选答案个数,四选一所以为 4。
    ∣C∣=4\displaystyle |\mathcal{C}| = 4
  2. 均匀随机随机猜测时每个答案等概率被选中,正确率即 1 除以候选数。
    1∣C∣\displaystyle \frac{1}{|\mathcal{C}|}
  3. 数值结果0.25 就是评测的“地板值”——模型必须显著高于它,才谈得上“学会了作答”。
    Accrand=0.25\displaystyle \text{Acc}_{\text{rand}} = 0.25

AI 应用场景

大模型版本的回归体检

阶段:模型评估与发布

解决的问题:新版本发布前,靠人工抽查案例既慢又不全面,还可能漏掉某个学科的能力回退。用固定 5-shot 模板在 MMLU 上跑分,一次覆盖 57 个学科,把准确率变化变成可追踪的数字。

具体案例:某大模型团队的评测工程师维护一个“提示模板仓库”,每次发版用同一套 5-shot 提示跑 MMLU;若总分较上一版下降超过 2 个百分点,触发回滚评审,并对照学科细项定位是数学能力衰退还是知识库更新引入的偏移。

提示词工程中的样例调试

阶段:推理与提示优化

解决的问题:业务应用中模型“答非所问”“格式混乱”是高频痛点。借鉴 MMLU few-shot 的思路,在业务提示里放入几条高质量问答样例,引导模型稳定输出指定格式,省去反复调参。

具体案例:开发智能客服时,工程师在系统提示中加入 5 条“标准问答样例”,模型按样例格式返回 JSON 结构化结果,解析成功率从 62% 提升到 91%;这与 MMLU 用 5 条选择题样例矫正答题格式,是同一个套路。

开源模型选型对比

阶段:模型选型与基准测试

解决的问题:团队选底座模型时,厂商宣传的数据口径不一、提示模板各异,难以直接比较。用统一的 MMLU 5-shot 标准流程给候选模型跑分,结合随机基线 25% 与专家基线 89.8% 判断真实水位。

具体案例:算法负责人在选型评审中,用同一套 5-shot 模板评测 Llama、Qwen、Mistral 三个候选,并额外查看金融、法律等学科的分项成绩,最终选定在业务相关学科上表现最稳的模型作为底座。

Python 演示

python69 行
"""MMLU 5-shot 评测最小示例:构造带样例的提示并统计准确率。"""import random  EXAMPLE_TEMPLATE = "题目:{question}\n选项:{options}\n答案:{answer}"TARGET_TEMPLATE = "题目:{question}\n选项:{options}\n答案:"  def build_prompt(target, examples):    """把 k 条样例题与目标题拼成模型输入,模拟 MMLU 的 few-shot 提示。"""    parts = ["请按样例格式作答,从 A/B/C/D 中选一个字母。"]    for ex in examples:        parts.append(EXAMPLE_TEMPLATE.format(**ex))    parts.append(TARGET_TEMPLATE.format(**target))    return "\n\n".join(parts)  class DummyModel:    """离线伪模型:只会用题干关键词猜答案,用于验证评测流程而非模型质量。"""     def __init__(self):        self.gc_count = 0  # 生成调用次数     def complete(self, prompt):        self.gc_count += 1        rules = [("牛顿", "A"), ("光速", "B"), ("细胞", "C"), ("欧姆", "D")]        for keyword, letter in rules:            if keyword in prompt:                return letter        return random.choice("ABCD")  def top1_match(pred, answer):    """判定模型预测是否正确:要求输出以标准答案字母开头。"""    return pred.strip().upper().startswith(answer)  def evaluate(test_set, examples, model):    """跑完整个测试集,返回 0 到 1 的准确率。"""    total = len(test_set)    hits = 0    for q in test_set:        prompt = build_prompt(q, examples)        pred = model.complete(prompt)        hits += int(top1_match(pred, q["answer"]))    return hits / total  if __name__ == "__main__":    questions = [        {"question": "牛顿第一定律又被称为?", "options": "A.惯性定律 B.动量守恒 C.能量守恒 D.作用反作用", "answer": "A"},        {"question": "光在真空中的速度约为每秒?", "options": "A.30公里 B.30万公里 C.300万公里 D.3万公里", "answer": "B"},        {"question": "细胞的能量工厂主要是什么?", "options": "A.细胞核 B.线粒体 C.核糖体 D.高尔基体", "answer": "B"},        {"question": "欧姆定律中电压的符号是?", "options": "A.I B.P C.U D.R", "answer": "C"},        {"question": "牛顿第二定律的表达式是?", "options": "A.F=ma B.E=mc2 C.V=IR D.P=UI", "answer": "A"},        {"question": "牛顿第三定律也被称为?", "options": "A.作用力与反作用力 B.动量守恒 C.角动量守恒 D.能量守恒", "answer": "A"},        {"question": "细胞膜的主要成分是?", "options": "A.纤维素 B.脂质 C.无机盐 D.淀粉", "answer": "B"},        {"question": "欧姆定律电压符号是?", "options": "A.I B.P C.U D.R", "answer": "C"},        {"question": "光速约为每秒多少万公里?", "options": "A.3 B.30 C.300 D.3000", "answer": "B"},        {"question": "质数中唯一的偶数是?", "options": "A.0 B.2 C.4 D.6", "answer": "B"},    ]    # 5-shot:前 5 题当作带答案的样例,后 5 题当作正式考题    examples = questions[:5]    test_set = questions[5:]     model = DummyModel()    acc = evaluate(test_set, examples, model)    print(f"MMLU 5-shot 模拟准确率: {acc * 100:.1f}%")    print(f"模型被调用次数: {model.gc_count}")
目的:用最简代码复原 MMLU few-shot 评测主流程——样例题拼接、模型作答、答案比对、准确率统计,让你看清“评测”本身长什么样。
  1. parts.append(EXAMPLE_TEMPLATE.format(**ex))把每条样例按“题目/选项/答案”固定模板格式化后追加进提示。
  2. parts.append(TARGET_TEMPLATE.format(**target))目标题以“答案:”结尾,把填空位置留给模型补全。
  3. self.gc_count += 1记录模型调用次数,真实场景中用于核算 API 成本。
  4. rules = [("牛顿", "A"), ("光速", "B"), ...]模拟模型从预训练中“背”下的零散知识,对应正文的“知识储备”。
  5. if keyword in prompt: return letter伪模型根据题干关键词猜答案;真实模型则是计算四个候选字母的条件概率。
  6. return pred.strip().upper().startswith(answer)判定模型输出以标准答案字母开头即算对,对应正文的“答案匹配”。
  7. hits += int(top1_match(pred, q["answer"]))把答对题数累加进分子,最后除以总题数得到 Acc。

常见误区

误区“5-shot 评测不就是给模型 5 个训练样本,让它先学一下再考试吗?那和微调有什么区别?”

正解完全不是一回事。few-shot 的样例只出现在提示文本里,模型参数一步也不更新,一次前向传播直接出答案。它更像是考前看“答题卡使用说明”,而微调是上“冲刺班”——前者不改变大脑,后者改变大脑本身。判断标准很简单:数一下有没有梯度更新,没有就是 few-shot。

为何常见:机器学习里“训练”一词太深入人心,人们容易把“多给上下文”误当成“更新权重”。

误区“既然 5-shot 比 0-shot 好,那把 50 条样例全塞进提示里,分数岂不是要起飞?”

正解不一定。模型有上下文窗口上限,示例太多会挤占推理空间;低质量或与目标题无关的样例还会引入噪声,个别任务甚至出现“越给越差”的倒挂现象。业界经验是 5 条左右通常性价比最高,要系统找最优 k,应做 k = 0、1、5、10 的消融实验。

为何常见:直觉上“材料越多越好”,忽略了注意力机制会被稀释、上下文长度存在硬边界。

误区“我们模型 MMLU 生物考了 90%,说明它已经是生物学大师了,可以放心让它写医学报告。”

正解要清醒。选择题格式决定它测的是“识别正确选项”而非“主动推理生成”;四选一有 25% 的保底运气分;若数据被污染,更是提前泄题。高分只能说明模型在“知识识别”层面表现好。判断是否真正掌握,还要追问学科分布是否均衡、同题改写后的分数是否稳定。

为何常见:分数是唯一显眼的数字,人天然倾向把“成绩好”等同于“能力强”。

误区“大家论文里都写 5-shot,MMLU 分数直接横向对比肯定没问题。”

正解提示模板、样例选择、答案判定规则都会悄悄影响分数。有的模型会输出一段解释而不是字母,直接被评分脚本判错;有的模型对特定样例顺序特别敏感。规范的对比应当固定提示模板、固定评分脚本、固定解码参数,并开源评测代码,分数才有可比性。

为何常见:人们默认“5-shot“是唯一变量,忽略了提示工程中大量隐性差异——就像说”都考同一张卷子”,却没发现监考老师偷偷给了不同人不同的答卷说明。

面试题

Q1. MMLU 全称对应的评测范围是?

单选题 · easy

  • A.大规模多任务语言理解← 正确答案
  • B.大规模参数语言生成
  • C.多模态图像文本检索
  • D.分布式深度学习框架

答案:A。MMLU 是 Massive Multitask Language Understanding 的缩写,即“大规模多任务语言理解”,对应 57 学科综合评测。B 是生成模型的方向,C 是多模态检索,D 是训练框架,都与 MMLU 的“多任务理解”含义不符。

Q2. MMLU 共覆盖多少门学科?

单选题 · easy

  • A.7 门
  • B.17 门
  • C.57 门← 正确答案
  • D.570 门

答案:C。MMLU 覆盖 57 个学科,从人文社科到理工医学,题目量约 1.4 万道。7、17、570 都属于干扰项,记住“57 门全能竞赛”这个画面即可。

Q3. 5-shot 评测中的"5"指什么?

单选题 · easy

  • A.提供 5 条带答案示例← 正确答案
  • B.模型有 5 亿参数
  • C.训练 5 轮迭代
  • D.测试 5 次取平均

答案:A。shot 指提示中带答案的示例条数,5-shot 就是给模型 5 条“题目+选项+答案”样例。参数规模、训练轮数、测试次数都与 shot 无关,不要把"5"想成别的数字游戏。

Q4. few-shot 评测中模型参数如何变化?

单选题 · mid

  • A.参数完全不更新← 正确答案
  • B.只微调最后一层
  • C.全量参数微调
  • D.用梯度下降更新

答案:A。few-shot 是纯推理过程,样例只进入提示上下文,模型权重零更新。它像“看答题卡说明”而不是“上冲刺班”;微调(B/C/D)才涉及梯度更新。这也是 few-shot 与 fine-tuning 的本质分界。

Q5. 四选一选择题随机猜测的准确率基线是多少?

单选题 · mid

  • A.10%
  • B.25%← 正确答案
  • C.50%
  • D.75%

答案:B。四个候选答案等概率被选中,随机猜测正确率为 1/4 = 25%。这是 MMLU 评测的“地板”,任何低于 25% 的分数都说明模型连格式都没学会;解读高分时也要记得扣除这层保底运气分。

Q6. 示例引导对模型最主要的作用是?

单选题 · mid

  • A.教会答题输出格式← 正确答案
  • B.注入全新学科知识
  • C.压缩模型参数量
  • D.加快预训练收敛速度

答案:A。样例的核心作用是让模型识别“题目→选项→答案字母”的格式,并学会输出规范。它不会凭空注入知识(B),与参数压缩(C)、预训练收敛(D)更无关系——知识来自预训练储备,格式来自上下文引导。

Q7. 解读 MMLU 分数时最应警惕的问题是?

单选题 · hard

  • A.测试集数据污染← 正确答案
  • B.训练卡 GPU 不足
  • C.提示长度太短
  • D.开源协议争议

答案:A。数据污染意味着预训练语料里混入了测试集原题,等于提前泄题,分数虚高。GPU 不足、提示长短、开源协议属于工程或合规问题,不直接影响评测分数的可靠性——污染才是威胁评测公信力的头号风险。

Q8. 一条规范的 few-shot 提示中需要包含哪些内容?

多选题 · mid

  • A.题干与四个选项← 正确答案
  • B.正确答案字母← 正确答案
  • C.示例的三元组← 正确答案
  • D.模型超参数

答案:ABC。few-shot 提示由若干条“题干 + 选项 + 正确答案字母”的样例三元组加上目标题组成,模型据此学习格式。模型超参数(学习率等)属于训练配置,与推理时的提示内容无关,不应出现在提示里。

Q9. 相比 0-shot,5-shot 可能带来哪些改善?

多选题 · mid

  • A.输出格式更稳定← 正确答案
  • B.更遵循答题规范← 正确答案
  • C.知识量必然增加
  • D.无需理解题干

答案:AB。样例让模型看清答题协议,输出格式更稳、更遵守“只给字母”的规范。但知识量来自预训练储备,样例不新增知识(C 错);模型仍然需要理解题干才能答对(D 错),格式引导替代不了理解。

Q10. 用 MMLU few-shot 横向对比两个模型时,应保持哪些条件一致?

多选题 · hard

  • A.提示模板与样例← 正确答案
  • B.解码采样参数← 正确答案
  • C.允许自由文本作答
  • D.评分判定脚本← 正确答案

答案:ABD。公平对比要固定提示模板、样例选择、解码参数(温度等)和评分脚本,否则分数差异可能来自评测流程而非模型能力。允许自由文本作答(C)会引入解析不确定性,恰恰是应该统一规避的做法。