news 2026/9/29 22:13:52

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
大语言模型技术 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 个。 答案: 9

15.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)

思维链的推理路径可能出错。自我一致性通过多次采样不同推理路径,对最终答案投票:

  1. 用温度采样生成多条不同推理链。
  2. 提取每条的答案。
  3. 取多数票作为最终答案。

以多样性换取鲁棒性,显著提升推理准确率。

15.4.2 思维树(Tree of Thoughts)

思维树将推理组织成树形结构:

  • 每个节点是一个推理状态。
  • 可从多个方向扩展、评估、回溯。
  • 适合规划、搜索类复杂任务。

思维树比线性思维链更强大,但实现更复杂、成本更高。

15.4.3 分解提示(Decomposition)

将复杂问题拆成子问题逐一解决。最少到最多(Least-to-Most)提示:先解决最简单的子问题,用其答案辅助解决更难的,逐步递进。

15.4.4 ReAct 框架

ReAct(Reasoning + 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)。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/29 22:13:24

Kong 插件,解决2.5.1不支持原生暴露url

lua脚本 建目录custom-latency&#xff0c;编辑文件&#xff0c;打zip包为file schema.lualocal typedefs require "kong.db.schema.typedefs"return {name "custom-latency",fields {{ consumer typedefs.no_consumer },{ protocols typedefs.protoc…

作者头像 李华
网站建设 2026/9/29 22:12:59

AI论文降重工具实战:从查重原理到高效降重的完整流程指南

又到一年毕业季&#xff0c;群里哀嚎一片的不是论文写不出来&#xff0c;而是查重报告上那个刺眼的红字。我见过太多人卡在最后一步&#xff1a;学校的查重系统结果一出来&#xff0c;重复率35%&#xff0c;距离合格线还差一大截&#xff0c;留给自己的时间却只剩两三天。说实话…

作者头像 李华
网站建设 2026/9/29 22:12:06

告别无效读论文!从零搞定文献阅读与实验复现完整流程

做机器学习相关课程作业或课题预研&#xff0c;相信很多人都有同样的困扰&#xff1a;认真读完一篇论文&#xff0c;看懂了理论思路&#xff0c;却完全没法落地实操。要么找不到配套数据集和源码&#xff0c;要么实验设计晦涩难懂&#xff0c;手动搭环境、调参耗时费力&#xf…

作者头像 李华
网站建设 2026/9/29 22:10:39

OpenClaw 3.1.0 上手教程,支持键鼠模拟、网页采集、文档批量处理

&#x1f4d6; 前言 本文面向 Windows 系统用户&#xff0c;系统梳理 OpenClaw 的标准化部署流程。全程无需输入任何命令行&#xff0c;所有操作均依托可视化向导完成&#xff0c;即便是零基础用户也能独立走完整套部署。文中同时汇总了高频报错的对应解决方案&#xff0c;力求…

作者头像 李华
网站建设 2026/9/29 22:09:20

2026年GEO服务商怎么选?主流方案全维度拆解与优选推荐

AI大模型正在重塑信息分发规则。当越来越多用户开始习惯向豆包、DeepSeek、千问、元宝等平台提问&#xff0c;品牌能否出现在AI的回答里、排在第几位、以什么形象被描述&#xff0c;已经成为决定流量走向的关键变量。GEO&#xff08;生成引擎优化&#xff09;由此成为企业营销的…

作者头像 李华
网站建设 2026/9/29 22:09:15

从0打造Agent智能体:2026年开发者必修的架构与实战

简介&#xff1a;这份PDF资料面向具备一定AI与机器学习基础的研发人员、产品经理及技术爱好者&#xff0c;系统讲解AI Agent智能体从概念认知到项目落地的完整路径。内容从人工智能、机器学习、深度学习与大语言模型等基础知识切入&#xff0c;辨析AI Agent与传统程序在自主性、…

作者头像 李华