360視角:大模型幻覺問題及其解決方案的深度探索與實(shí)踐
一、什么是大模型幻覺問題
1. 什么是大模型幻覺
首先介紹一下什么是大模型的幻覺。
在某些情況下,我們在使用大模型生成結(jié)果時,會有一個直觀的感受,就是“一本正經(jīng)的胡說八道”。
- 一本正經(jīng):生成結(jié)果流暢、困惑度 PPL 低、有邏輯性。
- 胡說八道:存在兩種定義①內(nèi)容與人類認(rèn)知不一致;②內(nèi)容不可證偽。
這里給出一些大模型生成結(jié)果的例子,大家可以思考這些問題是否屬于大模型的幻覺問題,以及我們是否真的要解決這些問題。
從學(xué)術(shù)界的共識來看,大模型的幻覺可以分成兩大類:
- 事實(shí)性的幻覺:包括事實(shí)不一致和捏造事實(shí)兩類。
- 忠實(shí)性的幻覺:包括不遵循指令和不遵循上下文兩類。
如何在業(yè)務(wù)工作中,對大模型幻覺進(jìn)行具體分類,可以參考流程圖。
- 首先關(guān)注用戶指令和上下文,如果沒有遵循指令,則是不遵循指令的忠實(shí)性幻覺,如果沒有遵循上下文,則是不遵循上下文的忠實(shí)性幻覺。
- 其次,關(guān)注回復(fù)內(nèi)容,如果回復(fù)內(nèi)容正確,則正常,如果回復(fù)錯誤,則需要進(jìn)一步看錯誤類型。
- 最后,回復(fù)錯誤類型包括知識類的捏造事實(shí),計算、代碼類的事實(shí)不一致,以及推理過程中的邏輯不一致等。
2. 大模型幻覺問題產(chǎn)生的原因
上節(jié)介紹了大模型幻覺的定義和分類,接下來介紹大模型幻覺問題產(chǎn)生的原因,共有三大類。
- 數(shù)據(jù)
- 算法和訓(xùn)練
- 推理
(1)數(shù)據(jù)導(dǎo)致的幻覺問題
以知識邊界為例,如果大模型未學(xué)習(xí)到該領(lǐng)域的知識,或者雖然學(xué)習(xí)到了,但是知識過時,或者是知識生產(chǎn)時間晚于模型數(shù)據(jù)生產(chǎn)時間等情況,均會導(dǎo)致大模型由于數(shù)據(jù)問題出現(xiàn)幻覺。
(2)數(shù)據(jù)采樣過程導(dǎo)致的模型幻覺
一種情況是數(shù)據(jù)采樣的知識捷徑。最近的研究表明,LLMs 往往依賴于捷徑,而不是真正理解事實(shí)知識的細(xì)節(jié)。它們傾向于過度依賴預(yù)訓(xùn)練數(shù)據(jù)中的共現(xiàn)統(tǒng)計、共現(xiàn)頻率和相關(guān)文檔計數(shù),這可能會引入對虛假相關(guān)性的偏見,如果這種偏見反映了事實(shí)上不正確的信息,可能會導(dǎo)致幻覺。長尾知識以其在預(yù)訓(xùn)練數(shù)據(jù)中的相對罕見性為特征,對 LLMs 構(gòu)成了固有的挑戰(zhàn),它們主要依賴于共現(xiàn)模式來記憶事實(shí)知識。因此,當(dāng)面臨涉及這種長尾知識的查詢時,LLMs 在生成事實(shí)上不準(zhǔn)確的回答方面存在較高的風(fēng)險。
(3)預(yù)訓(xùn)練過程導(dǎo)致的模型幻覺
一方面,可能受限于 Decoder-Only 架構(gòu),以及注意力機(jī)制的缺陷。大模型基于前一個標(biāo)記預(yù)測下一個標(biāo)記,僅從左到右。這種單向建模雖然促進(jìn)了高效的訓(xùn)練,但也存在局限性。它僅利用單一方向的上下文,這阻礙了捕捉復(fù)雜的上下文依賴關(guān)系,可能增加幻覺的風(fēng)險。self attention 模塊在捕獲長距離依賴關(guān)系方面表現(xiàn)出色。然而最近的研究表明,它們偶爾在算法推理的背景下表現(xiàn)出不可預(yù)測的推理錯誤,無論是長距離還是短距離依賴關(guān)系,無論模型規(guī)模大小。一個可能的原因是 soft attention 的局限性,隨著序列長度的增加,注意力在各個位置之間變得稀釋。
另一方面是曝光偏差的問題。這是由于自回歸生成模型的訓(xùn)練和推理之間的差異造成的。在訓(xùn)練過程中,這些模型通常采用最大似然估計(MLE)的訓(xùn)練策略,其中真實(shí)標(biāo)記作為輸入提供。然而,在推理過程中,模型依賴于自己生成的標(biāo)記進(jìn)行后續(xù)預(yù)測。這種不一致性可能導(dǎo)致幻覺,尤其是當(dāng)模型生成的錯誤標(biāo)記在后續(xù)序列中引發(fā)錯誤級聯(lián)時。
此外,微調(diào)對齊也會導(dǎo)致幻覺問題,大模型在預(yù)訓(xùn)練期間建立了固有的能力邊界,當(dāng)在微調(diào)數(shù)據(jù)中包含了預(yù)訓(xùn)練階段未見過的新知識時,大模型被訓(xùn)練為生成超出自身知識邊界的內(nèi)容,增加了幻覺的風(fēng)險。在模型對齊階段,大模型也可能會產(chǎn)生諂媚的行為,其回應(yīng)更傾向于用戶的觀點(diǎn),而不是提供正確或真實(shí)的答案,這也會增加大模型幻覺現(xiàn)象。
推理階段同樣可能導(dǎo)致幻覺問題。一方面,temperature、top k、top b 等技術(shù)來引入隨機(jī)性,可能導(dǎo)致幻覺。另一方面,長文本時,更多關(guān)注局部 attention,缺少全局信息關(guān)注,導(dǎo)致忘記指令或指令不遵循等情況,從而產(chǎn)生幻覺。此外,由于模型最后,經(jīng)過一系列注意力機(jī)制和計算后,最后 output 層會做一次 Softmax 生成最終的預(yù)測概率,然而,基于 Softmax 的語言模型的有效性受到 Softmax Bottleneck 這一已知限制的阻礙,其中 Softmax 與 embedding 的結(jié)合限制了輸出概率分布的表達(dá)能力,阻止了語言模型輸出期望的分布,從而導(dǎo)致了幻覺問題。
3. 如何檢測大模型幻覺
上文介紹了大模型幻覺問題的產(chǎn)生原因,接下來介紹大模型幻覺問題的檢測。
(1)按照知識的確定性劃分類別
首先,判斷用戶問題是否可以回答,即問題是否客觀、真實(shí)、確定性。例如主觀問題、哲學(xué)類問題、科學(xué)想象問題、尚未形成科學(xué)共識的問題等,如果希望模型給出確定性答案,大概率是存在問題的。當(dāng)然,對這種問題,有一個討巧的辦法,讓生成結(jié)果更符合人類偏好,對于主觀問題,給出多種可能答案。
其次,當(dāng)排除掉非確定性答案的問題后,對于有確定答案的問題,從大模型對知識掌握的認(rèn)知層面看,又可以分成如下幾類:
- 大模型知道自己知道知識
- 大模型不知道自己知道知識
- 大模型不知道自己不知道知識
- 大模型知道自己不知道知識
針對于前兩類,并不影響回答正確性。
針對于后兩類,大模型本身的回答存在幻覺,是我們重點(diǎn)關(guān)注的問題。
(2)針對不可回答類問題的檢測思路
此處列舉了 2 個工作。TruthfulQA 評測集,使用人類經(jīng)常回答錯誤的問題來構(gòu)建測試集 benchmark,以評估大模型的幻覺能力或者程度。
另一個工作是收集不可回答的問題,通過語義相似度方法,構(gòu)建語義類似的但是可以回答的問題。利用二元分類器,判斷模型的幻覺程度。
(3)如何檢測“大模型知道自己不知道”
是否可以讓大模型知道自己在“胡說八道”呢?可以利用語義熵的思路。有兩種方法。
第一種方法,通過讓模型多次回答同一個問題,觀察模型回復(fù)的一致性。通過對模型多次回答的結(jié)果進(jìn)行語義聚類,如果聚類結(jié)果比較分散,可能表明模型的回答存在幻覺。注意,即使模型多次給出了相同的回答,也不能直接判斷其為正確答案,因為模型有可能穩(wěn)定的回復(fù)錯誤答案,這需要與已知事實(shí)或?qū)I(yè)知識進(jìn)行對比驗證。
第二種方法,讓模型對同一個問題生成多個回答,檢查這些回答之間是否相互支持,即一個回答是否可以作為另一個回答的證據(jù)或補(bǔ)充。如果在這些回答中發(fā)現(xiàn)相互矛盾或沖突的信息,這可能是模型產(chǎn)生幻覺的跡象。如果所有回答都相互一致且沒有沖突,這可能表明模型的回答是可靠的。同樣注意,即使回答一致,需要將模型的回答與已知的事實(shí)、數(shù)據(jù)或其他可靠的信息源進(jìn)行對比,以驗證其真實(shí)性。
(4)如何檢測“大模型不知道自己不知道”
對于這種情況,可以引入外部工具來檢測幻覺,比如搜索引擎、代碼解釋器等。
針對大模型輸出的結(jié)果,抽取事實(shí)或者觀點(diǎn) claims,用事實(shí)或觀點(diǎn)再用大模型去生成問題,用生成的問題去搜索引擎、代碼解釋器等工具收集證據(jù),將收集的證據(jù)與大模型輸出對比,判斷是否有沖突。如果存在沖突,則可能存在幻覺。
此外,還有一個技巧,參考人類撒謊的情況,撒謊時候?qū)τ诩?xì)節(jié)問題是很容易出現(xiàn)錯誤或者沖突,一個謊言往往需要更多的謊言來掩蓋。我們在生成問題的過程中,可以利用不斷追問的方式來生成,有利于判斷大模型是否存在幻覺。
二、360 可信大模型的幻覺解決方案
1. 在數(shù)據(jù)、算法、推理階段,緩解大模型幻覺問題
綜上來看,大模型幻覺產(chǎn)生的各類問題都有相應(yīng)的緩解方案,在實(shí)際工作過程中,根據(jù)不同問題可以利用不同解決辦法,包括預(yù)訓(xùn)練、微調(diào)、對齊、解碼策略、RAG、知識編輯等技術(shù)。
2. 使用 RAG 緩解大模型幻覺
(1)RAG 工作流程
利用預(yù)訓(xùn)練階段優(yōu)化方法去解決幻覺問題成本較高,可以考慮利用 RAG 和知識庫的方法來緩解大模型幻覺。
首先,對于用戶輸入進(jìn)行預(yù)處理工作。
然后,進(jìn)入語義路由判斷問題類別,對于創(chuàng)意性任務(wù)例如寫小說,則無需考慮幻覺問題,因此這類任務(wù)偏好多樣性和創(chuàng)意性。
對于事實(shí)性、政治性、嚴(yán)肅性問題,需要通過特定的知識庫,進(jìn)行知識增強(qiáng),進(jìn)一步生成答案。生成的答案依然可能存在幻覺問題,需要分類器判斷是否存在幻覺,如果有再進(jìn)一步緩解。
最后,為了判斷回答是否與任務(wù)相關(guān),如果大模型回答沒有解決用戶問題,則需要新一輪的迭代處理策略。
(2)RAG 技術(shù)架構(gòu)
這是一個比較詳細(xì)的 RAG 技術(shù)架構(gòu)圖,主要包括 query 分析、建索引、搜索排序、上下文選擇、推理等階段。
Query 預(yù)處理,包括query 擴(kuò)展、query transformation、query routing 語義路由等模塊。
對于檢索模塊,需要根據(jù)不同的數(shù)據(jù)類型使用不同的檢索技術(shù)。比如結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù),公開數(shù)據(jù)、私域數(shù)據(jù)等。對于非結(jié)構(gòu)數(shù)據(jù)和半結(jié)構(gòu)化數(shù)據(jù),可以通過文檔解析、切片、embedding 向量化后,通過向量檢索引擎進(jìn)行索引。對于結(jié)構(gòu)化數(shù)據(jù),可以使用關(guān)系型數(shù)據(jù)庫、圖數(shù)據(jù)庫等進(jìn)行建模;
最后,對于不同的索引數(shù)據(jù)類型,使用不同的 query 查詢技術(shù)進(jìn)行混合建設(shè),比如關(guān)鍵詞搜索、基于 embedding 的語義相似度檢索、text 轉(zhuǎn) SQL 后的結(jié)構(gòu)化查詢、text 轉(zhuǎn) graphSQL 的 N 元組查詢等,對于查詢結(jié)果進(jìn)行重排序,將重排序后的結(jié)果給到大模型作為上下文信息,由大模型進(jìn)行推理。
3. query 預(yù)處理
(1)sub-query
對于某些問題,本身需要多步推理,可以先針對這些問題,通過大模型,基于少量示例(fewshot)學(xué)習(xí)或者特定任務(wù)微調(diào)(SFT),生成一系列子查詢,從而引導(dǎo)大模型一步一步針對性回復(fù),在我們實(shí)際的工作中能夠得到比較好的收益。
(2)Text2SQL
Text2SQL 在智能 BI 場景里也在落地。目前,對于簡單的 SQL 效果還可以,但是聯(lián)表等復(fù)雜查詢效果還有進(jìn)一步提升空間。在實(shí)際業(yè)務(wù)中,可以通過減少聯(lián)表查詢的策略來提升相應(yīng)的效果,比如創(chuàng)建一個大寬表(wide table)。
text2sql 技術(shù)包括3 個階段,預(yù)處理、sql 語句生成、后處理。通過 schema linking 技術(shù),結(jié)合 Few-shot 學(xué)習(xí)方法或者 SFT 技術(shù),讓模型快速學(xué)習(xí)如何根據(jù)特定的 schema 生成 SQL 語句。生成的 SQL 語句,可能存在錯誤,因此需要通過后處理階段來進(jìn)一步修正。一方面可以通過調(diào)用多個大型語言模型來生成 SQL 語句,通過多模型投票的策略提高查詢的準(zhǔn)確性和可靠性,也可以通過對單個模型多次生成具有不同溫度參數(shù)(temperature)的查詢結(jié)果,增加結(jié)果的多樣性,然后通過一致性投票技術(shù)來選擇最終的輸出結(jié)果。
4. 文件解析
用戶可能上傳 PDF 文檔、word 文檔、FAQ 數(shù)據(jù)等結(jié)構(gòu)化、半結(jié)構(gòu)化的數(shù)據(jù)。對于 PDF,不僅是文字,還涉及表格、公式、圖表等,都需要解析,這里涉及版面識別的工作。
識別區(qū)域后需要進(jìn)一步處理。對于表格,需要使用圖像處理 OCR 的方法,對表頭、列、元素等進(jìn)行定位和提取。
同時,我們需要對文檔中的公式進(jìn)行識別和解析,并建立索引,以幫助提升搜索結(jié)果的準(zhǔn)確性。
5. 數(shù)據(jù)增強(qiáng)
對于解析后得到的文本數(shù)據(jù),可以通過數(shù)據(jù)增強(qiáng)技術(shù)來幫助進(jìn)一步提升搜索效果。Self-QA 這項工作針對于文檔讓大模型生成多個問題,然后將問題和原始文檔給到大模型,讓大模型生成答案,從而構(gòu)造了<question, answer>的 pair 對,形成了 FAQ 庫。后續(xù)在檢索時,不只是對原始的 document 做索引,還可以對 FAQ 做索引。此外,還可以進(jìn)一步對 FAQ 庫進(jìn)行數(shù)據(jù)增強(qiáng),比如對 question 通過大模型構(gòu)造相似問,或者對 answer 進(jìn)行 summarize 后,讓大模型生成 question 等。這種方式還有一個好處,后續(xù)可以將 badcase 的維護(hù)工作交由產(chǎn)品運(yùn)營同學(xué)來完成。
對于圖片數(shù)據(jù),可以使用 LLaVA 等模型通過圖像描述(image captioning)技術(shù),將圖片轉(zhuǎn)成文本描述進(jìn)行索引召回。在索引的時候,需要在索引的 meta 字段記錄圖像和文本描述的鏈接關(guān)系,大模型輸出時,可以通過證據(jù)溯源技術(shù),把原始圖像引用出來。
我們在實(shí)際業(yè)務(wù)中,經(jīng)常會遇到一些 bad case,比如對文檔進(jìn)行總結(jié)摘要,這種場景使用傳統(tǒng)的 RAG 技術(shù)無法得到很好的滿足。我們使用了微軟團(tuán)隊的 GraphRAG 工作,對文檔進(jìn)行增強(qiáng)建模。具體來說,對于 document 先切成 trunk,即 Text unit。對于每個 textUnit,進(jìn)行 SPO 三元組抽取、claims 抽取、摘要生成等工作。然后構(gòu)建知識圖譜,并進(jìn)行層次聚類,構(gòu)建成子圖、社區(qū)等層級,并向量化。在查詢的時候,既可以使用全局搜索技術(shù)利用社區(qū)層級摘要來推理有關(guān)語料庫的整體問題,也可以使用局部搜索技術(shù)通過擴(kuò)展到其鄰居和相關(guān)概念來推理特定實(shí)體的情況。
6. context selection
研究發(fā)現(xiàn),如果給到大模型的文檔或知識庫本身就是不相關(guān)的,效果反而更差。因此,我們可以在檢索后或者重排后將結(jié)果進(jìn)行過濾。例如,通過小模型把不相關(guān)的結(jié)果過濾掉。如果是復(fù)雜的查詢,可以將搜索結(jié)果組織成選擇題形式,使用大模型做選擇題的能力,過濾掉不相關(guān)的查詢片段。
此外,也可以利用 small2big、調(diào)大長文本窗口甚至讓大模型直接處理整篇文檔等技術(shù)來提升效果。
7. 在推理時解決幻覺
(1)解碼策略
大模型在推理過程中,前期生成的內(nèi)容幻覺率不高,但在推理后期,由于解碼的時候依賴于前面生成的 token,這個時候幻覺問題就會出現(xiàn)了,可以通過動態(tài)調(diào)整解碼參數(shù)的方法來緩解。此外也有一些工程化的方案,比如基于 semantic routing 的技術(shù),對于不同任務(wù),設(shè)置不同的解碼參數(shù),也能達(dá)到不錯的效果。
(2)Contrastive Decoding
對比解碼技術(shù),是通過比較不同模型(通常是一個小模型和一個大模型)的輸出來提高解碼過程的準(zhǔn)確性的。在對比解碼中,分析大模型和小模型在下一個 token 預(yù)測上的分布差異(DIFF),以此來評估輸出的可靠性。在解碼過程中,通過識別和剪除可能導(dǎo)致幻覺的路徑來減少不真實(shí)的輸出。需要對差異閾值進(jìn)行細(xì)致的調(diào)整,以平衡減少幻覺和避免錯誤剪除有效輸出之間的權(quán)衡。
這個工作,需要注意線上成本,即是否接受小模型在線上運(yùn)行。
(3)Recitation-augmented generation
回憶增強(qiáng)技術(shù)是一個比較有意思的工作,類似于人類在回答問題時會先回憶自己已經(jīng)學(xué)習(xí)到的知識,然后再進(jìn)行回答??梢酝ㄟ^模擬人類回答問題的策略,通過提示工程技術(shù),讓大模型在回答之前先回憶內(nèi)部知識,將知識顯性化放到上下文中,然后再根據(jù)上下文信息進(jìn)行回答,以提高其回答問題的準(zhǔn)確性。
(4)Gen-Critic-Edit
自我批判或者知識編輯,是利用外部數(shù)據(jù)庫、外部工具、大模型自我判斷等方法,讓大模型對生成結(jié)果進(jìn)行反思和自我批評,然后再修正回答的一種技術(shù)。在修正階段,可以使用對答案進(jìn)行多次生成與一致性投票、訓(xùn)練一個額外的模型來對生成的回答進(jìn)行打分以評估其質(zhì)量、使用 RAG 技術(shù)從知識庫中抽取相關(guān)證據(jù)并利用抽取的證據(jù)來指導(dǎo)模型進(jìn)行進(jìn)一步的生成等多種策略,來提高回答的準(zhǔn)確性和可靠性。這里列舉幾個比較典型的工作。
①RARR
RARR 這個工作通過讓大模型對原始 query 進(jìn)行改寫從而生成多個 query,然后對每個 query 調(diào)用搜索引擎,將搜索結(jié)果作為參考信息,用于與模型生成的回答進(jìn)行比較。如果搜索結(jié)果與原始回答存在沖突,模型將根據(jù)這些信息進(jìn)行進(jìn)一步的生成和修正。如果搜索結(jié)果與原始回答一致,模型可能認(rèn)為沒有幻覺存在。
②FAVA
FAVA 工作需要訓(xùn)練一個改寫模型,具體來說,通過數(shù)據(jù)增強(qiáng)的方式,比如插入噪聲文本,修改文本等技術(shù)對原始文本進(jìn)行破壞,將得到的錯誤文本和原始正確文本給到大模型進(jìn)行訓(xùn)練,讓大模型學(xué)會糾正能力。這種技術(shù)具備一定的成本,適合解決事實(shí)性問題,例如政治敏感場景,效果較好。
③some critics
在自我反思和自我批判模塊,還有 CRITIC、self-refine 等一些優(yōu)秀的工作,這里就不做過多介紹了,大家感興趣可以自行查閱相關(guān)材料。
8. 模型增強(qiáng)技術(shù)
接下來是一些成本比較高的方法,包括預(yù)訓(xùn)練和微調(diào)對齊技術(shù)。
(1)預(yù)訓(xùn)練
當(dāng)大型語言模型缺乏特定知識時,首要方法就是將這些知識通過預(yù)訓(xùn)練的方式訓(xùn)到大模型中。可以從外部數(shù)據(jù)源,如 Common Crawl 等數(shù)據(jù)集中提取相關(guān)知識,并將其納入模型訓(xùn)練中。對于時效性較強(qiáng)的知識,可以通過時效性搜索引擎或數(shù)據(jù)抓取工具,實(shí)時或定期地更新模型的知識庫,在模型的持續(xù)預(yù)訓(xùn)練階段,不斷引入新知識以保持模型知識的時效性和覆蓋面。訓(xùn)練過程中需要仔細(xì)調(diào)整數(shù)據(jù)回放比例、學(xué)習(xí)率、數(shù)據(jù)配比等。
(2)微調(diào)和對齊
在微調(diào)階段,如果微調(diào)數(shù)據(jù)集中包含了預(yù)訓(xùn)練模型中不存在的知識,大模型可能會生成不準(zhǔn)確或虛假的回答,可以在預(yù)訓(xùn)練的退火階段對微調(diào)數(shù)據(jù)集進(jìn)行 next token prediction 的建模,然后通過 SFT 和 DPO 技術(shù)進(jìn)行進(jìn)一步微調(diào)對齊。
注意,直接使用人工標(biāo)注的數(shù)據(jù)和搜索引擎結(jié)果作為正負(fù)例進(jìn)行對齊訓(xùn)練可能存在問題。正例和負(fù)例的生成應(yīng)盡量來自原有模型的輸出,而不是外部來源,以保持?jǐn)?shù)據(jù)的一致性和可靠性。建議訓(xùn)練一個打分模型來評估數(shù)據(jù)質(zhì)量,幫助識別哪些數(shù)據(jù)是高質(zhì)量的正例,哪些可能是低質(zhì)量的負(fù)例。
三、360 可信大模型應(yīng)用案例
1. 360 大模型安全解決方案
我們將上述 360 可信大模型解決方案應(yīng)用在了大模型的內(nèi)容安全檢測業(yè)務(wù)和防護(hù)上,在中國信通院 AI Safety Benchmark 的 Q1 和 Q2 兩個季度的安全性評估上,360 智腦的安全性蟬聯(lián)第一名。
2. 360AI 搜索
同時,我們將上述解決方案應(yīng)用在了 360AI 搜索產(chǎn)品中,可以看到 360AI 搜索產(chǎn)品可以很好解決這些 GPT4 解決不了的幻覺性問題。
3. 360AI 瀏覽器
360AI 瀏覽器的智閱產(chǎn)品,用戶可以上傳文檔,根據(jù)文檔做問答、做翻譯、生成腦圖,讀者有興趣可以去體驗一下這套方案在真實(shí)的業(yè)務(wù)場景里面到底做得怎么樣。
四、360 可信大模型的未來探索
我們的探索不是完成時,而是進(jìn)行時。在真實(shí)生成環(huán)境中,隨著業(yè)務(wù)、方案落地,我們遇到更多挑戰(zhàn)。隨著評測,我們發(fā)現(xiàn) benchmark 跟真實(shí)場景的數(shù)據(jù)分布和幻覺一致性不完全相同。所以,我們需要自己在業(yè)務(wù)場景中構(gòu)建自己的 benchmark,并且不斷迭代,去進(jìn)一步發(fā)現(xiàn)問題。
五、問答環(huán)節(jié)
Q1:RAG 工作流程中,二元分類器是怎么訓(xùn)練的?
A1:首先建立幻覺體系,根據(jù)不同幻覺類型,標(biāo)注不同類別。數(shù)據(jù)主要來自于線上日志。通過使用各種自動化輔助標(biāo)注工具進(jìn)行離線數(shù)據(jù)挖掘和數(shù)據(jù)標(biāo)注,并進(jìn)行人工打標(biāo),最終形成了我們的訓(xùn)練數(shù)據(jù),然后再進(jìn)行分類模型的訓(xùn)練。
Q2:混合檢索結(jié)果的重排序,有哪些方法?
A2:我們的方案涉及到了多種檢索策略,包括關(guān)鍵詞搜索、語義搜索、關(guān)系型數(shù)據(jù)庫搜索、圖搜索、工具調(diào)用等。對于每種檢索策略,首先會調(diào)用自己的重排序方法,比如對于語義搜索,可以使用 bge-rerank 相關(guān)的模型。最終多條召回流的結(jié)果,可以使用策略重排或者通過數(shù)據(jù)標(biāo)注訓(xùn)練一個重排模型,這里要結(jié)合自己的業(yè)務(wù)場景來進(jìn)行調(diào)優(yōu)。