RAG 核心技术解析:Embedding、Transformer 与 LLM 演进
检索增强生成(Retrieval Augmented Generation, RAG)是近年来人工智能领域的重要技术突破。本文将深入剖析 RAG 背后的关键技术,包括 Embedding 向量表示、Transformer 架构、BERT 模型以及大语言模型(LLM)的发展历程,并阐述它们如何协同工作以构建高效的智能系统。

01. Embedding 技术原理
Embedding 是将离散的非结构化数据转换为连续向量表示的技术。在自然语言处理中,它常用于将文本数据中的单词、句子或文档映射为固定长度的实数向量,使得文本数据能够在计算机中被更好地处理和理解。
通过 Embedding,每个单词或句子都可以用一个实数向量来表示,这个向量中包含了该单词或句子的语义信息。这样,相似的单词或句子就会在嵌入空间中被映射为相近的向量,具有相似语义的词语或句子在向量空间上的距离也会较近。这使得在进行自然语言处理任务时,可以通过计算向量之间的距离或相似度来进行词语或句子的匹配、分类、聚类等操作。
Word2Vec 及其局限性
Word2Vec 是 2013 年由谷歌提出的一套词嵌入方法。作为词向量的经典算法之一,它被广泛应用于各种自然语言处理任务。它通过训练语料库来学习单词之间的语义和语法关系,将单词映射到高维空间中的稠密向量。
Word2Vec 模型可用来映射每个词到一个向量,可用来表示词对词之间的关系。例如,从 man到 woman,要加上一个向右上方向的向量,可以认为这个向量是一种'把男性转换到女性的向量'。如果把 king 也加上这个向量,可以得到 queen 的位置。这一神奇的现象表明了向量在 embedding 内空间并不是一整个杂乱无章随意的分布。向量的相似度代表的就是原始数据的相似度,因此向量搜索实际上代表的就是原始数据的语义搜索。
然而,作为一种早期的技术,Word2Vec 也存在一定的局限性:
- 多义词问题:由于词和向量是一对一的关系,所以多义词的问题无法解决。例如
bank在不同语境下含义不同(银行、河岸),但 Word2Vec 只能赋予其单一向量。 - 静态表示:Word2Vec 是一种静态的方式,虽然通用性强,但是无法针对特定任务做动态优化,缺乏上下文感知能力。
Transformer 的变革
为了更好地处理上下文依赖和语义理解,Transformer 模型应运而生。Transformer 是一种基于自注意力机制(self-attention)的神经网络模型,最早在 2017 年由 Google 的研究员提出并应用于自然语言处理任务。
Transformer 能够对输入句子中不同位置的单词关系进行建模,从而更好地捕捉上下文信息。与传统的 CNN(卷积神经网络)和 RNN(循环神经网络)相比,Transformer 可以实现更高效的并行计算,因为自注意力机制使得所有位置的输入都可以同时计算,而 CNN 和 RNN 需要按顺序进行计算。传统的 CNN 和 RNN 在处理长距离依赖关系时会遇到困难,而 Transformer 通过使用自注意力机制可以学习长距离的依赖关系。
Transformer 最初被提出来用于机器翻译任务,并取得了显著的性能提升。这个模型由'编码器(Encoder)'和'解码器(Decoder)'组成,其中编码器将输入语言序列编码为一系列隐藏表示,解码器则将这些隐藏表示解码为目标语言序列。每个编码器和解码器由多层自注意力机制和前馈神经网络组成。
随着大规模预训练模型的出现,通过在大量的无监督数据上训练,预训练模型可以学习到更丰富的语义和语法特征,并在下游任务上进行微调。这些预训练模型包括 BERT(Bidirectional Encoder Representations from Transformers)、GPT(Generative Pre-trained Transformer)等,它们在自然语言处理的各个任务上都取得了巨大的成功。
BERT 和 Sentence Embedding
Transformer 的 Encoder 部分发展为 BERT。BERT 使用了两个阶段的预训练方法,即 MLM(Masked Language Model) 完型填空和 NSP(Next Sentence Prediction)。
- MLM 阶段:让 BERT 预测被遮挡词汇,以帮助它理解整个序列的上下文。

