Kernel Memory 入门系列: Embedding 简介
Kernel Memory 入門系列: Embedding 簡介
在 RAG模式 其實(shí)留了一個(gè)問題。
我們對于的用戶問題的理解和文檔的檢索并沒有提供合適的方法。
當(dāng)然我們可以通過相對比較傳統(tǒng)的方法。
例如對用戶的問題進(jìn)行關(guān)鍵詞提取,然后通過關(guān)鍵詞檢索文檔。這樣的話,就需要我們提前對文檔做好相關(guān)關(guān)鍵詞的標(biāo)注,同時(shí)也需要關(guān)鍵詞能夠覆蓋到用戶可能的提出方式以及表達(dá)方法。這樣的話,就需要我們對用戶的問題有一個(gè)很好的預(yù)測。用戶也需要在提問的時(shí)候,能夠按照我們的預(yù)期進(jìn)行提問。我們和用戶雙向猜測,雙向奔赴,如果猜對了,那么就可以得到一個(gè)比較好的結(jié)果。如果猜錯了,結(jié)果難以想象。
那么有沒有一種方法,能夠讓我們不需要對用戶的問題進(jìn)行預(yù)測,也不需要對文檔進(jìn)行關(guān)鍵詞標(biāo)注,就能夠得到一個(gè)比較好的結(jié)果呢?
這個(gè)答案就是 Embedding。
Embedding 是什么
Embedding 是一種將高維數(shù)據(jù)映射到低維空間的方法。在這個(gè)低維空間中,數(shù)據(jù)的相似性和原始空間中的相似性是一致的。這樣的話,我們就可以通過低維空間中的相似性來進(jìn)行檢索。
通俗的理解,大語言模型基于大量的文本數(shù)據(jù)進(jìn)行訓(xùn)練,得到了一個(gè)高維的向量空間,我們可以認(rèn)為這是一個(gè)語義的空間。在這個(gè)語義空間中,每一個(gè)詞或者每個(gè)句子都有一個(gè)對應(yīng)的空間坐標(biāo)。雖然這個(gè)坐標(biāo)系的維度是非常高的,起碼都是上百甚至上千的維度,但是我們?nèi)钥梢韵胂笤诙S或者三維空間中的點(diǎn)去理解這個(gè)坐標(biāo)。
然后,我們就可以通過這個(gè)向量來判斷兩段文字是否相似。如果兩段文字的向量越接近,那么這兩個(gè)詞的語義就越接近。例如,貓 和 狗 的向量就會比 貓 和 蘋果 的向量更加接近。
這個(gè)空間坐標(biāo)和模型的關(guān)系更加密切,模型越強(qiáng)大,對于語義的理解越深刻,那么這個(gè)空間坐標(biāo)的效果就越好。所以,尋找或者訓(xùn)練一個(gè)好的Embedding模型對于實(shí)現(xiàn)一個(gè)好的檢索系統(tǒng)是非常重要的。
使用Embedding進(jìn)行匹配
有了Embedding的結(jié)果之后,我們就可以看如何使用Embedding進(jìn)行匹配了。
首先我們需要對用戶的提問和我們的文本進(jìn)行Embedding,得到對應(yīng)的向量。
通過計(jì)算問題的向量與文本的向量的相似性,通常是余弦相似度計(jì)算,我們就可以得到一個(gè)排序的結(jié)果。這個(gè)排序的結(jié)果就是我們的檢索結(jié)果。
根據(jù)實(shí)際模型的表現(xiàn),選擇合適的相似度閾值,然后就可以找到最為相似的內(nèi)容了。
參考
- 嵌入基礎(chǔ)知識
- What are Embeddings?
總結(jié)
以上是生活随笔為你收集整理的Kernel Memory 入门系列: Embedding 简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 真我618最高直降800元!&ldquo
- 下一篇: 今晚20点 京东618预售狂欢开启:定