一个幽灵,名为幻觉的幽灵,在概率神经网络中游荡。为了对这个幽灵进行神圣的围剿,信奉规模化的一切势力,强化学习和思维链,对齐和微调,RAG和上下文工程,都联合起来了。
我们可以准确的用一个很长的SQL查一张很大的表,但为什么写了那么长的上下文,它就是不准?显然,仅扩展上下文窗口并不能保证在整个长度上实现强推理。我们今天从三个核心因素训练数据位置分布、位置编码限制和注意力计算约束,出发看下RAG与function call是否能成为银弹?
训练数据位置分布
我们经常说的中间过程丢失,如图所示,实际上的原因在于上下文的权重主要集中在头尾,这可以是一个测试并建模的数学过程。其根本原因,要归结到位置偏移权重的计算上。
在基于梯度的训练中,罕见的位置交互仅获得微小更新。直观上,模型主要学习使用邻近上下文预测下一词元,而使用极远距离上下文的实践机会少得多。形式化地,可将训练损失视为位置索引的期望:若超过最大上下文75%的位置概率极小,则这些位置对损失(进而对梯度更新)的贡献可忽略不计。因此模型在长程依赖上始终训练不足,即使其原则上具备该能力。这导致有效上下文长度远小于最大值。实际上,大多数开源LLM的有效上下文最终远低于其训练目标的50%(An et al.)。
具体表现为——模型常无法有效利用完整窗口。
位置编码限制
考虑两个具有正弦编码的位置i和j。它们的点积包含形式为cos((i-j)ω_k)的项,涉及多个频率{ω_k}。当间距|i-j|增大时,这些余弦项快速振荡,并在k上求和时近似抵消。因此,位置对相似度的贡献平均趋近于零:相距较远的位置向量变得几乎正交。
**注意力计算限制:Softmax动力学与内存复杂度**
在注意力头中,关注任一特定词元的概率为softmax(e_ij) = exp(e_ij) / Σₖ₌₁ᴺ exp(e_ik),其中e_ij表示词元i的查询与词元j的键的兼容性。随着N增加,分母因包含众多项而增长(Huang et al., 2023)。若在N-1个无关词元中存在一个相关词元,模型的查询必须为该相关词元分配量级为log N的对数优势,才能维持固定的注意力概率。例如,要在N个词元中将50%的注意力质量集中于一个词元,该词元的得分需比其余词元平均值高约ln(N)。这是陡峭的要求:随着上下文长度增长,模型必须越来越锐化注意力分布以挑选出单个项。若模型对无关词元的得分存在方差,大N会增加某些干扰词元偶然获得较高得分的概率,从而侵蚀真实相关词元的概率。此效应可视为一种组合噪声,意味着在众多键存在时,softmax归一化使得除非模型学会极细粒度、高对比度的评分,否则难以保持对正确项的强信号。实践中,随着上下文变长,注意力倾向于扩散,常分散于多个词元或主要关注最近片段,除非存在非常明显的关键词或线索以聚焦远端上下文(Liu et al., 2023c)。
当存在大量干扰项时,softmax 类似于与无关指数化分数之和的竞争,随着 N 增大,导致相关注意力趋近于 0。要保持恒定的选择概率,就需要相关分数边际以 O(ln N) 的幅度增长——这种压力在相关事实稀疏地嵌入大量填充内容的情况下,通用的训练过程可能无法提供。在包含强且重复线索的基准测试中,实现这个边际很容易;而在没有此类线索的信息密集场景中,随着 N 增加,性能会下降。
注意力的二次内存使用意味着实际实现很难处理非常长的输入。即使模型支持 10 万个 token,对如此多的 token 执行注意力计算也可能达到内存限制,或者需要转储到速度较慢的内存中,这会引入数值精度挑战。此外,在 softmax 中对 10 万个指数化分数求和可能导致极大或极小的值,考验浮点精度的极限 Dao (2023)。Transformer 并行处理所有 token,这意味着每一层都必须在整个序列上重新计算交互。在层数很多时,长距离上出现误差累积或梯度消失的可能性会增加。相比之下,循环过程(如状态空间模型)以迭代方式向前传递信息,这有其自身的挑战(例如,随时间推移的梯度消失),但它使用不同的机制来处理长期依赖。在 Transformer 中,尽管跳跃连接有助于梯度传播,但除了每一层注意力重新分配的信息之外,并没有持久的记忆在 token 之间传递。如果在某个中间层,模型未能将信息从位置 j 传播到位置 i,那么后续层只能通过某些间接路径来恢复它。在上下文非常深的情况下,确保所有需要的长距离链接在堆栈的某处形成并非易事。
RAG也是个打分系统?
检索增强生成已成为通过集成外部知识源来增强大型语言模型的关键范式(Lewis et al., 2020a)。然而,LLM在RAG设置中的性能高度依赖于检索信息的质量和相关性(Gupta et al., 2024)。
研究界在推进RAG系统方面的努力集中在两个基本维度:
(1) 提升检索质量;
(2) 增强LLM对误导性或矛盾性检索的鲁棒性。
这两个轴心决定了RAG管道整体可靠性和事实一致性的核心限制。
尽管检索模块常被视为静态组件,但其质量根本上制约着大型语言模型的下游推理和生成能力。即使是检索精确度或上下文对齐的微小退化,也可能级联导致不连贯或事实不一致的生成结果。为理解这些效应,我们讨论导致检索质量受损进而影响生成的根本问题。
RAG的形式表达,强制了相关性与覆盖度之间的权衡。精确导向的检索器(如稠密双编码器)最大化局部相似度Sim(q,d)以确保高相关性,但常忽略组合推理所需的外围或多跳证据。相反,召回导向的检索器扩展D_r以提升覆盖度,但注入语义弱或冗余的段落,消耗宝贵词元并降低条件上下文的信噪比。
如图所示,检索性能形成一个受约束的表面,独立增加覆盖度或相关性无法保证最优生成质量。可行低成本区域说明词元预算如何固有地限制这两个维度间的可达成平衡。这种张力直接影响P(y|x,D_r),因为过度精确限制推理完整性,而过度覆盖导致上下文稀释和生成漂移。
Function call也不是银弹
其实我们大可抽象的把function call视为另外一种形式的RAG。在推理过程中,无论RAG的输入或是Function call的输入实际上都是对于预训练的一种补充,在这个视角下,均可视为对外部数据的一种检索。但当预训练的权重与外部数据冲突的时候,会发生什么呢?
**注意力即干扰:对无关或误导性上下文的易感性**
在检索增强的LLM中,实现上下文推理的同一机制——多头自注意力——引入了根本脆弱性:易受无关或误导性上下文的干扰。即使检索本身正确。这种注意力-相关性失配系统性地扭曲生成后验,产生自信但错误的推理。
**参数化与检索知识的冲突**
RAG生成在LLM的参数化先验与其检索证据间执行隐式源仲裁。在知识冲突下,其符号决定哪个源占优。由于两者分数均依赖于上下文顺序和证据构成,产生对任一源的不可预测依赖。进而产生四种状态:模型正确/上下文错误、模型错误/上下文正确、两者皆错、两者皆对。
由于LLM通过自注意力融合它们,消歧被隐式委托给注意力权重,而非对p(z | q)的显式决策。若任何重写检索到合理但偏离目标的段落且具有高α_{i,j},即使存在正确证据,模型的后验也会漂向错误解释。
因此,查询模糊性结合未校准的上下文融合导致特征性失败模式:(i) 具有大α的伪重写主导;(ii) 多意图共享可比权重时的相互稀释;(iii) 检索证据冲突但注意力无法区分真伪时的矛盾放大。
由此再次例证了有限资源下LLM性能的底层三元限制。
相关性-覆盖度困境体现有限信息容量:词元预算强制证据的有损压缩。
排序失败反映统计不足:语义漂移随检索广度增加而累积。
对抗性污染利用计算约束:正交增强击败基于相似性的排序。
总结
把信息视为一道光。
SQL是在一个结构化表空间通过指定语法进行查询,简单来说第几行第几列开个洞,让光穿透过去。
上下文工程,在一个预训练 join RAG/function cal/MCP的空间内进行概率查询。不同于简单粗暴的开洞,是放了一个(预训练)光栅,让能够符合概率的光穿透过去。RAG也好,Function call也罢,无非是另一块光栅罢了。
正如上一篇文章的引言:
Transformer神经网络断言,Attention is all you need,但现在这一理论的优美性和明晰性却被名为幻觉乌云笼罩着。幻觉……它的问题是:基于概率神经网络的基本结构,概率判断和梯度训练,幻觉到底是结构性的功能还是可以克服的bug?
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(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 的正确特征了。