今天我们继续剖析 RAG,将为大家大家详细介绍 RAG 背后的例如 Embedding、Transformer、BERT、LLM 等技术的发展历程和基本原理,中国向量数据库以及它们是如何应用的。3 _4 h+ C( ^3 z( G Y
$ E0 ~! x8 R! I9 _/ }' t
, h; k% S: C( J$ e% n y 01.什么是 Embedding?" o1 W; g6 H* Q
0 G! O* n2 s0 p0 [& t
' i4 j5 F% ?6 U3 O+ n
Embedding 是将离散的非结构化数据转换为连续的向量表示的技术。
/ Z# M; s- G$ Q: c |4 o4 ` Y: n f! X l: {+ H3 e& y
9 R D3 G/ p/ {( m0 C* U
在自然语言处理中,Embedding 常常用于将文本数据中的单词、句子或文档映射为固定长度的实数向量,使得文本数据能够在计算机中被更好地处理和理解。通过 Embedding,每个单词或句子都可以用一个实数向量来表示,这个向量中包含了该单词或句子的语义信息。这样,相似的单词或句子就会在嵌入空间中被映射为相近的向量,具有相似语义的词语或句子在向量空间上的距离也会较近。这使得在进行自然语言处理任务时,可以通过计算向量之间的距离或相似度来进行词语或句子的匹配、分类、聚类等操作。
1 T- n& g( o% T6 i5 ^* Q
: F+ |- h+ B3 a' _; O
% ~7 U! C5 }+ _ Word2Vec9 A: h4 W5 d4 I
7 H& ]: v& [) d u' C6 B
- }" C. f, @" o# ~/ I; S/ h8 o Word2Vec 是 2013 年由谷歌提出了一套词嵌入方法。Word2vec 是 Word Embedding 方式之一,这种方式在 2018 年之前比较主流。Word2Vec 作为词向量的经典算法之一,被广泛应用于各种自然语言处理任务。它通过训练语料库来学习单词之间的语义和语法关系,将单词映射到高维空间中的稠密向量。Word2Vec 的问世开创了将单词转化为向量表示的先河,极大地促进了自然语言处理领域的发展。' s2 w( a# P6 T1 Y$ i% N% }
; S% L. u% l; D1 |4 O) a- O" b' u- e/ K$ o6 }) I% _2 o( c0 ^0 }
Word2vec 模型可用来映射每个词到一个向量,可用来表示词对词之间的关系。下图是展示一个 2 维的向量空间的例子(实际可能是比较高的维度)。
, F" O2 B7 K' \" P4 P7 e
, C1 |; f+ N0 _. b+ C" k8 {
& h4 _* K. o. l. F$ d 从图中可以看到,在这个 2 维空间内,每个 word 的分布有明显的特征。比如从 man到 woman,要加上一个向右上方向的向量,可以认为这个向量是一种“把男性转换到女性的向量”。如果把 king 也加上这个向量,可以得到 queen 的位置。在图中可以看到从 Paris 到 France 也有一种像是“从国家变为首都”的结构向量。
4 C$ ~* B& d( M# l6 {2 C
- _% x! y# ^4 O( y- @( o2 S3 i4 J3 T2 o0 i' W! m# T& O/ N5 _) D
这一神奇的现象表明了向量在 embedding 内空间并不一是个杂乱无章随意的分布。在哪个区域表示哪些类别,区域和区域之间的差异,这些都有明显的特征。这样可以推出一个结论:向量的相似度代表的就是原始数据的相似度。所以向量的搜索实际上代表的就是原始数据的语义搜索。这样,我们就可以用向量搜索来实现很多语义相似搜索的业务。
4 F, `3 D! I, ~; t( g# t
5 L# l0 b$ G8 j2 \ g/ ~, @ |