想象你走进一家餐馆。如果只对厨师说“随便做点吃的”,端上来的可能是白粥,也可能是三斤烤全羊——全凭厨师心情。这就像你直接对大模型说“帮我写个回复”,它可能回你一句“好的”,也可能写出一篇三千字论文。真正专业的点餐方式,是递给后厨一张“订单卡”:限量三道菜、不要香菜、只做前菜和甜点、做错了怎么处理。 Prompt 工程里的“输出约束”,就是这张订单卡。它是一组写进 Prompt 的明确规则,用来回答四个问题:答案写多长(长度限制)、什么不能说(禁止内容)、只能聊什么(回答范围)、出了问题怎么办(迭代校验)。掌握了它,AI 的输出就从“开盲盒”变成了“按单生产”。 这篇文章会带你从下单原理开始,学会写长度条款、列忌口清单、定菜单边界,再分析订单卡为什么会被厨师“搞砸”,最后给出让订单卡稳定落地的实战套路。

岗位关联

输出约束是 Prompt 工程的基本功。对 AI 从业者来说,它决定了你交付的功能是“偶尔靠谱”还是“稳定可控”,是走向生产级应用的关键门槛。

目录
  1. 可视化演示
  2. 输出约束原理
  3. 长度限制方法
  4. 禁止内容指定
  5. 回答范围限定
  6. 失败原因分析
  7. 解决对策方案
  8. 应用场景落地
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

动态演示Prompt输出约束方法的核心机制,通过入门/进阶/实战/优化四种模式展示关键概念与交互流程。

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

Prompt输出约束方法:输出约束 输出约束基本原理与核心价值 长度限制与字数控制方法 核心机制可视化 Prompt输出约束方法整体架构与关键组件

输出约束原理

下订单时,厨师最怕的不是菜难做,而是客人只说一句“看着办”。一张合格的订单卡必须写清楚“几道菜、什么忌口、上菜顺序”,AI 也一样。光说“帮我写个回复”,它只能靠猜;输出约束就是在 Prompt 里塞进一张“规则订单卡”,把模糊的期待变成可执行的要求。

技术上,大语言模型每生成一个字都在“猜”下一个最合理的词元。约束并不改变模型本身,而是像在它面前立一块路标,让它在概率分布的岔路口优先选择符合规则的那条路。你可以把约束集合记为 $\mathcal{C}$,模型输出记为 $y$,输入记为 $x$。约束生效时,模型实际采样的概率就会从原始分布切换成条件分布,不在约束集合内的输出被直接压成 0。

这个条件概率可以写成下面的形式:分子是模型原始概率乘以一个“合规开关”,分母负责把所有合规输出重新归一化。

所以“订单卡”不是玄学,它实际上重新分配了 AI 的“做菜概率”:被规则禁止的菜直接划掉,剩下的菜重新计算比例。理解这一点,你就理解了输出约束的一切。

P(y∣x,C)=Pθ(y∣x)⋅1[y∈C]Z\displaystyle P(y \mid x, \mathcal{C}) = \frac{P_\theta(y \mid x) \cdot \mathbf{1}[y \in \mathcal{C}]}{Z}
  1. 条件概率$P(y \mid x, \mathcal{C})$ 表示输入为 $x$、约束集合为 $\mathcal{C}$ 时,模型生成回答 $y$ 的概率。约束越多,这个概率的形状变化越大。
    P(y∣x,C)\displaystyle P(y \mid x, \mathcal{C})
  2. 原始分布$P_\theta(y \mid x)$ 是不加约束时模型根据参数 $\theta$ 预测 $y$ 的概率,代表模型“本来想说什么”。
    Pθ(y∣x)\displaystyle P_\theta(y \mid x)
  3. 指示函数$\mathbf{1}[y \in \mathcal{C}]$ 像订单卡上的规则勾选框,$y$ 满足所有约束时取值 1,任一违规则取值 0。它把不符合规则的候选输出直接清零。
    1[y∈C]\displaystyle \mathbf{1}[y \in \mathcal{C}]
  4. 归一化常数$Z$ 对所有满足约束的输出重新加权求和,保证概率分布总和仍为 1。它把“合规候选”重新分配成一套完整的概率。
    Z=∑y′Pθ(y′∣x)⋅1[y′∈C]\displaystyle Z = \sum_{y'} P_\theta(y' \mid x) \cdot \mathbf{1}[y' \in \mathcal{C}]

长度限制方法

订单卡上最常见的规则是“量”:三道菜、每份 200 克。AI 的输出长度也一样,常用两种写法——一种是字数约束,比如“用不超过 100 个字回复”;另一种是结构约束,比如“只输出 3 个要点,每点一句话”。这两者可以同时使用,订单卡上写“三菜一汤”就是既限数量又限种类。

写法上有几个经验值得记住。第一,把上限写具体数字,不要写“简短点”这种模糊词。第二,模型对“字”的感知不如对 Token 精确。Token 是模型处理文本的最小单位,中文 1 个汉字约等于 1 个 Token(实际在 0.8 到 1.5 之间浮动),英文则大约 3 到 4 个字符折算 1 个 Token。第三,为了安全起见,目标字数最好留出 20% 到 30% 的余量:如果业务要求“不超过 200 字”,提示里写“150 字以内”更稳妥。

长度约束是否达标,可以用一个归一化误差来度量——实际长度与目标长度差多远,换算成相对比例。

订单卡上写“每道菜 200 克”,上桌后拿秤一称,误差越小越好——$E_L$ 就是这把“后厨电子秤”。把它集成到自动校验脚本里,超长输出就能被及时发现并触发重写。

EL=∣L实际−L目标∣L目标\displaystyle E_L = \frac{|L_{\text{实际}} - L_{\text{目标}}|}{L_{\text{目标}}}
  1. 实际长度$L_{\text{实际}}$ 是模型最终输出文本的字符数,比如 180 字,由生成后的结果统计得到。
    L实际\displaystyle L_{\text{实际}}
  2. 目标长度$L_{\text{目标}}$ 是订单卡上写明的期望长度,比如 200 字,是 Prompt 中约定的基准值。
    L目标\displaystyle L_{\text{目标}}
  3. 相对误差分子取绝对值差,再除以目标长度,得到归一化误差。$E_L$ 越接近 0,说明输出长度越贴合订单卡要求。
    EL=∣L实际−L目标∣L目标\displaystyle E_L = \frac{|L_{\text{实际}} - L_{\text{目标}}|}{L_{\text{目标}}}

禁止内容指定

订单卡上最醒目的是“忌口”栏:不要香菜、不要辣、不要海鲜。AI 对话里的忌口就是禁止内容:不能出现的词、不能触碰的领域、不能使用的语气。初学者常写“请不要回答得太专业”,这种模糊否定效果很差,模型根本不知道红线画在哪里。

更有效的做法是“显式清单 + 正面替代”。显式清单是把禁用词一条条列出来,比如“禁止出现手机号、身份证号、银行卡号”;正面替代是告诉模型正确做法,比如“涉及联系方式时统一写'请咨询客服'”。两者结合,模型既知道不能碰什么,也知道碰了该往哪躲。

定义一个违禁词集合 $\mathcal{B}$,输出中的每个词 $w$ 是否踩雷,可以用一个命中函数来判断。实际工程里通常配合后处理过滤:Prompt 拦一遍,正则和词表再兜底一遍。

就像后厨备菜时把香菜单独装盘,AI 生成时也会刻意绕开你标红的词——但前提是,“避雷清单”要写得具体可查,它才绕得开。

h(w)={1,w∈B0,w∉B\displaystyle h(w) = \begin{cases} 1, & w \in \mathcal{B} \\ 0, & w \notin \mathcal{B} \end{cases}
  1. 候选词$w$ 是模型输出中的任意一个词,可以是一个词语,也可以是一段连续字符串,比如"13812345678"。
    w\displaystyle w
  2. 违禁词集合$\mathcal{B}$ 是订单卡“忌口”栏列出的全部禁用项,包括敏感词、格式、特定称呼等。
    B\displaystyle \mathcal{B}
  3. 命中判定$w$ 在集合内取 1,否则取 0。把所有词的 $h(w)$ 累加,就知道整篇输出里踩了几颗雷,驱动后续拦截或重写。
    h(w)={1,w∈B0,w∉B\displaystyle h(w) = \begin{cases} 1, & w \in \mathcal{B} \\ 0, & w \notin \mathcal{B} \end{cases}

回答范围限定

订单卡还可以规定“做什么类型的菜”:只做前菜和甜品,主食一概不碰。对应到 AI 身上,这就是回答范围限定——只允许模型在指定主题内作答,其他话题一律不接。范围限定是三件套:主题白名单、格式约定、分点结构。

主题白名单最直接,写法是“只回答退款、换货、物流三类问题,超出范围回复'无法处理'”。格式约定是限定输出结构,比如“用 JSON 输出,字段为 result 和 reason”,方便程序解析。分点结构则限定了回答的组织方式,比如“分三个点,每点不超过一行”,让模型不在某个点上无限发散。

范围限定的本质是收缩输出空间。设原始输出集合为 $\mathcal{Y}$,被排除的内容为 $\mathcal{Y}_{\text{排除}}$,约束后剩下的空间 $\mathcal{Y}'$ 就是两者的差集。空间越小,模型跑偏的概率越低。

菜单太大,厨师容易手忙脚乱;可选项缩小到三样,出错的概率自然直线下降。写 Prompt 时多花十秒钟划清边界,比事后清理跑偏内容省力得多。

∣Y′∣=∣Y∖Y排除∣\displaystyle |\mathcal{Y}'| = |\mathcal{Y} \setminus \mathcal{Y}_{\text{排除}}|
  1. 原始空间$\mathcal{Y}$ 表示模型不受限时可能输出的全部回答集合,可以理解为厨师看到的那本完整菜单。
    Y\displaystyle \mathcal{Y}
  2. 排除空间$\mathcal{Y}_{\text{排除}}$ 是订单卡划掉的禁止范围,例如“不要讨论价格、不要对比竞品”。
    Y排除\displaystyle \mathcal{Y}_{\text{排除}}
  3. 集合差$\setminus$ 表示从原始集合中剔除排除项,$|\cdot|$ 统计剩余数量。约束后空间越小,模型越不容易跑到范围外。
    ∣Y′∣=∣Y∖Y排除∣\displaystyle |\mathcal{Y}'| = |\mathcal{Y} \setminus \mathcal{Y}_{\text{排除}}|

失败原因分析

再好的订单卡也有被厨师看走眼的时候:字迹潦草、要求自相矛盾、或是被压在菜单堆里没人注意。输出约束失效也一样,往往不是模型“笨”,而是 Prompt 本身出了问题。

最常见的四个原因:一是指令模糊,“简短点”“专业点”没有量化标准;二是位置不当,约束埋在超长上下文的中间,模型的注意力早就被前后内容稀释了;三是冲突指令,“请详细展开”和“不超过 50 字”同时出现,模型无法同时满足;四是长度理解偏差,模型对“字”的统计方式与人类不一致,导致字数限制经常被突破。

要判断问题有多严重,先定义失败率:在所有测试输出中,违反约束的比例是多少。这个指标能客观反映订单卡的有效性,也是后续优化前必须采集的基线数据。

订单卡被退回来,不一定是厨师手艺差,多半是单子本身没写好。遇到失败率偏高,别急着怪模型,先回头逐条检查 Prompt——下一节就是教你如何把订单卡重写到厨师挑不出毛病。

FR=N违反约束N总输出×100%\displaystyle \text{FR} = \frac{N_{\text{违反约束}}}{N_{\text{总输出}}} \times 100\%
  1. 违规样本数$N_{\text{违反约束}}$ 是测试集中至少违反一条约束的输出条数,比如 100 条里有 23 条超长或含违禁词。
    N违反约束\displaystyle N_{\text{违反约束}}
  2. 总输出数$N_{\text{总输出}}$ 是本次测试的全部生成条数,用来作为计算比例的分母。
    N总输出\displaystyle N_{\text{总输出}}
  3. 失败率两者相除再乘 100%,得到约束失效比例。工程上通常要求 FR 低于 5% 才允许上线。
    FR=N违反约束N总输出×100%\displaystyle \text{FR} = \frac{N_{\text{违反约束}}}{N_{\text{总输出}}} \times 100\%

解决对策方案

厨师长接到退单后不会只骂厨师,而是会改进后厨流程:把要求加粗放大、贴一张成品照片、上菜前先过秤检查。对应到 Prompt 工程,就是四招组合拳:结构强化、示例驱动、迭代校验、约束分层。

结构强化是指把约束条件集中放到 Prompt 末尾,用编号列表逐条列出,比如“1. 不超过 100 字;2. 禁止出现手机号;3. 只输出 JSON”。示例驱动是给模型一个完全符合约束的输入输出样例,让它照着这个“标准菜”模仿。迭代校验是在代码层写检查脚本,输出不满足约束就自动重新生成,最多重试三次。约束分层则是按业务重要性给约束排序:关键约束必须满足,次要约束放宽容忍度,避免互相打架。

多条约束同时生效时,可以用一个加权损失函数来评估输出质量。长度误差、违禁词命中、范围越界这三类问题,按业务重要程度分配权重,加权求和后得到综合得分——分越低,说明输出越符合订单卡。

订单卡迭代过几轮,后厨出品就稳了。这也是 Prompt 工程最核心的日常:写约束、测失败、改约束,循环往复,直到失败率降到可接受的范围。

L(y)=αEL+β∑w∈Bh(w)+γ⋅1[y∉Y′]\displaystyle \mathcal{L}(y) = \alpha E_L + \beta \sum_{w \in \mathcal{B}} h(w) + \gamma \cdot \mathbf{1}[y \notin \mathcal{Y}']
  1. 长度误差项$\alpha E_L$ 惩罚超出或不足目标长度的输出,$\alpha$ 越大,长度这条规则在评分中分量越重。
    αEL\displaystyle \alpha E_L
  2. 违禁词项$\beta \sum_{w \in \mathcal{B}} h(w)$ 统计全文踩中违禁词的次数并加权,踩得越多,扣分越狠。
    β∑w∈Bh(w)\displaystyle \beta \sum_{w \in \mathcal{B}} h(w)
  3. 范围越界项$\gamma \cdot \mathbf{1}[y \notin \mathcal{Y}']$ 一旦回答跑出白名单,指示函数变为 1,追加一档固定惩罚。
    γ⋅1[y∉Y′]\displaystyle \gamma \cdot \mathbf{1}[y \notin \mathcal{Y}']
  4. 总损失三项相加得到 $\mathcal{L}(y)$,值越低说明输出越符合订单卡。在多候选生成时,这个分数还能用来挑选最优结果。
    L(y)=αEL+β∑w∈Bh(w)+γ⋅1[y∉Y′]\displaystyle \mathcal{L}(y) = \alpha E_L + \beta \sum_{w \in \mathcal{B}} h(w) + \gamma \cdot \mathbf{1}[y \notin \mathcal{Y}']

应用场景落地

订单卡最终要挂到快餐店的窗口上,让每个档口都按规矩出餐。输出约束在真实业务中有四个典型落点:客服自动回复、数据脱敏、营销文案生成、内容审核。

客服回复靠“范围限定 + 长度限制”:Prompt 里写明“只输出退款、换货、物流三类中的一个词”,再配一句“不超过 20 字”的说明,客户的意图就能被精准分类。数据脱敏靠“禁止内容”:在 Prompt 中列出手机号、身份证号、银行卡号为违禁项,并要求命中后用星号替代,后处理再做一道正则校验。营销文案生成则把“长度限制 + 语气规范”结合:要求“150 字以内、禁止使用'最'和'第一'等极限词、结尾附一句行动号召”。内容审核场景通常同时使用主题白名单和违禁词黑名单,双重闸门把关。

落地时建议使用统一的订单卡模板:角色定义 + 业务目标 + 编号约束列表 + 输出格式 + 示例 + 兜底语句。兜底语句很重要,比如“超出上述范围时,请回复'无法处理'”。它能保证模型在拿不准的时候给出一个安全的默认答案,而不是硬着头皮自由发挥。

一张好订单卡从“能用”到“好用”,靠的是持续观察后厨出品的稳定度。把输出约束当成系统工程来打磨,AI 应用才能真正从 Demo 走向生产环境。

AI 应用场景

客服工单自动分类

阶段:Prompt 开发与推理部署

解决的问题:传统客服系统靠正则匹配关键词,用户换个说法就识别失败;而让大模型自由发挥,又容易答非所问、输出大段无关内容。输出约束让模型只能在指定类别中作答,兼顾语义理解与结果可控。

具体案例:某电商平台在工单系统中接入 Prompt:“判断用户意图,只输出一个词:退款、换货、物流。如果都不属于,回复'其他'。” 同时约束回复不超过 10 字。上线后工单分类准确率从 82% 提升到 95%,无效回复大幅减少。

金融客服敏感信息脱敏

阶段:数据预处理与安全后处理

解决的问题:大模型在回答金融问题时可能无意复述用户手机号、身份证号等敏感信息,人工审核成本极高。用输出约束在生成阶段禁止完整敏感字段,再配合后处理正则过滤,形成双保险。

具体案例:某银行智能助手 Prompt 中写明“禁止输出完整手机号,中间四位用 * 代替;禁止输出身份证号任何片段”。后处理脚本对输出再做一轮校验,一旦命中违禁格式立即脱敏并记录日志。

营销文案批量生成

阶段:AIGC 应用层开发

解决的问题:广告投放需要大量文案,但模型自由生成会出现长度不一、极限词违规、品牌语气漂移等问题。输出约束把文案的篇幅、用词、结构全部标准化,让批量生产成为可能。

具体案例:某广告平台 Prompt 约定“150 字以内,禁止使用'最''第一''国家级'等极限词,结尾必须包含行动号召”。每次生成后自动校验字数与违禁词,不合格自动重写,文案合格率从 70% 提升到 96%。

Python 演示

python52 行
# -*- coding: utf-8 -*-import re class ConstraintChecker:    def __init__(self, max_len=200, min_len=10, banned_words=None, must_include=None):        self.max_len = max_len        self.min_len = min_len        self.banned_words = banned_words or []        self.must_include = must_include or []        self.report = {}     def length_check(self, text):        n = len(text)        ok = self.min_len <= n <= self.max_len        self.report['length'] = n        self.report['length_ok'] = ok        return ok     def banned_check(self, text):        hit = [w for w in self.banned_words if w in text]        self.report['banned_hits'] = hit        return len(hit) == 0     def include_check(self, text):        missing = [w for w in self.must_include if w not in text]        self.report['missing'] = missing        return len(missing) == 0     def overall_score(self, text):        checks = [            ('length', self.length_check(text)),            ('banned', self.banned_check(text)),            ('include', self.include_check(text)),        ]        passed = sum(1 for _, ok in checks if ok)        self.report['pass_rate'] = passed / len(checks)        return self.report['pass_rate'] def main():    checker = ConstraintChecker(        max_len=120,        min_len=10,        banned_words=['内部', '保密'],        must_include=['下周'],    )    sample = '本次活动的公开时间是下周三上午十点。'    print('pass rate:', checker.overall_score(sample))    for k, v in checker.report.items():        print(k, '=', v) if __name__ == '__main__':    main()
目的:实现一个输出约束校验器,同时检查长度上下限、违禁词命中、必含词缺失,并输出综合通过率,模拟生产环境中对模型输出的自动把关。
  1. def length_check(self, text):长度校验入口,统计字符数并与上下限对比,结果记入 report。
  2. hit = [w for w in self.banned_words if w in text]用列表推导找出文本中命中的所有违禁词,是黑名单过滤的核心一行。
  3. missing = [w for w in self.must_include if w not in text]反向检查必含词,确保关键要素没有被模型漏掉。
  4. self.report['pass_rate'] = passed / len(checks)汇总三项约束的通过率,作为输出是否合规的量化指标。
  5. checker = ConstraintChecker(max_len=120, banned_words=['内部', '保密'])构造校验器实例,长度上限 120 字,禁用词两个。
  6. print('pass rate:', checker.overall_score(sample))对样例文本执行全部校验并输出评分。

常见误区

误区初学者会把 Prompt 写成“拜托你最好能简短一点,如果方便的话……”,认为语气客气可以提高遵循率。结果模型照样长篇大论。

正解大模型不读语气,只读指令的明确度。礼貌用词反而会稀释指令强度,让“简短”变得更模糊。真正有效的写法是“用不超过 50 个字回答”,直接、量化、无歧义。

为何常见:人类社交习惯是委婉表达,我们下意识把模型当成真人对话者,忽视了它是概率系统而非社交对象。

误区在 Prompt 里写了“不要提价格”,就认为输出中 100% 不会出现价格信息,于是不做任何后处理。

正解输出约束对模型来说只是“倾向”而非“铁律”,属于软约束。在高代价场景必须叠加硬校验:正则匹配、词表过滤、失败重试,用程序逻辑兜底。

为何常见:把大模型当成确定性程序,忽略了采样过程的随机性——同样的 Prompt 每次生成的概率分布都有波动。

误区认为“100 个字”就是 100 个 Token,于是把 `max_tokens` 设为 100,结果输出经常被截断。

正解Token 是分词器切割后的最小单位,中文 1 字约 0.8 到 1.5 个 Token,英文约 3 到 4 字符 1 个 Token。混合文本偏差更大,Token 预算至少要留 20% 到 30% 的裕量。

为何常见:人眼看到的是“字”,模型看到的是“词元”,分词边界不可见,容易按直觉估算导致偏差。

误区把能想到的限制全堆进 Prompt,认为规则越严格输出越安全。结果模型顾此失彼,连最简单的长度要求都守不住。

正解约束过多会造成指令冲突和注意力稀释。正确做法是按业务优先级分层,保留 3 到 5 条关键约束,次要约束交给后处理兜底。

为何常见:追求控制感是人的本能,但模型的上下文注意力有限,规则列表太长时,靠前的约束会覆盖靠后的约束。

面试题

Q1. 以下哪项最符合“输出约束”的定义?

单选题 · easy

  • A.限制 AI 生成内容范围与格式← 正确答案
  • B.提高 AI 模型训练数据量
  • C.改变 AI 模型的底层架构
  • D.加快 AI 推理的硬件速度

答案:A。输出约束是在 Prompt 层附加规则,限制生成内容的长度、边界和禁用项。B/C/D 分别涉及训练数据、模型架构、硬件层面,都不是输出约束的范畴。

Q2. 以下哪条指令是合格的“长度约束”?

单选题 · easy

  • A.请用不超过一百字回复← 正确答案
  • B.请尽量简短一点好吗
  • C.请别告诉我太多内容
  • D.请差不多就行了吧

答案:A。A 给出了具体数字“一百字”,模型有了可量化目标。B/C/D 都是模糊形容词,模型无法判断“简短”和“太多”的边界在哪里,约束等于没写。

Q3. 下列哪种写法能最有效地避免敏感信息?

单选题 · mid

  • A.禁止出现手机号用星号代替← 正确答案
  • B.别说那些不该说的东西
  • C.请多加注意安全小心一点
  • D.不要提任何敏感的内容

答案:A。A 是“负面指令 + 正面替代”的组合:既明确禁止手机号,又给出替代方案“用星号代替”。B/C/D 都是模糊否定,模型不知道红线具体画在哪。

Q4. 导致输出约束失效的常见原因有哪些?

多选题 · mid

  • A.指令表达模糊不清← 正确答案
  • B.约束放在提示词中部← 正确答案
  • C.多条指令相互冲突← 正确答案
  • D.模型采样温度设置过高← 正确答案

答案:ABCD。四个选项都是实践中的失效原因:模糊指令让模型无法量化目标;约束埋在中间会被注意力稀释;冲突指令让模型无所适从;温度过高增大随机性,使约束被“跳过去”。

Q5. “不要回答太长”效果不稳定的根本原因是?

单选题 · mid

  • A.缺少可量化的长度目标← 正确答案
  • B.模型不识别中文汉字
  • C.模型的上下文长度有限
  • D.模型无法理解否定句式

答案:A。模型完全能理解否定句,问题在于“太长”没有数字基准。它只能凭训练语料猜测“长”的尺度,而每个用户的尺度不同。给出具体字数才是合格的长度约束。

Q6. 关于 Token 与字符换算,下列哪种说法最准确?

单选题 · hard

  • A.一个汉字严格等于一个词元
  • B.英文按四个字符折算一个词元
  • C.中文按字英文按词直接算
  • D.换算受词表切分方式影响← 正确答案

答案:D。词元切分由 BPE 这类分词器决定,不同词表对汉字、英文、标点的切分方式不同,A/B 只是粗略经验值,C 更是完全错误的简化。只有 D 触及本质,所以 Token 预算要留余量。

Q7. 实践中提升约束遵循率的有效手段包括?

多选题 · mid

  • A.附上符合约束的示例← 正确答案
  • B.用编号列表强化结构← 正确答案
  • C.生成后校验收敛重试← 正确答案
  • D.减少非关键多余约束← 正确答案

答案:ABCD。A 是示例驱动,给模型参照系;B 是结构强化,让约束更醒目;C 是迭代校验,用代码兜底;D 是约束分层,减少冲突和注意力稀释。这四招在工程中配合使用效果最佳。

Q8. 下列哪一组指令属于“约束冲突”?

单选题 · hard

  • A.请详细展开,但限五十字← 正确答案
  • B.请简短回复,限一百字
  • C.请先总括,再给分步建议
  • D.请勿评价,给出客观事实

答案:A。“详细展开”与“五十字”在信息量上直接矛盾,模型无法同时满足。B 的两个约束方向一致;C 是并列结构要求;D 是内容风格约束,彼此都不冲突。

Q9. 限定回答范围最直接有效的写法是?

单选题 · easy

  • A.只回答退款换货物流三类← 正确答案
  • B.请回答一切相关信息即可
  • C.不要局限于某些固定类别
  • D.尽量自由发挥你的想法

答案:A。A 用“只回答 + 枚举三类”直接收窄输出空间,模型的选择面被明确固定。B/C/D 都在扩大或模糊边界,与范围限定的目标背道而驰。

Q10. 输出综合评估公式的加权项分别度量什么?

多选题 · extreme

  • A.长度误差与违禁词命中← 正确答案
  • B.长度误差与范围越界情况← 正确答案
  • C.参数量级与生成耗时情况
  • D.上下文长度与采样温度值

答案:AB。综合评估公式 L = α·EL + β·Σh(w) + γ·I[y∉Y'] 中,三项分别度量长度误差、违禁词命中、范围越界。A 对应前两项,B 对应第一项和第三项,C/D 涉及的是模型配置,不在该评估公式内。