自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解 SELF-RAG 框架

人工智能
自我反思檢索增強生成(Self-Reflective Retrieval-Augmented Generation,SELF-RAG)是一種通過檢索和自我反思提高 LLM 質(zhì)量和事實準確性的框架,而不損害 LLM 的原始創(chuàng)造力和多功能性。本文將詳細介紹 SELF-RAG 框架。

當前先進的大語言模型在回答問題時依然會存在胡說八道的現(xiàn)象,而檢索增強生成(RAG)方法通過將相關(guān)的檢索段落與語言模型的輸入結(jié)合,可以減少在知識密集型任務中的事實錯誤。然而,這些方法可能會影響語言模型的通用性,引入不必要或離題的段落,導致生成的回答質(zhì)量較低。此外,由于 RAG 檢索段落時不考慮事實基礎是否有幫助,生成的結(jié)果也不能保證與檢索到的相關(guān)段落一致。

自我反思檢索增強生成(Self-Reflective Retrieval-Augmented Generation,SELF-RAG)是一種通過檢索和自我反思提高 LLM 質(zhì)量和事實準確性的框架,而不損害 LLM 的原始創(chuàng)造力和多功能性。本文將詳細介紹 SELF-RAG 框架。

概述

SELF-RAG 允許語言模型 根據(jù)檢索到的段落生成信息,并且通過自我批判生成的內(nèi)容來生成特殊 token。這些特殊的 token 稱之為 reflection token(反思 token),表示是否需要檢索或確認輸出的相關(guān)性、或完整性。相比之下,常規(guī)的 RAG 方法會無差別地檢索段落,且不確保引用來源的是否完全支持輸入。

圖片圖片

具體而言,SELF-RAG 首先確定是否通過在繼續(xù)生成時使用檢索到的段落來幫助生成,如果是,它會輸出一個檢索標記,調(diào)用一個檢索模型(第一步)。接下來,SELF-RAG 同時處理多個檢索到的段落,評估它們的相關(guān)性,然后生成相應的任務輸出(第二步)。然后生成評論標記,對自己的輸出進行批評并選擇最佳輸出(第三步),評價標準是事實準確性和整體質(zhì)量。接下來將進一步介紹 SELF-RAG 的幾個重要概念與算法。

反思 token

給定輸入 x,SELF-RAG 會訓練語言模型 M 順序生成文本 y,且 y 由多個段落組成,記為 y=[y_1,...,y_t],其中,y_t 表示第 t 個段落的 token 序列,y_t 中的生成 token 包括原始文本和反思 token。

而反思 token 主要有 4 種,分別為 Retrieve,IsRel,IsSup,IsUse,其含義分別如下:

圖片圖片

按需檢索(Retrieve)

表示對于給定輸入,判斷是否需要額外檢索信息。

比如:

  • 問題 x :提供保持健康的三個秘訣
  • 輸出:yes
  • 原因:因為可能有一些可靠的資源來解釋不同行為對健康的影響。因此檢索文檔有助于提高對此查詢的響應。

再比如:

  • 問題 x :描述一次你不得不做出艱難決定的經(jīng)歷
  • 輸出:no
  • 原因:因為這個問題詢問的是一些個人經(jīng)驗,因此不需要尋找一些外部文檔。

相關(guān)性(IsRel)

表示對于給定輸入,檢索出的信息是否提供了有用信息來解決輸入問題。

比如:

  • 問題 x :競選美國眾議院的年齡
  • 檢索信息 d :憲法規(guī)定了在美國參議院任職的三項資格:年齡(至少三十歲);美國公民身份(至少九年);以及參議員在選舉時所代表的州的居住權(quán)。
  • 輸出:Irrelevant
  • 原因:這些檢索信息僅討論了競選美國參議院議員的年齡,而不是討論眾議院議員的年齡。

支撐性(IsSup)

評估檢索信息中提供的信息是否完全支持輸出,輸出為 “Fully supported, partially supported, no support”。

比如:

  • 問題 x :解釋 embedding 在自然語言處理中的使用
  • 檢索信息 d :embedding 是自然語言處理 (NLP) 中一組語言建模和特征學習技術(shù)的統(tǒng)稱,其中詞匯表中的單詞或短語被映射到實數(shù)向量。單詞和短語嵌入用作底層輸入表示時,已被證明可以提高 NLP 任務的性能,例如句法解析、情感分析、下一個標記預測以及類比檢測。
  • 回答 y :詞嵌入對于情感分析、文本分類、預測序列中的下一個詞以及理解同義詞和類比等任務非常有用。
  • 輸出:Fully supported
  • 原因:輸出句子討論了詞嵌入的應用,證據(jù)提到了所有應用句法解析、情感分析、下一個標記預測以及類比檢測作為應用。因此,評分應為 “Fully supported”。

有用性(IsUse)

表示回答是否對問題有用,輸出為 “5,4,3,2,1”,5 為非常有用,1 為幾乎不切題或完全不相關(guān)。

比如:

  • 問題 x :“2023 年英國現(xiàn)任首相是誰?”
  • 回答 y :“鮑里斯·約翰遜 (Boris Johnson) 于 2019 年至 2022 年擔任英國首相?!?/li>
  • 輸出:2
  • 原因:雖然輸出提供了關(guān)于 2019 年至 2022 年英國首相的事實正確的陳述,但該指令詢問 2023 年的首相是誰,因此它沒有回答該指令。因此,評分為2。

SELF-RAG 訓練

圖片圖片

給定一組輸入輸出數(shù)據(jù) D={X, Y},Generator 模型 M,Critic 模型 C。

  1. 用預訓練的語言模型 LM 對 C 進行初始化;
  2. 對 {X, Y} 進行采樣得到訓練數(shù)據(jù)
  3. 對采樣數(shù)據(jù)中每一對 (x, y):

通過 GPT-4 收集 reflection token r;

將 {(x, y, r)} 添加到 D{critic} 中;

  1. 用下一個 token 預測損失更新 C;
  2. 用預訓練的語言模型 LM 對 M 進行初始化;
  3. 對 (X, Y) 中的每一對 (x, y):
  4. 運行 C 得到 reflection token r;

  5. 將 (x, y, r) 添加到 D{gen} 中;

  6. 基于 D_{gen} 用下一個 token 預測損失更新 M;

訓練評論者模型

評論者模型數(shù)據(jù)生成

手動標記每個段落的反思 token 是不現(xiàn)實的,而我們可以使用像 GPT-4 這樣的最先進的大語言模型來生成反思 token。通過引導 GPT-4 生成反思 token,可以將其知識提煉到內(nèi)部的評論者模型 C 中,從而創(chuàng)建了監(jiān)督數(shù)據(jù)。如下圖所示:

圖片圖片

對每組反思 token,從原始訓練數(shù)據(jù)中隨機采樣。由于每組反思 token 有自己的定義和輸入,我們會針對性使用不同的 prompt。

這里以 Retrieve 為例,通過使用類型特定的指令來引導 GPT-4,比如給定一條指令,在原始任務輸入 x 和輸出 y 上進行少量示范,判斷從網(wǎng)絡中找到一些外部文檔是否有助于生成更好的響應,以生成適當?shù)姆此?token:p(r|I,x,y) 。

評論者模型訓練

生成數(shù)據(jù) D{critic} 后,使用預訓練語言模型 LM 初始化評論者模型 C,并用 D{critic} 對其進行訓練。其目標函數(shù)為(對每對 reflection token 來說):

圖片圖片

初始模型可以是任意的預訓練語言模型 LM,評論者模型在大多數(shù) reflection token 類別上都與基于 GPT-4 的預測達成了超過 90% 的一致性。

訓練生成器模型

生成器模型的數(shù)據(jù)生成

給定一個輸入輸出對 (x,y),使用檢索和評論者模型來擴充原始輸出 y,從而創(chuàng)建監(jiān)督數(shù)據(jù),精確地模擬 SELF-RAG 推理時的過程。整個過程如下:

圖片圖片

對 y_t,運行批評者模型 C 來評估需要額外的檢索信息來幫助增強生成。如果需要,則加上 Retrieve=Yes token,并且使用 R 來獲取前 K 個信息段落 D。對每個段落來說,C 會進一步評估相關(guān)性并預測 IsRel。如果某個段落是相關(guān)的,則 C 會進一步評估該段落是否支持模型的輸出,并預測 IsSup。評論 token IsRel 和 IsSup 會被附加到檢索的段落或輸出后面。在最后的輸出 y 中,C 會預測整體效用 token IsUSE,并將帶有反思 token 和原始輸入對的擴充輸出添加到 D_{gen}。

生成器模型訓練

通過使用精選的增強語料庫,以及 reflection token D{gen} 來訓練生成器模型 M。目標函數(shù)為:

圖片圖片

與評判模型 C 訓練不同,生成器 M 學習預測目標輸出以及 reflection tokens。訓練期間,將檢索到的文本塊(由 <p> 和 </p> 標記)進行遮擋以進行損失計算,這意味著模型在計算損失時不考慮這些檢索到的文本塊。原始詞匯 V 通過一組 reflection tokens(如 <Critique> 和 <Retrieve>)進行擴展,這表示這些 tokens 被加入到詞匯中,使模型能夠使用這些特定的 tokens 來生成輸出。

SELF-RAG 推理

最后再來介紹一下 SELF-RAG 的推理過程。如下圖所示:

圖片圖片

對于每個輸入 x 和前一代生成的 y{<t},模型解碼檢索 token 以評估檢索的效用。如果不需要檢索,模型將直接預測下一段輸出,這與標準的語言模型行為一致。如果需要檢索,模型會生成:一個評估檢索段落的相關(guān)性的反思 token、下一個回答段落、以及評估回答段落是否被檢索信息支持的反思 token。最后,一個評估整體效用的新的反思 token。每生成一個回答,SELF-RAG 都會并行處理多個段落,并且使用其自動生成的反思 token 來控制生成的輸出。

生成反思 token 以自我評估輸出使得在推理階段 SELF-RAG 更加可控,能夠調(diào)整其行為以滿足多樣的任務要求。對于要求事實準確性的任務,目標是使模型更頻繁地檢索段落,以確保輸出與現(xiàn)有證據(jù)緊密對齊。相反,在更為開放的任務中,例如撰寫個人經(jīng)歷文章,重點轉(zhuǎn)向更少的檢索,優(yōu)先考慮整體創(chuàng)造力或效用。接下來,將介紹在推理過程中如何實施控制以滿足這些不同目標的方法。

基于閾值的自適應檢索

SELF-RAG 可以動態(tài)決定何時檢索文本段落,這是通過預測 Retrieve token 來完成的。此外,框架還允許設定一個閾值。具體而言,如果生成的 token 是 Retrieve=Yes,且在所有輸出 token 中的標準化值超過了指定的閾值,則觸發(fā)檢索。

基于評判 tokens 的樹解碼

在每個段落步驟 t 中,當需要檢索時,基于硬性或軟性條件,R 檢索 K 個段落,并且生成器模型 M 并行處理每個段落并輸出 K 個不同的候選值。我們進行段落級的 Beam Search(使用 Beam 大小為 B)以獲取每個時間戳 t 的前 B 個段落,并在生成結(jié)束時返回最佳序列。

每個段落 y_t 相對于段落 d 的分數(shù)通過評論者模型的評分 S 進行更新,該評分是每個評論 token 類型的標準化概率的線性加權(quán)和。對于每個評論 token 組 G(例如 IsREL),我們將其在時間戳 t 的分數(shù)表示為 s^G_t,然后按以下方式計算段落分數(shù):

圖片圖片

其中,

圖片圖片

代表最理想的反射 token 的生成概率

圖片圖片

其中 N_G 個不同的令牌表示 G 的不同可能值。

權(quán)重 wG 為可以調(diào)整的超參,以自定義模型在推理期間的行為。另外,通過調(diào)整這些權(quán)重,可以強調(diào)某些期望的行為并降低其他行為。

責任編輯:武曉燕 來源: CS實驗室
相關(guān)推薦

2025-04-01 09:25:09

2025-02-06 11:20:00

開發(fā)工具AI

2025-01-02 11:54:01

2011-07-08 18:44:09

Objective-C Self Super

2025-03-19 08:43:17

檢索增強生成RAG大型語言模型

2025-03-10 08:00:00

RAG檢索Reranker

2025-02-06 13:50:06

2025-02-17 03:00:00

RAG開源DeepSeek

2025-03-04 11:01:00

2024-10-09 11:14:37

2025-02-27 09:00:00

RAG檢索增強生成RAG框架

2025-03-21 14:34:17

2009-08-11 17:29:53

.NET遠程處理框架

2010-08-30 13:46:09

MeeGoMeeGo Touch

2011-10-10 09:11:09

Java

2024-11-19 13:05:40

2024-10-31 14:46:31

2024-06-24 14:32:33

2011-08-02 13:58:18

Cocoa 框架 Mac OS

2017-02-14 10:00:19

Java開發(fā)Lock
點贊
收藏

51CTO技術(shù)棧公眾號