今天我們繼續(xù)剖析 RAG,將為大家大家詳細(xì)介紹 RAG 背后的例如 Embedding、Transformer、BERT、LLM 等技術(shù)的發(fā)展歷程和基本原理,中國(guó)向量數(shù)據(jù)庫(kù)以及它們是如何應(yīng)用的。
01.什么是 Embedding?
Embedding 是將離散的非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為連續(xù)的向量表示的技術(shù)。
在自然語(yǔ)言處理中,Embedding 常常用于將文本數(shù)據(jù)中的單詞、句子或文檔映射為固定長(zhǎng)度的實(shí)數(shù)向量,使得文本數(shù)據(jù)能夠在計(jì)算機(jī)中被更好地處理和理解。通過(guò) Embedding,每個(gè)單詞或句子都可以用一個(gè)實(shí)數(shù)向量來(lái)表示,這個(gè)向量中包含了該單詞或句子的語(yǔ)義信息。這樣,相似的單詞或句子就會(huì)在嵌入空間中被映射為相近的向量,具有相似語(yǔ)義的詞語(yǔ)或句子在向量空間上的距離也會(huì)較近。這使得在進(jìn)行自然語(yǔ)言處理任務(wù)時(shí),可以通過(guò)計(jì)算向量之間的距離或相似度來(lái)進(jìn)行詞語(yǔ)或句子的匹配、分類、聚類等操作。
Word2Vec
Word2Vec 是 2013 年由谷歌提出了一套詞嵌入方法。Word2vec 是 Word Embedding 方式之一,這種方式在 2018 年之前比較主流。Word2Vec 作為詞向量的經(jīng)典算法之一,被廣泛應(yīng)用于各種自然語(yǔ)言處理任務(wù)。它通過(guò)訓(xùn)練語(yǔ)料庫(kù)來(lái)學(xué)習(xí)單詞之間的語(yǔ)義和語(yǔ)法關(guān)系,將單詞映射到高維空間中的稠密向量。Word2Vec 的問(wèn)世開(kāi)創(chuàng)了將單詞轉(zhuǎn)化為向量表示的先河,極大地促進(jìn)了自然語(yǔ)言處理領(lǐng)域的發(fā)展。
Word2vec 模型可用來(lái)映射每個(gè)詞到一個(gè)向量,可用來(lái)表示詞對(duì)詞之間的關(guān)系。下圖是展示一個(gè) 2 維的向量空間的例子(實(shí)際可能是比較高的維度)。
從圖中可以看到,在這個(gè) 2 維空間內(nèi),每個(gè) word 的分布有明顯的特征。比如從 man到 woman,要加上一個(gè)向右上方向的向量,可以認(rèn)為這個(gè)向量是一種“把男性轉(zhuǎn)換到女性的向量”。如果把 king 也加上這個(gè)向量,可以得到 queen 的位置。在圖中可以看到從 Paris 到 France 也有一種像是“從國(guó)家變?yōu)槭锥肌钡慕Y(jié)構(gòu)向量。
這一神奇的現(xiàn)象表明了向量在 embedding 內(nèi)空間并不一是個(gè)雜亂無(wú)章隨意的分布。在哪個(gè)區(qū)域表示哪些類別,區(qū)域和區(qū)域之間的差異,這些都有明顯的特征。這樣可以推出一個(gè)結(jié)論:向量的相似度代表的就是原始數(shù)據(jù)的相似度。所以向量的搜索實(shí)際上代表的就是原始數(shù)據(jù)的語(yǔ)義搜索。這樣,我們就可以用向量搜索來(lái)實(shí)現(xiàn)很多語(yǔ)義相似搜索的業(yè)務(wù)。