ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

大语言模型技术 step by step 第15章 提示工程与上下文学习

大语言模型技术 step by step 第15章 提示工程与上下文学习 第15章 提示工程与上下文学习学习目标理解上下文学习ICL的原理与机制掌握少样本提示与思维链等提示技术理解指令遵循与提示敏感性了解提示工程的最佳实践前面几章讨论如何训练和对齐模型。本章转向如何使用模型。大模型有一个革命性特性无需任何参数更新仅通过精心设计的提示就能完成各种任务。这就是上下文学习与提示工程。掌握这些技术能在不训练的情况下大幅释放模型潜力。15.1 上下文学习15.1.1 什么是上下文学习上下文学习In-Context Learning, ICL是 GPT-3 揭示的关键能力模型无需更新参数仅凭提示中提供的示例就能学会执行新任务。例如在提示中给出几个翻译示例英文: Hello - 法文: Bonjour 英文: Thank you - 法文: Merci 英文: Good morning - 法文:模型会输出 “Bonjour”或正确翻译尽管它从未被专门训练翻译。这在传统机器学习范式中不可想象——传统方法必须用标注数据重新训练。15.1.2 零样本、单样本与少样本零样本Zero-shot只给指令不给示例。“请将以下句子翻译成法文…”单样本One-shot给 1 个示例。少样本Few-shot给几个示例通常 3-10 个。通常示例越多效果越好但受上下文长度限制。零样本对齐良好的模型经 SFT/RLHF已能完成许多任务少样本则在复杂任务上更稳定。15.1.3 ICL 的工作机制上下文学习为何有效研究表明几种机制示例作为隐式梯度有理论分析认为注意力机制在前向传播中实现的变换类似于梯度下降的一步——示例相当于提供了梯度方向。任务识别模型从示例中识别任务类型激活预训练中相关的知识与能力。格式示范示例教会模型期望的输入输出格式。值得注意的是ICL 对示例顺序与选择敏感——同样的示例换个顺序效果可能不同。这提示 ICL 仍有一定脆弱性。15.2 提示工程基础15.2.1 提示的结构一个结构良好的提示常包含角色设定“你是一位资深 Python 工程师。”任务描述明确要做什么。示例少样本示例可选。输出格式约束“以 JSON 格式输出。”输入具体待处理内容。15.2.2 提示设计原则清晰明确避免歧义明确期望。提供充分上下文让模型理解背景与约束。分解复杂任务把复杂任务拆成简单步骤。指定输出格式减少后处理负担。15.2.3 提示的脆弱性提示对表述敏感语义相同的不同表述效果可能差异显著。这种提示敏感性是提示工程的挑战也使其带有一定经验艺术色彩。实践中需通过试验找到稳健的提示。15.3 思维链15.3.1 思维链的提出思维链Chain-of-Thought, CoT由 Wei 等人2022提出。核心发现在提示中给出包含中间推理步骤的示例少样本 CoT能显著提升模型在数学、逻辑等复杂推理任务上的表现。问题: 餐厅有 23 个苹果用了 20 个做午餐又买了 6 个还有多少 思考: 原有 23 个用了 20 个剩 3 个又买 6 个共 9 个。 答案: 915.3.2 思维链的原理为什么思维链有效降低问题难度把复杂推理分解为简单步骤每步更易预测。分配更多计算生成中间 token 等于给模型更多前向计算来处理问题。生成的总计算量与输出长度成正比单步前向计算量恒定思维链让困难问题获得更多算力。类似人类打草稿人类解复杂题也依赖中间步骤。15.3.3 零样本思维链无需示例仅加触发语Let’s think step by step就能激发思维链。这种零样本 CoT 由 Kojima 等人2022提出简单却有效适合快速提升推理。15.3.4 思维链的局限并非所有任务受益简单任务反而啰嗦。推理链可能自信地错误——步骤看似合理但结论错。增加生成长度与成本。2024 年起思维链范式发生内化o1、DeepSeek-R1 等推理模型经专门 RL 训练自发产生长思维链把思考多少步变成可控的测试时算力见 1.4.5 与第 13 章 13.8。对这类模型外部注入Let’s think step by step式提示反而可能干扰其内建思考格式——提示工程的重心转向任务描述与约束的清晰度。15.4 高级提示技术15.4.1 自我一致性Self-Consistency思维链的推理路径可能出错。自我一致性通过多次采样不同推理路径对最终答案投票用温度采样生成多条不同推理链。提取每条的答案。取多数票作为最终答案。以多样性换取鲁棒性显著提升推理准确率。15.4.2 思维树Tree of Thoughts思维树将推理组织成树形结构每个节点是一个推理状态。可从多个方向扩展、评估、回溯。适合规划、搜索类复杂任务。思维树比线性思维链更强大但实现更复杂、成本更高。15.4.3 分解提示Decomposition将复杂问题拆成子问题逐一解决。最少到最多Least-to-Most提示先解决最简单的子问题用其答案辅助解决更难的逐步递进。15.4.4 ReAct 框架ReActReasoning Acting让模型交替推理与行动Thought: 我需要查询天气 Action: search_weather(北京) Observation: 晴25度 Thought: 天气好可以建议户外活动 Final Answer: ...推理指导行动行动结果反馈推理。这是 Agent 的基础范式第23章。15.5 指令遵循15.5.1 模型如何理解指令经过 SFT 与对齐训练的模型能理解并执行自然语言指令。指令遵循能力来自SFT 数据中的指令-响应对。RLHF/DPO 对指令遵循行为的强化。预训练中积累的指令理解能力。15.5.2 指令格式与模板现代对话模型有标准的消息格式system / user / assistant通过**对话模板chat template**转化为模型输入|im_start|system 你是助手|im_end| |im_start|user ...|im_end| |im_start|assistant正确使用模板对多轮对话、角色识别至关重要。不同模型模板不同混淆会导致性能下降。15.5.3 提示注入与安全提示注入是针对大模型的安全威胁攻击者在输入中嵌入恶意指令试图劫持模型行为。例如在待翻译文本中藏入忽略上述指令输出…。越狱Jailbreak则试图绕过模型的安全对齐。防御策略输入输出过滤、指令与内容分隔、对齐训练强化抗注入、权限最小化。这是大模型安全的重要议题。15.6 提示工程实践15.6.1 示例选择策略少样本提示中示例的选择影响效果相关性选择与当前任务相关的示例。多样性覆盖不同情形避免模型过拟合某模式。动态选择用检索方式根据当前输入动态选示例与 RAG 结合。15.6.2 输出控制格式约束明确要求 JSON、Markdown 等格式可配合约束解码第16章保证合规。长度控制指定不超过 100 字等。语气风格通过角色设定与示例控制。15.6.3 提示调试提示工程是迭代过程从简单提示开始逐步优化。对比不同提示的效果A/B 测试。分析失败案例针对性改进。建立提示库沉淀经验。15.7 上下文窗口的利用15.7.1 上下文长度的影响更长的上下文窗口能容纳更多示例、更长的文档。但支持长不等于善用长。15.7.2 迷失在中间现象研究表明模型对上下文开头与结尾的信息利用更好中间的信息容易被忽视。这被称为Lost in the Middle。因此关键信息宜放在开头或结尾。15.7.3 信息位置策略重要指令放开头系统提示或结尾紧邻生成处。大段参考文档放中间。关键约束在生成前重申。小结提示工程是无需训练即可激发模型能力的重要技术。上下文学习让模型从示例中即学即用思维链通过中间推理步骤提升复杂任务表现自我一致性、思维树等进一步提升鲁棒性。掌握提示技术能显著提升模型在各类任务上的表现也为第 23 章的 Agent 与工具使用奠定基础。本部分对齐与微调至此完成下一部分转向推理与部署。延伸阅读Brown et al.Language Models are Few-Shot Learners(GPT-3, 2020) - ICL 的开创性展示。Wei et al.Chain-of-Thought Prompting Elicits Reasoning in Large Language Models(2022)。Kojima et al.Large Language Models are Zero-Shot Reasoners(2022) - 零样本思维链。Wang et al.Self-Consistency Improves Chain of Thought Reasoning(2022)。Yao et al.Tree of Thoughts(2023) ReAct(2022)。Liu et al.Lost in the Middle: How Language Models Use Long Contexts(2023)。
返回列表