博主头像

面向智能体构建者的大语言模型:上下文工程 | 斯坦福大学CS329Z课程第2讲,主讲人Michael

外来客 • 2026-11-12 18:39:33

分享
𝕏 f ◉
声明:本文为对公开内容的摘要整理, 未经本站独立核实,可能与原内容存在出入,不代表本站立场、观点或建议; 观点与版权归原作者及原平台所有。 如涉及版权问题,请联系我们,核实后立即删除。 [ 免责声明 ]

(原标题:LLMs for Agent Builders: Context Engineering | Stanford CS329Z Lecture 2 with Michael Ryan)

🎓 课程定位与核心目标

  • LLM技术栈分层体系:现代大语言模型(LLM)技术栈被划分为三个层级。底层工程涉及分布式计算、GPU内核优化及硬件加速;中层适配涵盖微调(Fine-tuning)、知识蒸馏及参数高效调整;顶层应用则聚焦于智能体(Agent)、检索增强生成(RAG)及复杂工作流构建。本课程主要聚焦于顶层应用的构建逻辑,旨在区别于从零构建模型的底层课程(如CS336)或基础自然语言处理理论课程(如CS224N)。
  • 核心学习目标:学员需深入理解现代LLM在训练与推理阶段的核心设计决策。重点掌握KV缓存机制及注意力原理,以评估模型在长上下文场景下的适用性边界。通过掌握这些底层逻辑,开发者能够优化智能体开发策略,解决因上下文长度限制导致的性能瓶颈与信息丢失问题。
  • 应用导向的工程视角:课程强调从工程实践角度审视模型能力,而非单纯追求理论推导。目标在于建立一种评估框架,用于判断特定模型架构是否适合处理超长文档、多轮对话或复杂工具调用场景,从而指导实际生产环境中的技术选型与优化路径。

📐 语言模型基础原理

  • 概率生成机制:语言模型本质上是预测文本序列概率的生成式模型。其核心逻辑是通过计算当前Token在给定前文条件下的条件概率,并将这些概率连乘得出整个序列的整体概率。这种自回归(Autoregressive)特性决定了模型必须按顺序处理输入,且每一步的输出依赖于之前所有步骤的状态。
  • 采样与解码策略:为了从概率分布中生成具体文本,系统支持多种解码策略。贪心搜索选择概率最高的Token;Top-P(核采样)根据累积概率阈值截断候选集;Top-K限制候选数量;束搜索(Beam Search)则保留多条路径以优化全局序列质量。温度参数用于调节概率分布的平滑度:高温度增加输出多样性,适合创意生成;低温度趋向确定性输出,适合逻辑推理或代码生成。
  • 上下文依赖性与状态保持:由于模型是无状态的函数映射,所有历史交互信息必须显式地包含在输入上下文中。这意味着随着对话轮次增加,输入序列长度线性增长,直接导致计算复杂度上升。理解这一机制是后续优化KV缓存和管理长上下文的基础。

⚙️ Transformer架构解析

  • 历史演进路径:语言模型经历了从2010年前的N-gram统计模型、2003年的神经语言模型(RNN/LSTM)到2017年Transformer架构的演变。现代LLM普遍采用仅解码器(Decoder-only)结构,因其并行计算效率高且易于扩展至大规模参数。
  • 注意力机制细节:输入文本经嵌入层与位置编码处理后,通过Query、Key、Value矩阵乘法计算注意力分数。应用因果掩码(Causal Mask)防止未来信息泄露,确保训练与推理逻辑一致。残差连接保障梯度流动稳定性,层归一化加速收敛。多头机制允许模型在不同子空间中关注不同特征模式。
  • 复杂度对比与权衡:全Softmax注意力的计算量为 $O(N^2)$,支持所有词元回溯交互,利于长上下文依赖捕捉,但内存占用随序列长度平方增长。线性注意力通过移除Softmax并改变结合律,将状态矩阵维度固定为隐藏层维度(如3x3),实现 $O(N)$ 复杂度与恒定内存占用。然而,线性注意力在“大海捞针”等长序列精确检索任务中表现退化,而全注意力模型在此类任务上更优。
  • 混合架构趋势:现代先进架构(如Kimi K3、DeltaNet)常混合使用线性与全局注意力层。这种设计旨在平衡计算效率与检索能力,既降低长序列处理的内存压力,又保留关键信息的精确访问能力,是应对长上下文挑战的重要工程手段。

📊 数据预处理与训练策略

  • 高质量数据清洗:预训练数据主要来源于Common Crawl等大规模互联网爬取项目。原始数据需经过语言识别、规则过滤(去除HTML标签、重复内容)及去重处理。DCLM(DataComp-LM)项目表明,仅保留约1.4%的高质量内容用于训练即可显著提升模型性能,证明数据质量比数量更关键。
  • 阶段化训练流程:LLM训练分为预训练、中训练(Mid-training)和后训练三个阶段。预训练使用广泛互联网数据以学习通用语言分布;中训练调整数据混合比例以聚焦特定领域(如数学、代码),有助于提升后续微调效果;后训练包含指令微调(SFT)与基于人类偏好的强化学习(RLHF),使模型对齐人类意图。
  • 奖励机制优化:传统RLHF依赖人类标注,存在不一致性及伦理风险。新兴方法采用可验证奖励(Verifiable Rewards),通过代码测试用例或数学答案的正确性作为客观反馈信号进行强化学习。这种方法减少了主观偏差,提高了模型在逻辑严密任务上的可靠性。

🛠️ 智能体特定训练方法

  • 合成环境构建:针对智能体缺乏高质量交互数据的问题,研究者利用现有Agent将GitHub仓库转化为Docker镜像。通过语言模型逆向工程Pull Request(PR)或注入函数级Bug,生成程序化缺陷及对应的修复任务。这种自动化流程可大规模生产真实感强的编程环境。
  • 任务验证与数据筛选:生成的自然语言任务描述仅当模型成功解决Bug并通过所有测试用例时才被保留为训练数据。这种严格的质量控制确保了合成数据的准确性。实验显示,该方法可将Qwen 2.5 32B模型在SWE-bench Verified基准上的得分从约9%提升至40%,证明了合成环境在提升智能体编程能力方面的有效性。
  • 长上下文智能体范式:通过上述方法训练的智能体更擅长处理长代码库和复杂依赖关系,为构建能够自主维护大型软件系统的Agent提供了高效的训练范式。

🧠 推理与训练策略深化

  • 长上下文扩展技术:预训练需针对特定Token长度进行位置嵌入(Positional Embeds)训练,以支持处理超长文档。RoPE(旋转位置编码)等机制允许模型外推至未见过的序列长度,但精度可能随距离增加而下降。
  • 合成数据趋势:当前行业每日生成万亿级Token的合成数据。虽然互联网数据的多样性仍是优势,但随着公开网络数据趋于饱和,未来模型发展将更依赖强化学习(RL)和高质量合成数据来推动能力边界。
  • 阶段差异与目标对齐:预训练关注海量未知数据分布的学习;中训练侧重数学、代码等特定领域样本的密度提升;后训练则针对已知高质量数据进行精细调整,以优化指令遵循能力和安全性。

⚙️ 推理系统优化

  • Roofline模型瓶颈分析:LLM推理分为Prefill(预填充)和Decode(解码)两个阶段。Prefill阶段因大量矩阵乘法受算力限制(Compute-bound),适合高吞吐场景;Decode阶段因KV Cache数据搬运受内存带宽限制(Memory-bound),是延迟优化的重点。
  • 投机解码技术:利用小模型生成草稿Token,大模型并行验证。在代码等可压缩性强的领域,接受率更高,能显著降低采样时间。这种技术通过增加计算冗余换取延迟降低,适用于对实时性要求高的交互场景。
  • 推理时扩展策略:通过思维链(Chain of Thought)或训练专门的推理LLM增加计算量以提升准确率。Thinking Machines的Inkling和Kimi K3采用不同奖励机制(如惩罚超预算错误),结合多教师蒸馏实现低/中/高推理等级控制,允许用户在成本与精度间灵活权衡。
  • 自一致性验证:在无硬验证器时,通过多次采样并选择出现频率最高的答案作为最终结果。利用样本数量提升任务成功率,特别适用于数学推理和逻辑判断等存在唯一正确答案的任务。

🛠️ 智能体上下文工程

  • 结构化输入输出约束:使用SGLang有限状态机或DSPy Signatures约束解码过程,强制模型输出特定JSON格式或分类标签。这不仅保证了解析准确性,还加速了推理过程,减少了因格式错误导致的重试开销。
  • System One模型应用:通过嵌入向量点积比较状态与动作(如游戏操作、情感分类),实现低延迟的即时决策。这种轻量级方法适用于需要快速反应的场景,避免了完整LLM调用的延迟。
  • 上下文腐化现象:随着上下文长度增加,模型在长文档检索任务(如Oolong基准测试)中的准确率显著下降,称为“Context Rot”。这是由于注意力机制因 $N^2$ 复杂度导致的性能损耗及信息稀释。因此需精简系统提示、消息历史及工具结果,避免无关信息干扰核心逻辑。

🎓 核心观点与架构建议

  • 避免工具冗余:构建智能体上下文无固定范式,需避免工具冗余(Bloat)。仅保留必要组件以提升效率。引用“Harness Attacks”研究对比Codex、Claude Code及开源框架Pi发现,Pi仅含read、write、edit、bash四个基础工具,在Terminal Bench任务中表现优于其他复杂框架(除Claude Fable外),证明精简工具集有助于提升模型专注度。
  • 检索优于全量加载:应通过检索机制筛选最相关记忆或文件,而非将所有信息塞入上下文窗口。全量加载不仅增加成本,还加剧上下文腐化风险。
  • 时序原则与缓存一致性:上下文添加需遵循时序原则,利用KV Cache特性。避免在对话中途插入内容导致位置嵌入失效及缓存重置。若在对话开始处插入文档,会滑动后续内容并改变位置嵌入,导致整个KV Cache失效。因此必须在多轮对话中顺序添加上下文。
  • 递归语言模型架构:建议采用递归结构,将提示词视为环境中的可变对象。通过子智能体处理长文本以规避压缩(Compaction)带来的信息丢失风险。在Oolong基准测试中,采用递归结构的GPT-5 mini性能超越GPT-5,证明子智能体解析长上下文并返回关键内容的策略优于单一模型直接处理。

📊 关键事实与实证案例

  • 缓存机制限制实证:实验证实,若在对话开始处插入文档,会滑动后续内容并改变位置嵌入,导致整个KV Cache失效。因此必须在多轮对话中顺序添加上下文,以最大化缓存命中率并降低推理延迟。
  • 压缩风险典型案例:某用户让AI读取完整收件箱并删除邮件(需确认)。因上下文过长触发自动压缩,系统丢弃了“删除前需确认”的指令,直接执行了删除操作。此案例警示开发者,自动压缩机制可能丢失关键约束条件,需在架构设计中显式保护核心指令。
  • 递归模型性能优势:在Oolong基准测试中,采用递归结构的GPT-5 mini性能超越GPT-5。通过子智能体解析长上下文并返回关键内容,有效解决了长序列注意力分散问题,验证了分治策略在处理超长文档时的优越性。

🎓 结论与建议

  • 工程化实验评估:开发者应通过实验评估不同格式(如Markdown、YAML)对模型表现的影响,将上下文工程转化为可量化的工程实践。避免凭直觉设计提示词,而是基于基准测试数据优化结构。
  • 应对长度限制策略:现代智能体框架普遍面临上下文长度限制,需设计策略决定保留哪些信息。可采用滑动窗口、摘要压缩或递归架构让子智能体处理局部内容并汇总结果。
  • 课程总结与展望:本讲完成了从语言模型架构、训练推理到智能体应用的全链路介绍。后续课程将聚焦于检索等具体技术实现,深入探讨如何高效构建和维护大规模知识库以支持智能体的长期记忆能力。

博主头像 👤 同一博主

查看该博主全部 47 篇

🧭 类似博主

0 条评论

发表评论

请先 登录 后参与讨论。