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

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

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

基于 Softmax 门控网络,稀疏门控网络的计算中添加了稀疏性以减少计算量,添加了噪声项以有助于负载平衡。具体而言,在 Softmax 之前,添加可调高斯噪声,然后仅保留前 k 个值,其余设置为零。这种机制确保了只有 Top-K 个专家被激活,从而控制了推理时的计算成本。



