今天我们继续剖析 RAG,将为大家大家详细介绍 RAG 背后的例如 Embedding、Transformer、BERT、LLM 等技术的发展历程和基本原理,中国向量数据库以及它们是如何应用的。: W8 t0 x' A: ]% k6 D
! e- O0 ~$ v- z; `2 R
9 w' V+ T. g3 T& d1 y* s2 l 01.什么是 Embedding?. C, m4 U6 d& D0 {1 c c% K
9 y5 I5 H2 k; z1 y2 v
$ ^; R4 U% `* I' u0 i$ j( _0 e" S0 u* ~ Embedding 是将离散的非结构化数据转换为连续的向量表示的技术。; X. p1 J/ X0 L: Y4 Z" s
0 v/ B' e" N. }$ C) k
: m+ @: Z( d; j6 f$ @4 G 在自然语言处理中,Embedding 常常用于将文本数据中的单词、句子或文档映射为固定长度的实数向量,使得文本数据能够在计算机中被更好地处理和理解。通过 Embedding,每个单词或句子都可以用一个实数向量来表示,这个向量中包含了该单词或句子的语义信息。这样,相似的单词或句子就会在嵌入空间中被映射为相近的向量,具有相似语义的词语或句子在向量空间上的距离也会较近。这使得在进行自然语言处理任务时,可以通过计算向量之间的距离或相似度来进行词语或句子的匹配、分类、聚类等操作。) b; I$ [; s( R, l$ O {
5 U; M5 ]" M) Z: J0 j8 A
$ F2 S3 }; ?- S+ r7 Z
Word2Vec
4 l" u- ^ H( c& S5 Y4 N, L7 D/ K
. M1 w+ N( h2 `7 t$ h9 M1 ~, d+ i+ c N- a/ q2 Y
Word2Vec 是 2013 年由谷歌提出了一套词嵌入方法。Word2vec 是 Word Embedding 方式之一,这种方式在 2018 年之前比较主流。Word2Vec 作为词向量的经典算法之一,被广泛应用于各种自然语言处理任务。它通过训练语料库来学习单词之间的语义和语法关系,将单词映射到高维空间中的稠密向量。Word2Vec 的问世开创了将单词转化为向量表示的先河,极大地促进了自然语言处理领域的发展。4 N! m& c* f' @' H* n
4 V/ F. M: X, I4 m+ J
' h! o g; }, G; F0 @; p Word2vec 模型可用来映射每个词到一个向量,可用来表示词对词之间的关系。下图是展示一个 2 维的向量空间的例子(实际可能是比较高的维度)。
6 n* K" R7 f- {' y, F' ]/ M: E. t# V2 k2 D5 u
& }; h8 y4 Y; B- c 从图中可以看到,在这个 2 维空间内,每个 word 的分布有明显的特征。比如从 man到 woman,要加上一个向右上方向的向量,可以认为这个向量是一种“把男性转换到女性的向量”。如果把 king 也加上这个向量,可以得到 queen 的位置。在图中可以看到从 Paris 到 France 也有一种像是“从国家变为首都”的结构向量。
4 b* ~, Y' q* n0 W4 L) ?4 P5 w& K6 T3 z3 n) I+ [* u7 v) [. W2 R: E
9 j2 E9 P8 B5 L `4 S
这一神奇的现象表明了向量在 embedding 内空间并不一是个杂乱无章随意的分布。在哪个区域表示哪些类别,区域和区域之间的差异,这些都有明显的特征。这样可以推出一个结论:向量的相似度代表的就是原始数据的相似度。所以向量的搜索实际上代表的就是原始数据的语义搜索。这样,我们就可以用向量搜索来实现很多语义相似搜索的业务。3 G( W' L# _ h9 B, Y4 p9 P
* U' }% }5 \& j; z1 y& F
|