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