今天我们继续剖析 RAG,将为大家大家详细介绍 RAG 背后的例如 Embedding、Transformer、BERT、LLM 等技术的发展历程和基本原理,中国向量数据库以及它们是如何应用的。( N3 Y2 C$ y3 k; \0 L
3 |+ O+ {' \! E* N
9 E5 M1 J6 Z0 [# E' d 01.什么是 Embedding?; L& g" H% O6 _" `* q m' x
9 m, r: J' q3 Z$ d: ?
: a# B& Q$ d D Embedding 是将离散的非结构化数据转换为连续的向量表示的技术。
# S, G! h) D) [5 B/ p
0 h+ w6 [6 v( W6 J8 I- k3 k9 ~" q" w) `) M
在自然语言处理中,Embedding 常常用于将文本数据中的单词、句子或文档映射为固定长度的实数向量,使得文本数据能够在计算机中被更好地处理和理解。通过 Embedding,每个单词或句子都可以用一个实数向量来表示,这个向量中包含了该单词或句子的语义信息。这样,相似的单词或句子就会在嵌入空间中被映射为相近的向量,具有相似语义的词语或句子在向量空间上的距离也会较近。这使得在进行自然语言处理任务时,可以通过计算向量之间的距离或相似度来进行词语或句子的匹配、分类、聚类等操作。
5 ~- I, q3 b$ E4 ]+ a# m, r1 \4 u$ v' g# g
# l( W; ?5 E* v+ F* Y; r Word2Vec
( q2 Q# i" ]8 x( x- v3 ^! U6 o# f" I5 b& M3 D* i v7 Q* N
9 a/ _9 a, d8 t8 P% @& z Word2Vec 是 2013 年由谷歌提出了一套词嵌入方法。Word2vec 是 Word Embedding 方式之一,这种方式在 2018 年之前比较主流。Word2Vec 作为词向量的经典算法之一,被广泛应用于各种自然语言处理任务。它通过训练语料库来学习单词之间的语义和语法关系,将单词映射到高维空间中的稠密向量。Word2Vec 的问世开创了将单词转化为向量表示的先河,极大地促进了自然语言处理领域的发展。8 _& Z8 r3 v) Y: ]
; q' i1 C6 a" j; o+ ^; x, J" c
4 w9 s+ o3 a+ b( {! O Word2vec 模型可用来映射每个词到一个向量,可用来表示词对词之间的关系。下图是展示一个 2 维的向量空间的例子(实际可能是比较高的维度)。
! Q5 g. a1 m! p% d- `; f. M. t3 I, a8 g! [" `' C
" x1 T7 ~6 k( T: c 从图中可以看到,在这个 2 维空间内,每个 word 的分布有明显的特征。比如从 man到 woman,要加上一个向右上方向的向量,可以认为这个向量是一种“把男性转换到女性的向量”。如果把 king 也加上这个向量,可以得到 queen 的位置。在图中可以看到从 Paris 到 France 也有一种像是“从国家变为首都”的结构向量。0 K+ E1 L! ?. }5 {5 y! C$ j
3 z5 [7 ^5 {6 O! }) o. B8 Y' ^
1 u: m* A+ C0 _6 d. h N; R 这一神奇的现象表明了向量在 embedding 内空间并不一是个杂乱无章随意的分布。在哪个区域表示哪些类别,区域和区域之间的差异,这些都有明显的特征。这样可以推出一个结论:向量的相似度代表的就是原始数据的相似度。所以向量的搜索实际上代表的就是原始数据的语义搜索。这样,我们就可以用向量搜索来实现很多语义相似搜索的业务。
% Z( r, S& {, q! _ R; e$ f* n7 f5 `8 S1 {' c# ^7 ?7 b
|