AI 模型与平台
为什么大型语言模型会跳过指令以及如何解决这个问题

大型语言模型(LLMs) 已迅速成为必不可少的 人工智能(AI) 工具,用于从聊天机器人和内容创作到编码辅助的各种应用。尽管它们具有令人印象深刻的能力,但用户面临的一个常见挑战是,这些模型有时会跳过它们接收到的指令的某些部分,特别是当这些指令很长或涉及多个步骤时。这会导致输出不完整或不准确,从而引起混淆并削弱对 AI 系统的信任。了解为什么 LLMs 跳过指令以及如何解决这个问题对于依赖这些模型获得精确和可靠结果的用户来说至关重要。
为什么 LLMs 跳过指令?
LLMs 通过将输入文本读取为令牌序列来工作。令牌是将文本分解成的小块。模型从开始到结束逐一处理这些令牌。这意味着输入开始的指令往往会得到更多的关注。后面的指令可能会受到较少的关注,甚至被忽略。
这是因为 LLMs 具有有限的注意力容量。注意力是模型用来决定在生成响应时哪些输入部分是必不可少的机制。当输入很短时,注意力效果很好。但是,当输入变得更长或指令变得更复杂时,注意力就会减弱,导致后面的部分被忽略。
此外,多个指令同时会增加复杂性。当指令重叠或冲突时,模型可能会变得困惑。它们可能会尝试回答所有问题,但产生模糊或相互矛盾的响应。这通常会导致某些指令被遗漏。
LLMs 也有一些类似于人类的局限性。例如,人类在阅读长或重复的文本时可能会失去注意力。同样,LLMs 也可以在处理更多令牌时“忘记”后面的指令。这是模型设计和局限性的一个部分。
另一个原因是 LLMs 的训练方式。它们看到很多简单指令的例子,但很少看到复杂的多步骤指令。因此,模型倾向于遵循更常见于其训练数据中的简单指令。这导致它们跳过复杂的指令。此外,令牌限制限制了模型可以处理的输入量。当输入超过这些限制时,超出限制的指令会被忽略。
示例: 假设您给一个 LLM 五个指令,放在一个提示中。模型可能主要关注前两个指令,并部分或完全忽略最后三个。这直接影响了模型如何顺序处理令牌和其注意力限制。
LLMs 如何管理基于 SIFo 2024 研究的顺序指令
最近的研究仔细检查了 LLMs 如何遵循一个接一个给出的多个指令。一个重要的研究是 顺序指令遵循(SIFo) 基准 2024。这项基准测试模型在需要一步一步完成指令的任务中,例如文本修改、问答、数学和安全规则遵循。每个指令在序列中都依赖于前一个指令的正确完成。这一方法有助于检查模型是否正确遵循了整个序列。
SIFo 的结果表明,即使是最好的 LLMs,例如 GPT-4 和 Claude-3,也经常难以正确完成所有指令。特别是当指令很长或复杂时,研究指出了 LLMs 面临的三个主要问题:
理解: 完全理解每个指令的含义。
推理: 将多个指令逻辑地联系起来,以保持响应的清晰性。
可靠输出: 生成完整和准确的答案,涵盖所有给出的指令。
诸如 提示工程 和微调等技术有助于提高模型遵循指令的能力。然而,这些方法并不能完全解决指令跳过的问题。使用 强化学习和人工反馈(RLHF) 进一步提高了模型的响应能力。然而,当指令需要多个步骤或非常复杂时,模型仍然存在困难。
该研究还表明,LLMs 在指令简单、清晰分离和组织良好时效果最佳。当任务需要长的推理链或多个步骤时,模型的准确性会降低。这些发现有助于建议更好的使用 LLMs 的方法,并表明了构建更强大的能够真正遵循指令的模型的必要性。
LLMs 跳过指令的原因:技术挑战和实际考虑
LLMs 可能由于几个技术和实际因素而跳过指令,这些因素根植于它们如何处理和编码输入文本。
注意力范围和信息稀释
LLMs 依赖于 注意力机制 来为输入的不同部分分配重要性。当提示简洁时,模型的注意力集中且有效。然而,当提示变得更长或更重复时,注意力就会变得稀释,后面的令牌或指令就会受到较少的关注,从而增加了被忽略的可能性。这一现象,即信息稀释,特别是在提示末尾出现的指令中尤其成问题。另外,模型具有 固定令牌限制(例如 2048 个令牌);任何超过此限制的文本都会被截断并忽略,导致末尾的指令被完全忽略。
输出复杂性和模糊性
LLMs 可能难以输出清晰和完整的响应,当面临多个或冲突的指令时。模型可能会生成部分或模糊的答案,以避免矛盾或混淆,有效地省略某些指令。指令的措辞模糊也带来了挑战:不清楚或不精确的提示使得模型难以确定预期的操作,从而增加了跳过或误解指令的风险。
提示设计和格式敏感性
提示的结构和措辞也在指令遵循中起着至关重要的作用。研究表明,即使是提示措辞或格式的小变化也会显著影响模型是否遵循指令。
结构不良的提示,缺乏清晰的分离、项目符号或编号,会使模型难以区分步骤,增加了合并或省略指令的可能性。模型对提示的内部表示非常敏感,这解释了为什么提示工程(重新措辞或重新结构提示)可以大大提高指令遵循,即使底层内容保持不变。
如何修复 LLMs 中的指令跳过
提高 LLMs 准确遵循指令的能力对于产生可靠和精确的结果至关重要。要最小化指令跳过并提高 AI 生成响应的质量,应考虑以下最佳实践:
任务应分解为较小的部分
长或多步骤的提示应分解为较小、更集中的段。一次提供一两个指令允许模型保持更好的注意力,并减少了错过任何步骤的可能性。
示例
不要将所有指令合并到一个提示中,例如“总结文本,列出主要点,建议改进,并将其翻译成法语”,而是应该分别或成对地提出每个指令。
指令应使用编号列表或项目符号格式化
使用显式格式(如编号列表或项目符号)来组织指令,有助于指示每个项目是一个单独的任务。这种清晰度增加了响应涵盖所有指令的可能性。
示例
- 总结以下文本。
- 列出主要点。
- 建议改进。
这种格式化提供了视觉提示,帮助模型识别和分离提示中的单独任务。
指令应明确且无歧义
必须确保指令明确说明要求完成每个步骤。应避免使用模糊或不明确的语言。提示应明确指出不允许跳过任何步骤。
示例
“请完成以下所有三个任务。任何步骤都不允许跳过。”
此类直接陈述减少了混淆,并鼓励模型提供完整的答案。
高风险或关键任务应使用单独的提示
对于准确性和完整性至关重要的任务,应将每个指令作为单独的提示提交。虽然这种方法可能会增加交互时间,但它显著提高了获得完整和准确输出的可能性。这种方法确保模型一次专注于一个任务,减少了指令被忽略的风险。
高级策略以平衡完整性和效率
等待每个指令的响应可能会耗费用户大量时间。为了提高效率同时保持清晰度和减少跳过的指令,以下高级提示技术可能有效:
批量指令具有清晰的格式化和明确的标签
多个相关指令可以合并到一个提示中,但每个指令应使用编号或标题进行分离。提示还应指示模型应完全并按顺序响应所有指令。
示例提示
请仔细完成以下所有任务,不要跳过任何一个:
- 总结以下文本。
- 列出总结中的主要点。
- 根据主要点建议改进。
- 将改进后的文本翻译成法语。
链式思维风格的提示
链式思维提示引导模型逐步推理每个任务,然后再提供答案。鼓励模型在单个响应中顺序处理指令,有助于确保不会跳过任何步骤,减少指令跳过的可能性并提高完整性。
示例提示
阅读以下文本并按顺序完成以下任务。清晰地展示您的工作:
- 总结文本。
- 从总结中找出主要点。
- 建议对文本进行改进。
- 将改进后的文本翻译成法语。
请在一个回复中完整地回答所有任务。
添加完成指令和提醒
明确提醒模型:
- “完整地回答每个任务。”
- “不要跳过任何指令。”
- “清晰地分开你的答案。”
此类提醒有助于模型在多个指令合并时专注于完整性。
应测试不同的模型和参数设置
并非所有 LLMs 在遵循多个指令方面表现相同。建议评估各种模型以确定哪些模型在多步骤任务中表现出色。此外,调整诸如温度、最大令牌和系统提示等参数可能会进一步提高响应的关注度和完整性。测试这些设置有助于根据任务要求定制模型行为。
应考虑微调模型和利用外部工具
模型应在包含多步骤或顺序指令的数据集上进行微调,以提高其对复杂提示的遵循能力。诸如 RLHF 之类的技术可以进一步增强指令遵循。
对于高级用例,集成外部工具(如 API、特定任务插件或 检索增强生成(RAG) 系统)可能会提供额外的上下文和控制,从而提高输出的可靠性和准确性。
结论
LLMs 是强大的工具,但当提示很长或复杂时,它们可能会跳过指令。这是由于它们如何读取输入和集中注意力。为了获得更好的和更可靠的结果,指令应清晰、简单和组织良好。
对于关键任务,单独的提示可以提高准确性,尽管它们需要更多时间。另外,高级提示方法(如链式思维和清晰的格式化)有助于平衡速度和精度。此外,测试不同的模型和微调也可以改善结果。这些想法将帮助用户获得一致且完整的答案,并使 AI 工具在实际工作中更有用。












