大模型面經(jīng)——以醫(yī)療領(lǐng)域為例,整理RAG基礎(chǔ)與實際應(yīng)用中的痛點 原創(chuàng)
?RAG相關(guān)理論知識與經(jīng)驗整理。
談到大模型在各垂直領(lǐng)域中的應(yīng)用,一定離不開RAG,本系列開始分享一些RAG相關(guān)使用經(jīng)驗,可以幫助大家在效果不理想的時候找到方向排查或者優(yōu)化。
本系列以醫(yī)療領(lǐng)域為例,用面試題的形式講解RAG相關(guān)知識,開始RAG系列的分享~
本篇主要是理論知識與經(jīng)驗;后續(xù)會結(jié)合最新的優(yōu)化方法給出詳細的優(yōu)化代碼,和實踐中衍生的思考。
下面是本篇的快捷目錄。
1. RAG思路
2. RAG中的prompt模板
3. 檢索架構(gòu)設(shè)計
一、RAG思路
這里有一張經(jīng)典的圖:
具體步驟是:
- 加載文件
- 讀取文本
- 文本分割
- 文本向量化
- 問句向量化
- 在文本向量中匹配出與問句向量最相似的top k個
- 匹配出的文本作為上下文和問題一起添加到 prompt 中
- 提交給 LLM 生成回答
二、RAG中的prompt模板
已知信息:{context}
根據(jù)上述已知信息,簡潔和專業(yè)的來回答用戶的問題。如果無法從中得到答案,請說 “根據(jù)已知信息無法回答該問題” 或 “沒有提供足夠的相關(guān)信息”,不允許在答案中添加編造成分,答案請使用中文。
問題是:{question}
其中 {context} 就是檢索出來的文檔。
三、檢索架構(gòu)設(shè)計
基于LLM的文檔對話架構(gòu)分為兩部分,先檢索,后推理。重心在檢索(推薦系統(tǒng)),推理一般結(jié)合langchain交給LLM即可。
因此接下來主要是檢索架構(gòu)設(shè)計內(nèi)容。
1. 檢索要求
- 提高召回率
- 能減少無關(guān)信息
- 速度快
2. 檢索邏輯
拿到需要建立檢索庫的文本,將其組織成二級索引,第一級索引是 [關(guān)鍵信息],第二級是 [原始文本],二者一一映射。 [關(guān)鍵信息]用于加快檢索, [原始文本]用于返回給prompt得到結(jié)果。
向量檢索基于關(guān)鍵信息embeddig,參與相似度計算,檢索完成后基于關(guān)鍵信息與原始文本的映射,將原始文本內(nèi)容作為 {context} 返回。
主要架構(gòu)圖如下:
3. 切分與關(guān)鍵信息抽取
關(guān)鍵信息抽取前需要先對拿到的文檔進行切分。
其實文檔切分粒度比較難把控,粒度過小的話跨段落語義信息可能丟失,粒度過大噪聲又太多。因此在切分時主要是按語義切分。
因此拿到文檔先切分再抽取關(guān)鍵信息,可根據(jù)實際情況考慮是否進行文章、段落、句子更細致粒度的關(guān)鍵信息抽取。
下面具體來講講方法和經(jīng)驗:
1)切分
- 基于NLP篇章分析(discourse parsing)工具?
提取出段落之間的主要關(guān)系,把所有包含主從關(guān)系的段落合并成一段。這樣對文章切分完之后保證每一段在說同一件事情。
- 基于BERT中NSP(next sentence prediction)的訓(xùn)練任務(wù)?
基于NSP(next sentence prediction)任務(wù)。設(shè)置相似度閾值t,從前往后依次判斷相鄰兩個段落的相似度分數(shù)是否大于t,如果大于則合并,否則斷開。
2)關(guān)鍵信息抽取
- 直接存儲以標點切分的句子:只適用于向量庫足夠?。z索效率高)且query也比較類似的情況。
- 傳統(tǒng)NLP工具:成分句法分析(constituency parsing)可以提取核心部分(名詞短語、動詞短語……);命名實體識別(NER)可以提取重要實體(貨幣名、人名、企業(yè)名……)。
- 生成關(guān)鍵詞模型:類似于ChatLaw中的keyLLM,,即:訓(xùn)練一個生成關(guān)鍵詞的模型。在醫(yī)療領(lǐng)域中,這個方法是目前比較靠譜且能通用的方法。
參考資料
[1] GitHub - imClumsyPanda/Langchain-Chatchat-dev: Langchain-Chatchat 個人開發(fā)Repo(https://github.com/imClumsyPanda/Langchain-Chatchat-dev)
[2] 基于LLM+向量庫的文檔對話痛點及解決方案 - 知乎 (zhihu.com)(https://zhuanlan.zhihu.com/p/651179780)
[3] LLM+Embedding構(gòu)建問答系統(tǒng)的局限性及優(yōu)化方案 - 知乎 (zhihu.com)(https://zhuanlan.zhihu.com/p/641132245)
?
文轉(zhuǎn)載自公眾號瓦力算法學(xué)研所,作者:喜歡瓦力的卷卷
原文鏈接:??https://mp.weixin.qq.com/s/-YaFjsEPvQQVYYyjxc_DQw???
