2023年大模型(LLM)火了以后,很多人用它來寫文章、寫文案、寫總結,生成圖片、極大地提高了工作效率。
但是用得多了以后就發(fā)現(xiàn),這大模型還有很多缺陷的,它的訓練數據通常滯后,新的東西它根本不知道,由于訓練一次時間很長,成本很高,知識也很難更新。在高度專業(yè)化的領域,缺乏領域深度,并且可能會生成錯誤的回答。
01
RAG
為了解決大模型的這些問題,RAG(Retrieval-Augmented Generation)被提了出來。
RAG的想法很簡單,把傳統(tǒng)檢索和生成模型做結合,用戶在使用之前,先建立一個知識庫,把專業(yè)領域知識“向量化”以后,存到向量庫中。
當用戶提出以后,RAG先利用檢索模塊從知識庫中查找與輸入問題或上下文相關的內容,然后將檢索到的信息與原始輸入一起提供給大模型,最后大模型再進行生成輸出。
RAG通過檢索模塊訪問外部知識庫,突破生成模型的參數規(guī)模限制,提供最新且廣泛的知識。還能夠追蹤回答的來源,增強結果的可信度,知識更新也很方便。
所以RAG在智能客服,法律問答、學術問答等領域中非常好用。
02
RAG的痛點
但是RAG在工作的時候,需要用傳統(tǒng)的方法來檢索知識庫,從中檢索出來的很可能是“難負樣本”(Hard Negative Samples),什么是難負樣本呢?
舉個例子,假設你正在訓練一個貓和狗分類模型:
?正樣本:貓的圖片。
?負樣本:不是貓的圖片,比如狗、鳥、汽車等。
?普通負樣本:一輛汽車的圖片,與貓完全無關。
?難負樣本:一只小貓形狀類似的狗(比如有貓的毛色特征)
簡單來說,難負樣本就是和正樣本非常相似的負樣本,它們看起來與目標類別接近,實際上屬于錯誤類別。
RAG的檢索模塊是利用傳統(tǒng)檢索去訪問知識庫的,這時候很有可能會把“難負樣本”給檢索出來,然后輸入給大模型生成回答,大模型分不清真假,基于“難負樣本”進行回答,不但無法生成正確答案,反而會被誤導,導致回答質量下降,甚至引入“幻覺”現(xiàn)象。
RAG這么好的增強技術,難道就因為“難負樣本”給搞壞了嗎?能不能在檢索結果中把“難負樣本”給剔除出去?
03
阿里云百煉:RAG全新升級
最近我發(fā)現(xiàn)阿里巴巴的百煉平臺對RAG框架做了升級,有效地解決了“幻覺”問題。
通常情況下,在對知識庫進行搜索的時候,是根據文本相似度的閾值來進行判定的,例如下面的例子,閾值是0.4,chunk1和chunk2高于0.4,那就作為搜索結果返回了。chunk3的相似度是0.3,低于閾值,就被丟棄了。
最終,chunk1和chunk2再加上用戶的問題被發(fā)給大模型。
這種根據文本相似度判斷的方法速度比較快,但是準確一般,還有可能產生“難負樣本”,在大模型那里產生幻覺。
阿里云的百煉平臺則在相似度的基礎上,引入了“拒識模塊”,系統(tǒng)首先通過相似度閾值篩選出初步的搜索結果,然后利用大模型對這些結果進行深入分析,判斷它們與用戶查詢的關聯(lián)程度。
比如下圖,根據相似度閾值,chunk1和chunk2已經被取出,但是通過大模型的分析以后,發(fā)現(xiàn)chunk1和用戶的查詢沒有關聯(lián),就被拋棄了。
最終,只有chunk1加上用戶的查詢發(fā)給了大模型來生成答案,由于信息關聯(lián)性極高,幻覺就被消除了。
通過這一機制,大模型在生成回答前,能夠先對候選信息進行一次全面的“質量檢查”,確保所有用于生成的信息都是高度相關且可靠的。
從具體實現(xiàn)上來說,“拒識模塊“包括了三個重點的組成部分:
1. 復雜的指令系統(tǒng)
既然要使用大模型來判斷檢索結果與用戶問題的相關度,那必然要有一套指令系統(tǒng)來告訴大模型怎么處理,例如告訴大模型:檢索結果中涉及的實體與用戶問題中的實體要完全一致啊,否則就認為不相關。
2. 大模型調用
調用大語言模型,得到每條檢索文檔的相關性判斷。
3. 后處理
根據大模型輸出的相關性結果,過濾掉那些不相關的檢索文檔。如果相關文檔列表為空,則直接返回無答案,避免大語言模型產生幻覺答案。
04
使用全新的RAG
“拒識模塊”的處理過程聽起來非常復雜,但是是阿里云百煉平臺上,已經把整個過程都封裝好了,用戶只需點幾下按鈕就可以啟用這個強大的功能。
在阿里云百煉平臺上,選擇創(chuàng)建一個RAG應用:
例如我創(chuàng)建RAG應用叫做“碼農翻身張大胖”,目的是把我公眾號的文章建立一個知識庫,讓這個智能體應用去檢索,回答用戶提出的問題。
這里要打開“知識庫檢索增強”,把我的文章傳上去,讓檢索模塊去搜索。
然后重點進行“檢索配置”,進行“回答范圍設定”,選擇“搜索閾值+大模型判斷”就可以了,剩下的就不用管了。
接下來,就可以向這個RAG應用發(fā)問了:
05
總結
阿里云百煉集成了200多款大模型的API,涵蓋通義千問、Llama、ChatGLM等國內外主流模型,可以直接調用模型進行推理,其中通義千問的QPS和TPM基本拉滿,可提升到500萬,完全可以滿足高并發(fā)場景的需求。
如果你想訓練自己的模型,百煉也提供從數據管理、模型調優(yōu)、評測到部署的全鏈路模型服務,用戶可彈性按需調用算力,無需關心底層架構。
在百煉平臺上,還可以輕松地創(chuàng)建RAG應用,一鍵開啟知識檢索增強(RAG),建立知識庫,在檢索配置上,通過“搜索閾值+大模型判斷”的方式,更好地解決了大模型幻覺問題,讓大模型在復雜場景下的應用開辟了新的可能性,進一步推動了人工智能技術的發(fā)展和應用。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.