RAG(檢索增強生成)

上一篇文章介紹了LLM,LLM的知識僅限于其所訓練的數(shù)據(jù)。想讓LLM了解特定領域的知識或?qū)S袛?shù)據(jù)需要進行特定的處理,目前有三種方式:

1、RAG

2、使用私有數(shù)據(jù)對LLM進行微調(diào)(Fine-Tuning)

3、將以上二者結(jié)合

今天這篇文章先介紹RAG

RAG:是一種將數(shù)據(jù)發(fā)送給LLM之前從數(shù)據(jù)中找出相關信息并將其注入Prompt的方法。這樣LLM將獲得相關信息,并能夠使用這些信息進行回復(降低幻覺的可能性)

可以使用的信息檢索方式有很多,最流行的方式無非就是以下三種:

1、全文(關鍵詞)搜索。此方法使用TF-IDF和BM25等技術,通過將查詢中的關鍵字(例如:輸入內(nèi)容)與文檔數(shù)據(jù)庫進行匹配來搜索文檔。它根據(jù)文檔中這些關鍵詞的頻率和相關性對結(jié)果進行排名

2、向量搜索。又稱語義搜索。實用嵌入模型將文本文檔轉(zhuǎn)換為數(shù)字向量。然后根據(jù)查詢向量和文檔向量之間的余弦相似度或 其他相似度/距離度量 來查找和排序文檔,從而捕獲更深層的語義含義

3、混合。結(jié)合多種搜索方式(例如:全文搜索+向量搜索),可以提高搜索的有效性

了解了以上知識后,接下來詳細介紹下RAG的實用流程

RAG的流程分為兩個階段:索引和檢索

索引階段,對文檔進行預處理,以便在檢索階段進行有效搜索。

索引過程可能因使用的信息檢索方法而異。

對于向量搜索,通常涉及清理文檔、用其他數(shù)據(jù)和元數(shù)據(jù)豐富文檔、將其拆分成為較小的片段(分塊)、嵌入這些片段、存儲在嵌入存儲(向量數(shù)據(jù)庫)。

索引階段通常離線進行,并不需要最終用戶等待其完成。如果用戶希望上傳其自定義文檔,以便LLM能夠訪問他們,在這種情況下索引應在線執(zhí)行并成為主要應用程序的一部分。

索引階段簡化圖

檢索階段通常在線發(fā)生,當用戶提交需要使用索引文檔來回答的問題時。

此過程因使用的信息檢索方法而異。對于向量搜索,通常涉及嵌入用戶的查詢并在嵌入存儲(向量數(shù)據(jù)庫)執(zhí)行相似性搜索,然后將相關片段(原始文檔的片段)注入Prompt并發(fā)送到LLM

檢索階段簡化圖
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容