前言
在当前信息时代,大型语言模型(Large Language Models, LLMs)的发展速度和影响力日益显著。随着技术进步,我们见证了从基本的 Transformer 架构到更为复杂和高效的模型架构的演进,如混合专家模型(Mixture of Experts, MoE)和检索增强生成(Retrieval-Augmented Generation, RAG)。这些进步不仅推动了人工智能领域的边界,也对理解和应用这些技术提出了新的要求。
详细讲解了大型语言模型中的两大核心技术架构:混合专家模型(MoE)与检索增强生成(RAG)。MoE 部分阐述了其起源、稀疏性设计、负载均衡机制以及与 Transformer 的结合方式,重点分析了 Gshard 的实现策略。RAG 部分涵盖了索引构建、检索匹配、生成响应的完整流程,并深入探讨了检索质量、幻觉、信息过时等常见问题及其改进方案,包括预检索优化、重排序和提示压缩等技术手段。文章旨在帮助读者深入理解大模型的理论基础与工程实践。

在当前信息时代,大型语言模型(Large Language Models, LLMs)的发展速度和影响力日益显著。随着技术进步,我们见证了从基本的 Transformer 架构到更为复杂和高效的模型架构的演进,如混合专家模型(Mixture of Experts, MoE)和检索增强生成(Retrieval-Augmented Generation, RAG)。这些进步不仅推动了人工智能领域的边界,也对理解和应用这些技术提出了新的要求。

随着时间的推移,大模型的研究和应用领域继续迅速发展,促使我们对已有知识的理解进行更新和深化。因此,本课程笔记旨在开源学习的背景下,基于学习成果,进一步讲解和深化对 MoE 和 RAG 内容的理解。这份笔记不仅反映了当前大模型研究的最新动态,也体现了深入学习和掌握这些复杂架构的重要性。
通过本文档,读者将能够获得对 MoE 和 RAG 架构更为深入的理解,掌握它们的设计原理、优势及应用场景。我们希望这份笔记能够为广大学习者提供价值,促进对大模型理论基础知识的深入学习和应用。
混合专家模型创建了一组专家网络,每个输入仅激活一小部分专家。可以将其想象为一个由不同背景专家组成的顾问委员会(例如历史、数学、科学),针对特定问题,系统会选择最合适的几位专家进行回答。
RAG 的核心思想是存储原始数据,给定一个新的输入时,先检索存储库的相关部分,并使用这些信息来辅助预测输出。这类似于开卷考试,根据题目翻阅参考资料,找到相关内容并依此作答,从而减少模型幻觉并提升知识时效性。
MoE 的理念起源于 1991 年的论文《Adaptive Mixture of Local Experts》。考虑到多任务场景下训练同一模型,在某场景更新权重时会影响到模型对其他场景的表现,干扰效应强,会造成学习缓慢和泛化不良。在这种情况下,给定训练样本,如果能够事先知道其对应于哪个子任务,那么可以使用由几个不同的'专家'网络组成的系统以及使用一个门控网络来决定每个训练样本应该使用哪个专家。如果输出不正确,权重变化将定位到所选专家(和门控网络),不会干扰到其他专家在其他情况下的权重。
专家是局部的(对应英文 local),一方面专家之间的权重解耦,另一方面每个专家只处理输入向量空间的一个小局部区域。作者通过对误差函数的巧妙设计,使得给定训练样本,局部专家的目标不会受到其他专家权重的直接影响,但仍存在一些间接耦合。如果采用梯度下降法训练门控网络和局部专家,则系统倾向于每个训练样本只分配一个专家。

在 2010 至 2015 年间,条件计算领域的研究为 MoE 的后续发展做出了显著贡献。条件计算会基于输入 token 动态激活或停用网络组件,在理论上它能够在不增加计算量的情况下显著增加模型容量,但实践中存在重大的算法和性能挑战。面对这些挑战,Shazeer 等人提出引入稀疏门控 MoE 层。
在 MoE 层中有很多专家网络以及一个可训练的门控网络,每个专家都是一个简单的前馈神经网络,门控网络选择专家的稀疏组合来处理每个输入。

基于 Softmax 门控网络,稀疏门控网络的计算中添加了稀疏性以减少计算量,添加了噪声项以有助于负载平衡。具体而言,在 Softmax 之前,添加可调高斯噪声,然后仅保留前 k 个值,其余设置为零。这种机制确保了只有 Top-K 个专家被激活,从而控制了推理时的计算成本。
如果 token 总是被发送到少数几个受欢迎的专家,那么训练效率将会降低,也会导致负载不平衡。一方面,前期表现好的专家会更容易被门控网络选择,导致最终只有少数的几个专家真正起作用,专家不平衡;另一方面,即使保证了专家们的同等重要性,它们可能仍会收到数量非常不同的样本,例如,一位专家可能会收到权重较大的几个样本,而另一位专家可能会收到许多权重较小的样本,这可能会导致分布式设备出现内存和性能问题。Shazeer 等考虑使用辅助损失来缓解这一问题。
对于专家不平衡问题,将'专家相对于一批训练样本的重要性'定义为'该批所有样本的门控值之和',计算此项的变异系数,乘上可手动调整的系数得到辅助损失项,该项附加损失鼓励所有专家都具有同等的重要性。
对于专家接收训练样本数量不同问题,定义平滑估计表示在批量中分配给每个专家的样本数量,可通过该估计反向传播梯度,定义为不为零的概率(给定元素新的噪声随机选择但在其他元素上保留已采样的噪声选择)。
Transformer 是 NLP 领域的大杀器,其前馈层对于每个 token 是独立的。Gshard 将 Transformer 中的原始前馈层转变为 MoE 前馈层,MoE 前馈层每隔一个 block 替换一次 Transformer 前馈层,结构如下图(解码器类似)。我们可以看到,标准 Transformer 的编码器是一堆自注意力层和前馈层,交错着残差连接和层归一化;通过用 MoE 层隔 block 替换前馈层,得到了 MoE Transformer Encoder 的模型结构;当扩展到多个设备时,MoE 层被跨设备分片,而所有其他层都会被复制。

Gshard 使用 top-2 专家近似门控函数,由门控网络计算,每个 token 被分配到至多两个专家,其对应的非零权重。
Top-2 专家近似门控函数逻辑:
设 $P_i$ 为第 $i$ 个专家的概率。在概率为 $p$ 的情况下,选择第二个专家。对于其他专家,概率设为 0。
为保持负载平衡和规模高效,Gshard 还引入如下方法:
基于检索的模型的工作流程通常包含三个步骤:
在大模型时代,RAG 工作流程可简要概括为三个关键步骤:

清洗和提取原始数据,将各种文件格式(如 PDF、HTML、Word 和 Markdown)转换为标准化的纯文本。为适应语言模型的上下文窗口限制,需要将文本分割成更小、更易于管理的块(Chunking)。这些块随后通过嵌入模型(Embedding Model)转换为向量表示。最后,创建索引,将这些文本块及其向量嵌入存储为键值对,从而实现高效且可扩展的搜索功能。常用的向量数据库包括 FAISS、Milvus 等。
在收到用户查询后,使用与索引阶段相同的嵌入模型,将查询转换为向量表示,然后计算查询向量与'索引语料库'中的向量块之间的相似性分数(通常为余弦相似度)。系统会优先处理并检索与查询相似度最高的前 K 个块。这些块随后被用作用户查询的上下文。
查询和选定的文档被合成一个 prompt,输入 LLM 生成回答。在正在进行的对话中,任何现有的对话历史记录都可以集成到 prompt 中,使模型能够有效地进行多轮对话交互。
尽管 RAG 效果显著,但也面临诸多挑战:
针对上述问题,也存在一些改进方案:
优化数据索引,提高被索引内容的质量。这涉及的主要策略有:
在检索阶段,重点是计算查询和索引块之间的相似性来识别上下文。嵌入模型是此过程的核心,可以考虑微调嵌入模型或者使用动态嵌入以适应特定领域的数据分布。
检索到有价值的上下文后,需要将其与查询合并作为 LLM 的输入。一次性向 LLM 提交所有相关文档可能会超出上下文窗口限制、引入噪音并阻碍对关键信息的关注。要解决这些问题,需要对检索到的内容进行额外处理:
随着 RAG 领域的发展和行业需求的不断挖掘,模块化的 RAG 结构提供了更大的多功能性和灵活性。未来的发展方向将更加注重检索与生成的端到端优化,以及多模态数据的融合处理。
MoE 和 RAG 代表了当前大模型架构优化的两个重要方向。MoE 通过稀疏激活机制在保持计算效率的同时扩展了模型容量,适合处理大规模参数需求;RAG 则通过外部知识库的引入解决了大模型的知识截止和幻觉问题,增强了系统的可解释性和准确性。理解这两者的原理及实现细节,对于构建高效、可靠的企业级 AI 应用至关重要。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online