如果你使用过大型语言模型,你可能听说过“提示工程”。在早期,要获得正确的输出,关键在于精心设计完美的提示词。

对于简单的聊天机器人和文本生成,这通常就足够了。但当我们开始构建更复杂的人工智能系统——那些使用工具、记住对话并与世界互动的智能体时,很明显,单一的提示词已经不够了。这促使我们改变了与大型语言模型交流的方式,从编写提示词转向设计上下文。

在本文中,我们将追溯从简单提示词到丰富、动态上下文的发展历程。我们将探讨定义提示工程的强大技术,找出迫使变革的局限性,并介绍新的学科——上下文工程——它是当今构建稳健、可扩展和智能的人工智能系统的关键。

一、提示工程的演变

零样本和少样本提示

与大型语言模型交互的最基本方式是通过零样本提示。你给模型一个直接的指令来执行任务,不需要任何示例。它遵守指令的能力完全来自于预训练期间获得的知识。

虽然零样本是一个很好的起点,但其性能可能不一致。为了提高可靠性,我们可以使用少样本提示。除了告诉模型要做什么,你还通过在提示词中提供几个任务示例来展示给它看。这是一种上下文学习的形式,模型从你提供的示例中学习所需的格式和风格。

此图像并排对比了零样本提示和少样本提示。左侧,在“零样本提示”下,一个单独的指令框要求大型语言模型对电影评论进行分类。下方的大型语言模型输出为“负面”。右侧,在“少样本提示”下,指令框包含两个完整的示例(一个正面评论被归类为“正面”,一个中性评论被归类为“中性”),然后才呈现相同的目标评论。下方的大型语言模型输出同样是“负面”。这一视觉效果清楚地区分了零样本的无示例方法和少样本的有示例指导方法。

此图像并排对比了零样本提示和少样本提示。左侧,在“零样本提示”下,一个单独的指令框要求大型语言模型对电影评论进行分类。下方的大型语言模型输出为“负面”。右侧,在“少样本提示”下,指令框包含两个完整的示例(一个正面评论被归类为“正面”,一个中性评论被归类为“中性”),然后才呈现相同的目标评论。下方的大型语言模型输出同样是“负面”。这一视觉效果清楚地区分了零样本的无示例方法和少样本的有示例指导方法。

思维链:让推理过程显性化

提供示例有助于完成简单任务,但对于需要多个逻辑步骤的问题呢?对于这些问题,我们需要让模型进行思考

这就产生了思维链(CoT)提示,我们提示模型“一步一步思考”,将复杂问题分解为一系列中间想法。

此图像通过一个数学应用题说明了思维链(CoT)提示。用户问:“一个杂耍演员有16个球。一半是高尔夫球,而高尔夫球的一半是蓝色的。有多少个蓝色高尔夫球?”提示词的关键部分是指令:“让我们一步一步思考。”大型语言模型的输出是清晰的、带编号的推理步骤列表:计算高尔夫球的数量(16/2=8),然后计算蓝色高尔夫球的数量(8/2=4),最后给出最终答案。这展示了思维链如何引出透明且符合逻辑的推理过程。

此图像通过一个数学应用题说明了思维链(CoT)提示。用户问:“一个杂耍演员有16个球。一半是高尔夫球,而高尔夫球的一半是蓝色的。有多少个蓝色高尔夫球?”提示词的关键部分是指令:“让我们一步一步思考。”大型语言模型的输出是清晰的、带编号的推理步骤列表:计算高尔夫球的数量(16/2=8),然后计算蓝色高尔夫球的数量(8/2=4),最后给出最终答案。这展示了思维链如何引出透明且符合逻辑的推理过程。

通过使推理过程显性化,思维链大大提高了在需要逻辑、算术或规划的任务上的准确性。

思维树:探索多种推理路径

思维链是一个强大的线性过程,但许多现实世界的问题并没有单一的、直接的解决路径。这导致了思维链的演变,形成了思维树(ToT),它允许模型同时探索多种推理路径,就像决策树一样。

这是一个概念图,比较了思维链(CoT)和思维树(ToT)。左侧,思维链被显示为一个简单的、线性的思想序列,通向一个单一的最终答案。右侧,思维树被可视化成一个分支结构。它从初始想法开始,然后分裂成多个潜在的推理路径。这一可视化有效地对比了思维链的线性性质和思维树的多路径、探索性方法。

这是一个概念图,比较了思维链(CoT)和思维树(ToT)。左侧,思维链被显示为一个简单的、线性的思想序列,通向一个单一的最终答案。右侧,思维树被可视化成一个分支结构。它从初始想法开始,然后分裂成多个潜在的推理路径。这一可视化有效地对比了思维链的线性性质和思维树的多路径、探索性方法。

思维树可以评估不同的思路,并选择最有前景的一个,这对于有多种有效方法的问题或最佳解决路径不明显的情况非常有用。这代表了与思维链的线性推理相比的重大进步,为复杂问题解决开辟了新的可能性。

值得注意的是,思维链已经衍生出了其他几种变体,每种变体都针对推理的不同方面。

通过RAG利用外部知识增强模型

大型语言模型的内部知识是固定的,不包括你的私有公司数据或实时新闻。为了弥合这一差距,我们使用检索增强生成(RAG)。RAG在生成响应之前从外部知识库中检索相关信息,使模型基于真实、最新的数据。

此图说明了检索增强生成(RAG)的工作流程。它从用户查询(“我们第二季度的收益是多少?”)开始。一个箭头指向“向量数据库”,表示搜索。该过程检索相关的文档片段(例如,“第二季度收益报告:净收入为500万美元……”)。这些片段与原始查询和系统指令结合,形成最终的上下文。这个上下文被输入到大型语言模型中,模型生成基于事实的答案:“我们第二季度的净收入为500万美元。”视觉流程清晰地分离了检索和生成步骤。

此图说明了检索增强生成(RAG)的工作流程。它从用户查询(“我们第二季度的收益是多少?”)开始。一个箭头指向“向量数据库”,表示搜索。该过程检索相关的文档片段(例如,“第二季度收益报告:净收入为500万美元……”)。这些片段与原始查询和系统指令结合,形成最终的上下文。这个上下文被输入到大型语言模型中,模型生成基于事实的答案:“我们第二季度的净收入为500万美元。”视觉流程清晰地分离了检索和生成步骤。

ReAct:使大型语言模型能够使用外部工具

虽然思维链和思维树专注于内部推理,但许多现实世界的问题需要模型与外部信息源和工具进行交互。这导致了ReAct(推理与行动)框架的发展,该框架使大型语言模型能够使用外部工具来收集信息和执行操作。

ReAct框架创建了一个循环,在这个循环中,模型思考要做什么,通过使用工具(如搜索引擎、计算器或API)来行动,然后观察结果以指导其下一个想法。这允许模型动态地收集信息,并与世界交互,以解决需要外部数据或能力的问题。

此图说明了ReAct(推理与行动)框架的工作流程。它从用户查询开始。大型语言模型生成一个“想法”,并决定使用一个“工具”。应用程序执行该工具,返回一个“观察结果”。这个观察结果反馈给大型语言模型,模型生成一个新的“想法”,并决定使用另一个“工具”。在第二个“观察结果”返回后,大型语言模型为用户生成“最终答案”。这个“想法→行动→观察”的循环过程被清晰地描绘出来,展示了智能体如何与工具交互来解决问题。

此图说明了ReAct(推理与行动)框架的工作流程。它从用户查询开始。大型语言模型生成一个“想法”,并决定使用一个“工具”。应用程序执行该工具,返回一个“观察结果”。这个观察结果反馈给大型语言模型,模型生成一个新的“想法”,并决定使用另一个“工具”。在第二个“观察结果”返回后,大型语言模型为用户生成“最终答案”。这个“想法→行动→观察”的循环过程被清晰地描绘出来,展示了智能体如何与工具交互来解决问题。

函数调用:工具使用的进化

ReAct是一种开创性的方法,它展示了大型语言模型如何通过在采取行动之前加入“思考”步骤来使用外部工具。

然而,随着大型语言模型提供商认识到工具使用的重要性,他们开始专门针对这种能力对模型进行微调,并开发了结构化输出,使工具调用更加可靠。这种演变导致了我们现在所说的函数调用。

ReAct与思维链一起,也成为了当今推理模型的前身,展示了明确的推理步骤如何提高问题解决能力。

什么是函数调用?

函数调用是一种能力,当大型语言模型在其上下文中获得可用工具(函数)的描述时,它可以选择“调用”其中一个。模型不会生成文本,而是输出一个结构化的JSON对象,指定要调用的函数及其参数。你的应用程序代码负责解析这个JSON,执行函数,并将结果返回给模型。

一直在更新,更多的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇

二、构建现代上下文

在这一点上,我们的上下文变得越来越复杂。我们有指令、少样本示例、检索到的文档和工具定义。

如果我们只是将所有这些连接成一个大的文本块,那将会带来麻烦。模型很容易混淆,将检索到的文档误解为指令,或者试图“调用”电子邮件中描述的函数。

解决方案是施加清晰的结构。最有效的方法之一是使用类XML标签来划分每个部分。通过用<documents><tools><instruction>等标签包裹不同类型的信息,我们向模型明确说明了每段信息的作用。

例如,以下是我们如何构建一个让模型能够访问get_weather工具的提示词。

<tools>  <tool_definition>    {      "name": "get_weather",      "description": "获取指定地点的当前天气",      "parameters": {        "type": "object",        "properties": {          "location": {            "type": "string",            "description": "城市和州,例如:旧金山,加利福尼亚州"          },          "unit": {            "type": "string",            "enum": ["摄氏度", "华氏度"]          }        },        "required": ["location"]      }    }  </tool_definition></tools><instruction>回答用户的问题。你可以使用工具。</instruction><query>旧金山的天气怎么样?</query>

大型语言模型本身并不运行函数。它只是生成结构化的请求,如下所示。

{  "tool_name": "get_weather",  "parameters": {    "location": "旧金山,加利福尼亚州",    "unit": "华氏度"  }}

你的应用程序代码负责解析这个JSON,执行函数,并将结果返回给模型。

三、长上下文的隐藏成本

随着模型的上下文窗口达到数百万令牌,人们很容易认为我们可以向大型语言模型输入整个数据库,并得到完美的答案。

然而,这种“上下文填充”方法存在隐藏的成本和性能陷阱。仅仅增大上下文通常是一种不可靠且低效的策略。

上下文衰减:当长上下文降低性能时

最近出现的一种被称为“上下文衰减”的现象,已成为现代大型语言模型部署中最令人担忧的挑战之一。尽管理论上的上下文窗口达到10万到100万令牌,但研究表明,在仅仅数万个令牌之后,性能就开始显著下降——远远低于宣传的极限。

Chroma 2025年的综合研究评估了18个领先的大型语言模型,包括GPT-4.1、Claude 4、Gemini 2.5和Qwen3,在各种长上下文任务上的表现。结果很明确:模型处理上下文的方式并不均匀,随着输入长度的增加,它们的性能变得越来越不可靠,即使是像重复带有微小变化的单词序列这样的简单任务也是如此。

该研究揭示了关于上下文衰减的几个关键发现:

  • 性能下降不均匀:模型不会优雅地失败——相反,它们表现出不稳定的行为,有些生成随机输出,有些拒绝尝试任务,许多则生成自信但错误的响应。

  • 模型家族表现不同:OpenAI的GPT模型表现出最不稳定的行为,而Claude模型则更为保守,在不确定时往往选择不回答,而不是幻觉输出。

  • 简单任务变得不可靠:即使是像复制重复文本并插入一个独特单词这样的基本任务,在超过10,000个单词后也变得不可靠,模型会生成随机重复或缩短输出。

“上下文衰减:长上下文中的性能下降”。x轴标记为“上下文长度(以千令牌为单位)”,并标有10k、50k、100k和500k等值。y轴标记为“模型可靠性和准确性”,范围从“低”到“高”。图表中有一条动态线代表实际模型性能。这条线从左上角的“稳定区”(高达约20k令牌)开始,呈绿色实线且处于高位,表明性能可靠。在这一点之后,这条线进入“不稳定区”,变得参差不齐并开始下降。其颜色从绿色过渡到黄色,再到橙色,显示出越来越高的不可预测性。在这一部分,线条有急剧的突然下降,其中一个被标注为“灾难性失败(例如,幻觉或拒绝回答)”。当线条向右延伸到更长的上下文长度时,它进入“高不可靠区”,变成红色并下降到非常低的、波动的水平,直观地展示了性能在远未达到宣传的最大上下文限制之前就严重且不可预测地下降。

“上下文衰减:长上下文中的性能下降”。x轴标记为“上下文长度(以千令牌为单位)”,并标有10k、50k、100k和500k等值。y轴标记为“模型可靠性和准确性”,范围从“低”到“高”。图表中有一条动态线代表实际模型性能。这条线从左上角的“稳定区”(高达约20k令牌)开始,呈绿色实线且处于高位,表明性能可靠。在这一点之后,这条线进入“不稳定区”,变得参差不齐并开始下降。其颜色从绿色过渡到黄色,再到橙色,显示出越来越高的不可预测性。在这一部分,线条有急剧的突然下降,其中一个被标注为“灾难性失败(例如,幻觉或拒绝回答)”。当线条向右延伸到更长的上下文长度时,它进入“高不可靠区”,变成红色并下降到非常低的、波动的水平,直观地展示了性能在远未达到宣传的最大上下文限制之前就严重且不可预测地下降。

这建立在早期研究的基础上,包括基础性的“当Transformer知道但不说”研究,该研究发现大型语言模型通常会在其隐藏表示中编码目标信息的位置,但在生成响应时未能利用这一知识——一种“知道但不说”的现象。

其他研究探索了长上下文退化的相关方面。关于KV缓存压缩方法的研究表明了上下文长度和准确性之间的权衡,而关于长上下文能力与推理之间关系的研究表明,上下文限制可能是当前架构的基本问题。

这对现实世界的应用有着重要的影响。关于使大型语言模型充分利用上下文的研究表明,信息密集型训练可能有所帮助,但基本挑战仍然存在:更长并不总是更好,百万令牌上下文窗口的承诺可能更多是营销而非现实。

💡 上下文长度悖论

上下文衰减揭示了现代人工智能中的一个关键悖论:具有百万令牌上下文窗口的模型在长任务上的表现往往比那些具有更小但管理良好的上下文的模型更差。关键不仅仅是拥有一个大的上下文窗口——而是有效地使用它。

“中间迷失”现象

虽然上下文衰减表明更长的上下文会降低整体性能,但还有一个更违反直觉的问题:即使在单个上下文中,并非所有信息都是平等的。这被称为“中间迷失”问题,即模型难以访问位于提示词中间的信息,而相比之下,它更容易访问位于提示词开头或结尾的信息。

“U形性能曲线”,说明了“中间迷失”现象。x轴表示“相关信息在上下文中的位置”,从开始到结束。y轴显示“模型准确性”。一条明显的U形曲线表明,当关键信息位于上下文的最开始或最结尾时,准确性最高。当相关信息位于中间时,准确性显著下降,表明模型难以从该区域检索数据。

“U形性能曲线”,说明了“中间迷失”现象。x轴表示“相关信息在上下文中的位置”,从开始到结束。y轴显示“模型准确性”。一条明显的U形曲线表明,当关键信息位于上下文的最开始或最结尾时,准确性最高。当相关信息位于中间时,准确性显著下降,表明模型难以从该区域检索数据。

这种U形曲线表明大型语言模型不会平等地关注上下文的所有部分。开头的信息(首因效应)和结尾的信息(近因效应)更突出,而中间的信息则在噪音中迷失。这直接影响了像RAG这样的应用,正确文档的位置会极大地影响准确性。

💡 一个简单的规则:开头和结尾

这一发现引出了一个简单的最佳实践:将最关键的信息放在上下文的最开头或最结尾。这包括主要指令或最相关的检索文档。这种战略性排序可以显著提高模型找到和使用最重要信息的能力。

规模的技术瓶颈

许多长上下文挑战的根本原因在于Transformer架构的self-attention机制。这种机制允许模型权衡不同单词的重要性,其计算成本与上下文长度的平方成正比。简单来说,上下文长度加倍,计算量就会 quadruple(四倍)。

这个图表展示了Transformer自注意力机制的二次方缩放。x轴表示“上下文长度(n)”,y轴表示“计算成本”。一条标有“Transformer(O(n²))”的红线显示出陡峭的向上弯曲轨迹,说明了随着上下文窗口变长,计算需求如何激增。这个视觉效果突出了用标准Transformer处理极长序列的基本效率挑战。

这个图表展示了Transformer自注意力机制的二次方缩放。x轴表示“上下文长度(n)”,y轴表示“计算成本”。一条标有“Transformer(O(n²))”的红线显示出陡峭的向上弯曲轨迹,说明了随着上下文窗口变长,计算需求如何激增。这个视觉效果突出了用标准Transformer处理极长序列的基本效率挑战。

这种O(n²)问题使得处理极长序列的速度极慢且成本极高。虽然近似技术可以实现百万令牌的上下文窗口,但这些捷径会降低模型的精度,加剧我们所看到的性能下降。除此之外,拥挤的上下文还会增加成本、延迟和模型混淆的风险。

💡 理解O(n²)符号

O(n²)符号是_ 大O符号 _的一部分,这是计算机科学家和软件工程师用来描述算法性能如何随输入大小变化的数学概念。“O”代表“阶数”,n²意味着计算成本随着输入大小的平方增长。就Transformer注意力而言,如果你将上下文长度加倍,计算成本就会变成原来的四倍。这种二次方缩放是处理非常长的上下文变得极其昂贵的原因。

替代架构:寻求次二次方缩放

认识到二次方注意力的基本局限性,研究人员探索了有希望实现次二次方甚至线性缩放的替代架构。Mamba基于状态空间模型,通过用选择性状态空间取代注意力,提供线性复杂度。同样,Linformer通过低秩投影将注意力降低到线性复杂度,而Longformer和BigBird使用稀疏注意力模式来实现更高效的缩放。

尽管有这些理论上的优势,替代架构在大多数基准测试中始终表现出比纯注意力Transformer更低的质量。像Mamba这样的状态空间模型在长序列上表现出色,但在需要复杂推理或上下文学习的任务上却很困难。稀疏注意力方法通常会错过全注意力能轻松捕获的关键长程依赖关系。

这种质量差距解释了为什么主要的大型语言模型提供商继续投资于优化传统Transformer,而不是完全放弃它们。挑战仍然存在:我们能否在保持注意力所具有的表征能力的同时,实现替代架构的效率?

RoPE:超越训练限制扩展上下文

一种更实际的方法是在Transformer框架内工作并扩展其能力。为了应对二次方缩放问题的基本限制,研究人员开发了旋转位置嵌入(RoPE)技术,该技术允许模型处理远远超出其训练范围的上下文长度。RoPE通过以数学方式扩展位置信息的编码方式,使模型能够在不重新训练的情况下处理更长的序列。

“RoPE的权衡:以成本扩展上下文”。说明了旋转位置嵌入(RoPE)如何影响模型性能。主要特征是一个二维折线图,x轴为“上下文长度”,y轴为“模型性能”。一条垂直虚线位于“原始训练限制(例如,4k令牌)”处,将图表分为两部分。在这条线的左侧,“训练上下文”区域内,一条性能线处于高位且稳定,表明“可靠性能”。在这条线的右侧,“RoPE扩展上下文”区域内,性能线呈现明显且稳定的下降趋势,表明“性能下降”。该区域的一个注释解释:“随着模型外推其从未训练过的位置,注意力质量会下降。”这个视觉效果清晰地传达了虽然RoPE允许模型处理远远超出其训练限制的上下文,但随着上下文长度的增加,性能和可靠性会下降,这是有代价的。

“RoPE的权衡:以成本扩展上下文”。说明了旋转位置嵌入(RoPE)如何影响模型性能。主要特征是一个二维折线图,x轴为“上下文长度”,y轴为“模型性能”。一条垂直虚线位于“原始训练限制(例如,4k令牌)”处,将图表分为两部分。在这条线的左侧,“训练上下文”区域内,一条性能线处于高位且稳定,表明“可靠性能”。在这条线的右侧,“RoPE扩展上下文”区域内,性能线呈现明显且稳定的下降趋势,表明“性能下降”。该区域的一个注释解释:“随着模型外推其从未训练过的位置,注意力质量会下降。”这个视觉效果清晰地传达了虽然RoPE允许模型处理远远超出其训练限制的上下文,但随着上下文长度的增加,性能和可靠性会下降,这是有代价的。

RoPE背后的关键见解是,它使用不同频率的三角函数(正弦和余弦)来表示令牌位置。当一个在4096个令牌上训练的模型遇到更长的序列时,RoPE可以通过数学外推位置嵌入来容纳额外的令牌。这使得许多现代大型语言模型能够处理32k、100k甚至数百万个令牌的上下文窗口——远远超出了它们最初的训练限制。

然而,这种扩展伴随着一个显著的权衡:长上下文中的性能下降。虽然RoPE允许模型处理更长的序列,但随着序列长度的增加,对远距离令牌的注意力质量会下降。这是因为模型从未接受过关注如此远距离令牌的训练,外推的位置嵌入变得不太可靠。

四、上下文工程学科

我们已经确定“上下文填充”方法是有缺陷的。解决方案不是使用更少的上下文,而是更智能地使用它。这就是上下文工程的本质:设计和填充最佳信息 payload(负载),使大型语言模型能够执行特定任务的学科。

操作系统类比:CPU和RAM

理解上下文管理的最佳方式或许可以借鉴计算机硬件的类比。在这个模型中,大型语言模型是一个强大但无状态的处理器——CPU。上下文窗口是其易失性的、有限的工作内存——RAM。大型语言模型只能“思考”当前加载到其RAM中的内容。

“作为操作系统的大型语言模型”的类比。它将大型语言模型系统与计算机的架构进行了比较。一个“CPU”图标被标记为“大型语言模型(处理器)”,一个“RAM”图标被标记为“上下文窗口(工作内存)”,一个“硬盘”图标被标记为“外部来源(数据库、API、文件)”。一个标有“上下文工程(内存管理器)”的大箭头显示数据从硬盘被选择性地移动到RAM。这说明了上下文工程师的工作是管理加载到大型语言模型有限工作内存中的信息。

“作为操作系统的大型语言模型”的类比。它将大型语言模型系统与计算机的架构进行了比较。一个“CPU”图标被标记为“大型语言模型(处理器)”,一个“RAM”图标被标记为“上下文窗口(工作内存)”,一个“硬盘”图标被标记为“外部来源(数据库、API、文件)”。一个标有“上下文工程(内存管理器)”的大箭头显示数据从硬盘被选择性地移动到RAM。这说明了上下文工程师的工作是管理加载到大型语言模型有限工作内存中的信息。

这使我们开发者成为操作系统的架构师。我们的工作是构建一个“内存管理器”,它能智能地将信息从“硬盘”(数据库、API、文件)加载到RAM中,确保CPU拥有当前任务所需的确切信息,而不会被淹没。

主要上下文管理策略

基于这个操作系统类比,让我们探讨实用的“内存管理”技术。在任何交互式应用程序中,对话历史都会迅速增长。如果任其发展,它会溢出上下文窗口,导致模型忘记对话的开头。

最简单的策略是截断,即我们只保留最后N条消息。一种更复杂的方法是总结,即我们使用另一个大型语言模型调用来创建对话较旧部分的浓缩摘要。截断速度快,但可能会丢失关键细节,而总结更智能,但会增加延迟和成本。

这个图表对比了用于管理对话历史的“截断”和“总结”方法。左侧,“截断”显示一长串对话轮次,最旧的轮次被灰色显示并划掉,表明它们被丢弃。右侧,“总结”显示最旧的轮次被输入到大型语言模型中,大型语言模型输出一个简洁的摘要来替代它们在上下文中的位置。这个视觉效果清楚地区分了简单的丢弃方法和更细致的总结方法。

这个图表对比了用于管理对话历史的“截断”和“总结”方法。左侧,“截断”显示一长串对话轮次,最旧的轮次被灰色显示并划掉,表明它们被丢弃。右侧,“总结”显示最旧的轮次被输入到大型语言模型中,大型语言模型输出一个简洁的摘要来替代它们在上下文中的位置。这个视觉效果清楚地区分了简单的丢弃方法和更细致的总结方法。

除了基本的截断和总结之外,复杂的内存管理技术已经出现,它们类似于操作系统处理内存层次结构的方式。这些方法认识到上下文中的并非所有信息都应得到同等对待——有些事实是基础性的,有些是短暂的,而挑战在于有效地组织它们。

分层内存系统代表了最有前景的方法之一。这些系统实现了多个存储层,类似于计算机硬件中的CPU缓存层次结构。最关键和最常访问的信息留在“L1缓存”(即时上下文)中,而不太紧急但仍相关的信息移至“L2缓存”(压缩摘要),很少需要的信息则存储在“L3缓存”(可按需检索的外部数据库)中。

MemGPT就是这种方法的例证,它实现了一个虚拟内存系统,像传统操作系统一样在有限的上下文窗口(主内存)和外部存储之间分页信息。当上下文窗口填满时,系统会自动将较旧的信息移至外部存储,并仅在需要时检索它,从而在任意长的交互中保持对话的连贯性。

内存增强架构采取了不同的方法,在标准Transformer架构旁边实现了显式的读写内存模块。这些系统既维护参数内存(嵌入在模型权重中的知识),又维护非参数内存(通过学习到的注意力机制可访问的外部存储)。这使它们能够随着时间的推移积累知识,而不需要整个对话历史保留在上下文窗口中。

这个图表说明了具有两个互补内存系统的内存增强架构。左侧,“参数内存”部分显示嵌入在神经网络权重中的知识,由具有学习模式的互连节点表示。右侧,“非参数内存”部分显示具有可动态访问的结构化信息块的外部数据库。在中心,一个“注意力桥”连接着两个系统,显示双向箭头,表明模型既可以从外部内存读取,也可以更新其理解。在主要组件下方,一个时间线显示信息如何流动:即时上下文留在参数内存中以快速访问,而较旧或专门的信息则存储在非参数内存中以高效检索。这个视觉效果展示了内存增强架构如何结合内部知识的速度和外部存储的灵活性。

这个图表说明了具有两个互补内存系统的内存增强架构。左侧,“参数内存”部分显示嵌入在神经网络权重中的知识,由具有学习模式的互连节点表示。右侧,“非参数内存”部分显示具有可动态访问的结构化信息块的外部数据库。在中心,一个“注意力桥”连接着两个系统,显示双向箭头,表明模型既可以从外部内存读取,也可以更新其理解。在主要组件下方,一个时间线显示信息如何流动:即时上下文留在参数内存中以快速访问,而较旧或专门的信息则存储在非参数内存中以高效检索。这个视觉效果展示了内存增强架构如何结合内部知识的速度和外部存储的灵活性。

五、大规模上下文:智能体和多智能体系统

当我们从单个智能体扩展到协作的多智能体系统时,上下文管理的挑战成倍增加,这使得上下文工程比以往任何时候都更加重要。

智能体挑战

即使是单个复杂的智能体也面临着上下文挑战。要成为通用助手,智能体需要许多工具。然而,给智能体太多工具定义会使其上下文窗口不堪重负,反而使其能力下降。此外,智能体自身的推理过程——其内部的思想、行动和观察的独白——非常消耗令牌,并且会迅速填满上下文。

💡 自我纠正滚雪球

像ReAct或推理大型语言模型这样的智能体框架虽然强大,但非常消耗令牌。智能体的内部独白虽然对复杂推理至关重要,但却是上下文增长的主要驱动力。管理这种“思想历史”是构建长期运行的智能体的关键挑战。

多智能体协调问题

如果管理一个智能体的上下文很困难,那么管理多智能体系统就更困难了。没有单一的、共享的上下文窗口;每个智能体都有自己的私有“工作内存”。核心挑战是决定需要在它们之间传递哪些最小的、有重点的信息,以确保它们有效地协同工作。

一种流行的架构使用中央协调者智能体将子任务分配给专门的工作者智能体。这些系统中的主要风险是上下文丢失。如果协调者未能将关键信息传递给工作者——比如告诉写作智能体主题但不告诉字数——整个任务可能会执行错误,导致连锁失败。

这个图表标题为“分布式上下文挑战”,说明了多智能体协调。一个中央“协调者”智能体连接到三个专门的“工作者”智能体。四个智能体中的每一个都显示有自己独立的“上下文窗口(RAM)”框。协调者的工作是在工作者原本孤立的上下文窗口之间传递小的、有针对性的信息包。这个视觉效果突出了没有共享内存,使得协调者作为上下文路由器的角色对于协作至关重要。

这个图表标题为“分布式上下文挑战”,说明了多智能体协调。一个中央“协调者”智能体连接到三个专门的“工作者”智能体。四个智能体中的每一个都显示有自己独立的“上下文窗口(RAM)”框。协调者的工作是在工作者原本孤立的上下文窗口之间传递小的、有针对性的信息包。这个视觉效果突出了没有共享内存,使得协调者作为上下文路由器的角色对于协作至关重要。

先进的协调策略已经出现,以应对这些挑战:

  • 基于事务的协调在多智能体工作流中实现了类似数据库的ACID属性(原子性、一致性、隔离性、持久性)。像SagaLLM这样的系统提供带有补偿机制的事务支持——如果一个智能体失败,系统可以自动回滚先前的步骤并优雅地恢复,防止困扰简单编排方法的连锁失败。

  • 分层内存共享允许智能体既维护私有工作内存,又访问共享内存池。智能体不必通过消息传递所有上下文,而是可以将重要发现写入其他智能体可以在需要时查询的共享内存。

  • 自适应编排超越了静态任务分配,基于对智能体能力和上下文要求的实时评估进行动态协调。系统监控智能体的性能和上下文使用模式,自动调整任务分配和信息流,以优化效率和可靠性。

六、结论和未来考虑

我们必须问:随着模型变得更加强大,上下文工程会变得过时吗?诚实的答案是我们不知道大型语言模型将如何演变。然而,自2017年注意力机制被引入以来,一个技术现实一直保持不变:Transformer架构中输入长度和计算成本之间的二次方依赖关系。

该领域面临的主要问题是,是否有可能在降低输入和计算之间的二次方依赖关系的同时保持相同的输出质量。这一根本挑战引发了对Transformer架构和替代方法的更多实验,但明确的解决方案仍然难以实现。

与此同时,时间和金钱仍然是紧迫的、实际的关注点。处理更多信息将继续需要更多计算,这意味着更高的成本和更慢的响应。精简、有重点的上下文将永远比臃肿的上下文更快、更便宜。

此外,即使是最先进的人工智能也无法逃避计算的一个永恒原则:垃圾进,垃圾出(GIGO)。具有完美记忆的模型与具有完美判断的模型不同。向它输入无关或矛盾的信息仍然会导致不可靠的输出。上下文工程是确保输入不是“垃圾”的学科。

💡 上下文设计是一门实验科学

上下文工程没有灵丹妙药。最佳方法是通过迭代实验找到的。这意味着尝试不同的总结技术,测试指令的位置,并评估RAG策略,看看哪种最适合你的特定用例。强大的评估是关键。

无论未来是否会出现解决二次方缩放问题的突破性架构、结合多种技术的混合方法,或者我们尚未想象到的东西,有一件事似乎是可能的:总会有权衡。我们将继续在能力与成本、速度与质量、复杂性与可靠性之间取得平衡。

上下文工程是巧妙地管理这些权衡的学科。它是设计信息流以创建不仅强大而且高效、稳健和实用的系统的实践。只要我们在构建需要智能且经济地处理信息的人工智能系统,这种技能就会保持其价值。

七、如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

一直在更新,更多的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇

01.大模型风口已至:月薪30K+的AI岗正在批量诞生

在这里插入图片描述

2025年大模型应用呈现爆发式增长,根据工信部最新数据:

国内大模型相关岗位缺口达47万

初级工程师平均薪资28K(数据来源:BOSS直聘报告)

70%企业存在"能用模型不会调优"的痛点

真实案例:某二本机械专业学员,通过4个月系统学习,成功拿到某AI医疗公司大模型优化岗offer,薪资直接翻3倍!

02.如何学习大模型 AI ?

🔥AI取代的不是人类,而是不会用AI的人!麦肯锡最新报告显示:掌握AI工具的从业者生产效率提升47%,薪资溢价达34%!🚀

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

1️⃣ 提示词工程:把ChatGPT从玩具变成生产工具
2️⃣ RAG系统:让大模型精准输出行业知识
3️⃣ 智能体开发:用AutoGPT打造24小时数字员工

📦熬了三个大夜整理的《AI进化工具包》送你:
✔️ 大厂内部LLM落地手册(含58个真实案例)
✔️ 提示词设计模板库(覆盖12大应用场景)
✔️ 私藏学习路径图(0基础到项目实战仅需90天)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐