一个固定参数的语言模型,在收到不同指令、示例和背景信息时,会给出不同的条件预测。增加几个示例、要求分解任务,或生成多个候选再选择,都会改变求解过程;但这些变化分别作用于输入信息、生成路径和决策规则,不能统称为“提示更强”。理解它们的区别,才能解释质量提升来自哪里,以及是否值得额外计算。
本章讨论不更新模型参数的运行时策略。目标不是收集提示句式,而是建立一套可分析的过程:构造有边界的上下文,选择有限示例,生成候选,提取答案,再依据频率、验证证据和预算作出决策。提示方案同模型权重一样需要版本化,单道题的成功不能证明其总体有效。
11.1固定模型上的条件学习
输入条件及参数更新
上下文学习(In-Context Learning,ICL)通过输入中的任务描述与示例改变模型的预测,当前请求不更新参数(Brown 等 2020)。记参数为 \(\theta\),当前输入为 \(x\),有序示例序列为 \(D=((x_1,y_1),\ldots,(x_m,y_m))\),其预测写为
其中 \(I\) 为任务指令,\(\mathcal B\) 为背景,\(O\) 为输出约束,\(T\) 为消息序列化与生成起始协议。即使自然语言文字不变,角色分隔符和模板改变也会改变真正进入模型的词元序列。
零样本提示(Zero-Shot Prompting)没有当前任务的示例对,但可以包含指令和背景。少样本提示(Few-Shot Prompting)额外提供少量示例;这里的“少”描述上下文内样本数,并不意味着基座在预训练或后训练中未见过相关任务。ICL 的表现可能来自对已学任务的识别、格式适应、信息提取或新映射的临时推断,不能仅凭成功回答就判断是哪种机制。
第21章《参数高效微调》中的连续提示训练需要更新任务变量,而本章的少样本文本示例本身不通过当前请求的梯度学习。检索得到的背景也不必是示例:背景提供事实,示例展示输入到输出的关系。两者可以同时存在,但其来源、正确性与评价方式应分开。
表 11.1 本章主要符号与对象。
| 符号 | 含义 |
|---|---|
| \(\theta,x,D\) | 固定模型参数、任务输入、有序示例 |
| \(C\) | 完整运行时上下文,包括模板与生成起点 |
| \(z,a\) | 中间步骤文本与最终答案 |
| \(q(a,z\mid C)\) | 实际解码策略产生的联合分布 |
| \(h(z,a)\) | 版本化答案解析与规范化函数 |
| \(K,n_a\) | 候选数量与答案 \(a\) 的票数 |
| \(v(C,z,a)\) | 验证器对候选的评分 |
| \(L_C,L_i,B\) | 上下文长度、候选输出长度、预算 |
上下文的四种职责
任务指令说明要执行的操作、判断标准与适用边界;示例具体呈现输入输出关系;背景提供任务所需信息;输出约束规定返回内容及可解析形式。它们共同形成 \(C\),但并不具有相同权威。背景中的引用、检索结果与用户提供的待处理文本应作为数据解释,不能因为出现命令句式就被提升为控制指令。
明确边界的意义不仅是防止指令冲突,也在于减少统计歧义。例如分类任务的标签应是固定集合,示例不能同时把同一标签用于不同含义;结构化输出应规定字段类型、单位和缺失值。语法正确只说明结果可被解析,不证明它符合事实或满足业务约束。
11.2上下文样本配置
相关性、覆盖和预算
示例库(Example Bank)是可复用的示范资产,应记录来源、任务类型、答案、用途和版本。候选首先满足访问权限与数据质量,再进行相关性排序。把无权使用的信息放入模型后再要求其“不要泄露”,不能替代前置隔离。
示例相关性可以依据词汇重合、语义向量、任务结构或已知难度。词汇近似并不保证解法类似:两题可能仅替换实体名称,却需要相反规则;反之,表面差异很大的题可能共享相同约束。因此选择目标不能只有最近邻距离。
一种显式的设计目标是,在候选集合 \(\mathcal E\) 中选择子集 \(S\),最大化
\(r\) 衡量相关性,覆盖项表示不同必要技能或标签,冗余项惩罚重复,\(\ell_e\) 为序列化后的示例长度。它是用于明确取舍的设计形式,不是保证任务最优的通用算法。若所有候选相关性均不足,可回退到更少示例或零样本,不应为达到固定数量硬塞无关样本。
例如预算 \(B_D=200\) 个词元,三个示例长度为 \((120,100,80)\),相关性为 \((0.9,0.8,0.6)\)。仅按相关性从高到低且放不下就跳过,会选第一、第三条,总相关性 \(1.5\);第二、第三条仅需 \(180\) 个词元、总相关性 \(1.4\),若二者覆盖两个互补技能而第一、第三条重复,覆盖项可以使其更优。这里没有已知测试答案参与选择,全部评分必须来自预先规定的信息。
上下文顺序效应
模型接收的是有序序列,所以一般没有
对任意排列 \(\pi\) 都成立的保证。位置编码、因果注意力与前文示例形成的局部模式使次序具有作用。已有研究直接观察到少样本顺序敏感性(Lu 等 2022);但某个模型上的最好排列未必能迁移到另一个模型或另一个任务。
输入长度也使“相同示例”不必等价。若输出预算固定,增加示例可能挤掉必要背景;若上下文被截断,实际进入模型的可能只剩一部分示例或残缺答案。截断后的词元清单才是真正的条件,不能仅记录原始示例编号。1
标签分布及内容先验
示例同时展示格式、输入分布、标签空间和具体映射。针对部分分类与多项选择任务的研究表明,这些因素可以分别影响 ICL 结果(Min 等 2022);这并不允许在一般任务中把错误标注当作无害。若任务需要通过示例学习陌生符号映射,错误标签可能直接破坏映射识别。
标签词(Verbalizer)把类别对应到模型输出文本。不同标签词的预训练频率、词元长度和上下文位置会引入偏好。若标签含多个词元,应该比较完整标签序列的概率及必要结束边界,不能只比较首词元概率。用平均词元对数概率替代序列概率又会改变决策目标,需明确声明。
一种上下文校准(Contextual Calibration)方法,用无任务内容的输入估计标签偏好 \(b_a>0\),再对目标输入概率作比值校正(Zhao 等 2021):
例如两标签的原概率为 \((0.6,0.4)\)、偏好估计为 \((0.8,0.2)\),比值为 \((0.75,2)\),归一化后为 \((\frac{3}{11},\frac{8}{11})\)。排序发生反转,但这不证明校正后的答案正确。无内容输入是否能代表应扣除的偏好、是否需要平滑,以及真实类别先验是否本来就不均衡,都会影响适用性。校准系数应在开发数据上确定。
算法11.1 预算内的示例构造
输入:问题、版本化示例库、选择策略、上下文上限与保留输出长度。输出:实际序列化上下文及示例清单。状态:可用词元预算、已选集合、覆盖状态。
过滤不符合权限、任务与质量条件的候选;排除与保留评估样本不允许的家族重叠。
扣除指令、问题、必要背景、模板和输出预留,得到示例预算;预算不足时采用明确的缩减或失败策略。
按预定相关性、覆盖和冗余准则选择可容纳示例,采用固定平局规则。达到预算或无合格候选时停止。
按已声明顺序构造完整消息并实际分词;如长度变化导致超限,整条移除最低优先级示例后重新构造,不截断到示例答案中间。
不变量:最终上下文长度符合预算,示例来源与顺序可追溯,选择过程没有使用当前测试题的标准答案。
11.3分步生成的概率结构
中间文本提供新的条件位置
思维链提示(Chain-of-Thought Prompting,CoT Prompting)通过步骤示范或任务分解要求,引导模型先生成中间文本再形成答案(Wei 等 2022)。令中间文本为 \(z\)、答案为 \(a\),在同一生成协议下有
中间词元成为后续位置的条件,能够保存局部结果、展开约束和组织计算。但是这些文本可能包含错误、遗漏或事后合理化,不能视为神经计算过程的完整因果记录。
式(11.5)描述允许生成 \(z\) 的协议。要求直接回答可能改变提示和输出语法,其答案分布不必等于先生成步骤再边缘化的分布。用两个不同提示的输出差异论证“只是多了相同计算的可见解释”,没有概率依据。
单轨迹生成只访问一个候选 \(z\),不等于计算求和。分步文字更长也不保证有效计算更多:重复前提、同义复述或复制错误会耗费预算却不改善答案。对于可外部执行的算术、程序和约束,应把验证对象写成明确输入、操作与结果,不能仅以叙述自信程度判断正确性。
路径最大概率及答案最大概率
考虑一个构造分布:四条完整路径的概率分别为 \(0.30,0.25,0.25,0.20\)。第一条给出答案 B,第二、第三条给出答案 A,第四条给出答案 C。最大概率路径给出 B,但答案边缘概率为 \(p(A)=0.50,p(B)=0.30,p(C)=0.20\),最大概率答案是 A。
这说明“寻找最可能的一条解答”与“汇总所有产生同一答案的路径”是不同目标。即便能够精确找到最大概率完整路径,也不保证找到最大概率答案;逐词贪心还不保证找到最大概率完整路径,相关搜索边界见第8章《自回归语言建模》。
11.4自一致性及多数投票
采样分布估计
自一致性(Self-Consistency)生成多条候选路径,提取最终答案并按出现频率聚合(Wang 等 2022)。令真实解码分布为 \(q(z,a\mid C)\),答案解析函数为 \(h\),则 \(K\) 次采样的计数为
在独立同分布采样下,\(\mathbb E[\widehat q_K(b)]=q_h(b)\),方差为 \(\frac{q_h(b)(1-q_h(b))}{K}\),其中 \(q_h\) 是经过解析映射后的答案分布。温度、top-\(k\)、top-\(p\) 或停止规则改变 \(q\),因此投票一般估计的是解码后的分布,而非未经变换的 \(p_\theta\)。
如果重复执行确定性贪心,通常只得到同一个答案,候选数量并未提供新的采样信息。反之,同一个固定模型使用独立随机数,可以在给定问题与提示的条件下产生独立样本;“同一模型”本身并不等同于统计不独立。跨题的共同偏差、候选复用同一已生成前缀、相互参考修改或共享随机状态,则会改变应采用的独立性假设。
二元多数正确率
固定一题,候选的正确性是独立同分布 Bernoulli 变量,单次正确率为 \(p\)。候选数 \(K\) 为奇数,决策仅区分正确和错误两类;不存在解析失败、拒答或多种错误标签竞争。
满足上述假设时,多数正确概率为
\(p=0.6,K=5\) 时,\(P_5=10(0.6)^3(0.4)^2+5(0.6)^4(0.4)+(0.6)^5=0.68256\)。\(p>\frac{1}{2}\) 是这一二元改善机制的关键;\(p<\frac{1}{2}\) 时,增加候选反而可能更稳定地选择错误。
真实答案空间一般不是二元。若正确答案概率 \(0.4\),其他答案分别为 \(0.35\) 和 \(0.25\),正确答案虽然不足半数,却是唯一众数;独立大量采样的最高票可能收敛到正确答案。若一个错误答案拥有最大概率,则自一致性趋向于强化它。所有正确性结论都需要联系真实答案分布,而不是把二元公式直接套到开放生成。
相关性、平票及解析失败
若正确性指示变量具有相同边际概率 \(p\)、任意两个的相关系数为 \(\rho\),则平均正确率方差为
该式只在所声明的等相关结构下成立,而且没有给出相关投票的完整尾概率;不能仅知道 \(\rho\) 就继续使用式(11.7)。候选共享一种错误解释时,经验收益可能很早饱和。
答案规范化(Answer Canonicalization)把单位、数值格式和等价表达映射到任务定义的同一答案。例如在要求以米给出长度的题中,\(1.5\) 米与 \(150\) 厘米可经单位换算合并;不带单位的 \(150\) 不能无条件按同一答案处理。大小写、空白、小数容差与集合顺序是否可忽略,取决于任务本身。
解析失败(Parse Failure)应作为显式状态,而不是从分母中消失。若把失败结果记为 \(\bot\),则所有计数之和仍为 \(K\)。可以只在有效答案中选择,但必须同时报告有效覆盖率 \(1-\frac{n_\bot}{K}\)、总候选上的支持率和有效候选中的支持率。2
奇数候选并不排除多类别平票。五个候选可以形成 \(2:2:1\)。预先定义的平票处理、最低有效数与最低票差可以触发继续采样、验证或拒答;不能事后选择更符合标准答案的候选。票数领先是稳定性线索,不是经校准的正确概率。
11.5候选验证及覆盖率
投票排序及验证排序
验证器(Verifier)检查候选的某些性质或为其正确性评分。多候选择优(Best-of-\(K\) Selection,Best-of-\(K\))可写为
这与票数选择不同:罕见答案可能通过严格验证,而最高票答案可能违反约束。训练验证器从多个数学候选中选择,是一条已有研究路线(Cobbe 等 2021);验证器本身如何训练与评价属于另一个问题,不能把它当成完美判定器。
若每次独立生成正确候选的概率为 \(p\),则至少有一个正确候选的概率为
\(p=0.6,K=5\) 时为 \(0.98976\),远高于前面的多数正确率,但这是完美选择器能够达到的候选覆盖,不是实际系统正确率。如果正确候选已经出现,验证器仍可能选错。扩大 \(K\) 还可能引入更多能欺骗评分器的高分错误,因而固定验证器的选择质量未必单调提高。
验证器适用范围
形式验证、程序执行、量纲检查、数据库约束和外部证据分别检查不同性质。一个算术表达式计算正确,不证明表达式正确建模了原题;程序通过有限测试,不证明所有输入正确;引用存在,不证明引用支持当前主张。验证报告应说明验证对象、方法与覆盖范围。
模型自评与独立工具验证也不同。生成器再读自己的答案可能发现局部不一致,也可能重复同一误解。若验证器与生成器共享训练偏差,表面独立的两个调用并不提供逻辑上的独立证据。拒答(Abstention)应是允许的决策状态,用于共识不足、验证条件不满足或信息缺失,而不是强制返回最高分候选。
11.6预算及自适应停止
推理总成本
测试时计算(Test-Time Compute)包括上下文处理、候选生成、验证和工具调用。若每个候选输入长 \(L_C\)、输出长 \(L_i\),不共享前缀时的逻辑词元量为
可用 \(C_{\mathrm{cost}}=c_{\mathrm{in}}N_{\mathrm{in}}+c_{\mathrm{out}}N_{\mathrm{out}}+C_v+C_t\) 描述给定口径的成本,其中 \(C_v,C_t\) 为验证与工具成本。输入输出单价或等价权重可能不同;不能把词元总数直接当作实际费用。
共享提示前缀可以降低预填充工作,但每条分支的生成状态仍需维护。并行生成可能降低墙钟延迟,却增加并发内存并不消除总计算。每个请求还需要单独满足上下文约束 \(L_C+L_{i,\max}\le L_{\max}\)。因此预算至少包含候选上限、输出上限、总计算或费用、时间与工具次数。
增加示例数 \(m\) 与增加候选数 \(K\) 争用资源。更有用的示例可能提高单候选质量,但较长输入会使每条候选更昂贵;更多采样只有在生成分布包含合适答案且选择器有效时才有意义。边际收益(Marginal Utility)可用开发集上追加一次计算带来的质量改善与成本比较,而非假设候选越多越好。
固定预算下的不可逆领先
若最多还允许生成 \(R\) 个候选,当前第一、第二名票数分别为 \(n_1,n_2\),且 \(n_1>n_2+R\),则剩余候选即使全部投给竞争答案也无法改变唯一第一名。这个条件可以在固定总候选上限下提前结束投票,保持最终最高票决策不变。
它不证明领先答案正确,也不适用于候选生成后还会修改旧票、改变答案规范化或按验证器重新加权的过程。若采用概率置信阈值提前停止,重复查看样本再使用固定样本置信区间可能破坏覆盖率;应采用适用于序贯决策的方法,或把停止规则作为完整策略在独立数据上评价。
算法11.2 有预算的候选聚合与验证
输入:固定上下文、解码策略、解析器、候选与词元上限、最低有效数、平票及验证规则。输出:答案、拒答或预算终止状态。状态:答案计数、失败计数、已用词元、验证记录。
初始化计数。每次开始生成前,为候选最大输出和可能的验证预留预算;不足时停止追加。
独立采样候选并记录实际停止原因;按固定解析器转为规范答案或失败状态,不静默丢弃失败。
更新票数与预算。若满足预定的验证接受条件或固定上限下不可逆领先条件,进入最终决策。
达到候选上限、超时或预算上限时停止;对平票、有效数不足和未通过验证的状态执行预定升级或拒答策略。
不变量:每个候选都有终态,全部成本被计入,解析与停止规则不根据当前标准答案临时修改。验证接受条件所证明的范围应随结果保留。
设任务要求计算商品总价:每件 \(30\) 元、购买 \(6\) 件、优惠 \(30\) 元。明确运算为 \(30\times6-30=150\) 元。该运算用作本算例的外部判定依据,而不是由投票自动获得的真值。
假设构造上下文含固定指令、问题与模板 \(180\) 个词元,两个示例分别为 \(90\) 与 \(110\) 个词元,因此 \(L_C=380\)。取 \(K=5\),输出长度依次为 \((70,85,60,100,75)\),合计 \(390\)。按不复用输入、输入输出等权的教学计量,候选成本为 \(5\times380+390=2290\) 个词元单位。若一个批量验证调用再耗费 \(120\) 个单位,总量为 \(2410\)。这些是给定长度的预算计算,不是实际模型生成测量。
表 11.2 构造的五候选记录,只列最终结果和验证状态。
| 候选 | 解析前结果 | 规范答案 | 约束与算术验证 |
|---|---|---|---|
| 1 | 150 元 | \(150\) 元 | 通过 |
| 2 | 人民币 150.00 | \(150\) 元 | 通过 |
| 3 | 180 元 | \(180\) 元 | 未扣优惠,失败 |
| 4 | 最终结果缺失 | \(\bot\) | 无法验证 |
| 5 | 120 元 | \(120\) 元 | 扣减与题意不符,失败 |
表11.2中有效候选为四条,解析覆盖率为 \(\frac{4}{5}=80\%\)。答案 \(150\) 元得两票,整体支持率 \(\frac{2}{5}=40\%\),在有效候选中的支持率为 \(\frac{2}{4}=50\%\);第二名各一票,票差为一。它是唯一最高票,但不满足严格过半数。若策略预先规定至少四条有效候选且需严格过半数,本次投票应转入验证,而非事后放宽阈值。
验证器检查原题运算和单位后,两个等价的 \(150\) 元候选通过,其他有效候选失败,可以返回该答案及简洁计算依据。若验证只检查表达式执行,则“\(30\times6=180\)”也能通过算术执行,仍需检查优惠约束;这说明验证定义直接决定选择结果。
若总预算只有 \(2300\) 个单位,当前五候选虽然可以生成,却无法完成预定的 \(120\) 单位验证。正确策略应在生成前预留验证成本,或者采用不同候选上限并按其规则决策。不能先耗尽预算,再把未经验证的最高票结果标作已验证。
11.7实验迁移性
提示变量隔离
比较零样本、少样本、分步生成和多候选策略时,应固定模型版本、题目、模板、答案规范化与评分规则。若目标是比较策略在自然成本下的效果,可以允许成本不同但同时报告;若目标是比较预算效率,则应在相同资源上限内比较。两种研究问题都合理,但不能混用结论。
使用同一题目作成对比较有助于减少题目难度差异。设两个策略在 \(N\) 题上的正确指示为 \(c_i^A,c_i^B\),差异估计为
应同时记录 A 对而 B 错、B 对而 A 错的题目,而不只比较两个总百分比。采样策略还需要预先规定种子或重复方式;同一问题多个候选不是多个独立测试问题,不能据此虚增评估样本量。
数据应覆盖直接问答、组合运算、约束满足、领域知识与不可回答问题,并按语言、长度和难度报告分子与分母。解析失败、截断、拒答与错误答案是不同状态。只在成功解析的样本上报告准确率,会隐藏格式成本与覆盖损失。
迁移条件校准
一个提示在某模型上有效,可能依赖其后训练习惯、标签偏好和模板。更换模型、分词器、量化版本、示例顺序或解码参数后,条件分布已经变化。不能因为文字提示相同,就认为实验条件完全保留。单个种子或单道题得到的改善更不能支持跨模型结论。
提示开发中反复查看测试题并调整示例,会把测试信息编码到运行时资产。应保留独立开发集,冻结示例库、解析器与停止规则后再评估。涉及近重复与问题家族的划分,见第18章《训练数据工程基础》。安全或权限边界仍由运行时控制,ICL 示例不应成为改变服务端权限的通道。
三个不同的证据问题
分步生成回答“如何组织一条候选”;自一致性回答“哪些答案在采样中出现得更多”;验证选择回答“哪些候选满足指定检查”。三者可以组合,但只有在各自假设、预算和判定范围都明确时,额外计算才具有可解释的收益。