關於REACT正規化的一些思考

Visitors發表於2024-08-11

關於REACT正規化的一些思考

REACT正規化經過近一年的探索,讓我們在很多領域有了非常廣泛的應用,它確實提升了很多之前無法解決的問題,比如大模型雖然在語言理解和互動式決策方面在任務中表現出令人印象深刻的表現,但是如何讓模型基於解釋來使用 LLMs 以交錯方式生成推理跟蹤和特定於任務的操作 一直是一個問題,REACT正規化提出了一種,模仿人類在“行動”和“推理”之間的這種緊密協同作用,並且模仿人類快速學習新任務並執行穩健的決策或推理,即使在以前看不見的情況下或面臨資訊不確定性。

列舉一些案例


列舉一些特定問題


對問題的深入探討

這一小節,說明本論文討論它的設計目的,

說明了經過上一小結的實驗,REACT表現由於ACT,表 1 顯示了使用 PaLM540B 作為基礎模型和不同提示方法的 HotpotQA 和 Fever 結果。我們注意到,在這兩項任務上,REACT 都優於 Act,這證明了推理在指導行動方面的價值,尤其是在綜合最終答案方面,如圖 1 (1c-d) 所示。微調結果 3 也證實了推理跟蹤的好處,可以做出更明智的行為。

在REACT 和 CoT 在 HotpotQA 上的行為差異,作者設計了一種ROC測量評判分類、檢測結果的好壞,實驗步驟如下

分別從 REACT 和 CoT 中隨機抽取了 50 個正確和錯誤答案(由 EM 判斷)的軌跡(總共 200 個示例),並在表 2 中手動標記了它們的成功和失敗模式。

B) 說明了 一些問題,包括接地性(grounded-ness)和可信度(trustworthiness),雖然相比CoT,REACT的推理、動作和觀察步驟交錯提高了,但這種結構約束也降低了REACT制定推理步驟的靈活性,導致推理錯誤率高於CoT。

REACT經常會出現一個錯誤模式,即模型重複生成之前的想法和行動,我們將其歸類為“推理錯誤”的一部分,因為模型無法推理出下一步應該採取什麼正確的行動並跳出迴圈。(這裡也許可以透過工程上下文問題嘗試解決,不過會進一步增加推理成本,law法律比賽中嘗試了使用這種方式)

C)這裡作者並沒有解決 檢索資訊性知識準確性 ,在原實驗中無資訊性搜尋佔錯誤案例的 23%,它破壞了模型推理,並使其難以恢復和重新表述思想。

這一小節,觀察作者的消融實驗

論文最終給了一個結果,在它所實驗的樣本中,REACT + CoT-SC 的提示LLMs效果最好,僅使用 3-5 個樣本即可達到 21 個樣本的 CoT-SC 效能。這些結果表明,正確結合模型內部知識和外部知識對於推理任務具有價值。

不過我在這裡有些想法

論文總體的思想提到的一個正規化如下

  • Question

  • Thought

  • Action [Finish]

  • Observation

在3.3 RESULTS AND OBSERVATIONS中,討論的諸多問題,看起來都歸結到了模型幻覺上,觀察下來,從解釋行動的語言學角度來看,模型在對問題做出解釋(Thought)在做出下一步行動,這一個過程中是什麼驅使行動的發生呢,顯然這裡並沒有討論,出現問題的地方也許是模型幻覺,也許是更深度的問題

這裡我們不做探討,我們從行動發生的成功率來討論,顯然我們需要找到一種高效的評估方法,我們可以繼續採用ROC這個方法來評估,列出真、幻覺、假等指標的混淆矩陣,讓模型嘗試學習來提升這一步的效果,

上面這步也許能有些作用,但實際上,前面提到的諸多問題,真的只是這個麼,我們觀察下 “chain-of-thought” 中斷的條件是reasoning,前面提到REACT + CoT-SC 實際是

  • Action [act] >Observation>Action [Finish]> Observation > CoT[Question>Thought>Answer]

這又是一個複雜的問題,我們應該如何解決呢,emmm我也不知道,先說無法解決這個問題不是因為解決不了,而是這個問題非常複雜,

當模型觸發動作去查詢到了一個資訊,這個過程,實際上是脫離了上面的正規化覆蓋的過程,動作被觸發後,也許是一個資料查詢,也許是一個按鈕操作,這些脫離之後的行為,最終會到Observation,又進一步的進行使用模型能力判斷,是否真的Action [Finish],如此往復下來,模型的上下文會非常大,可能是無用的資訊,最終Observation之後的COT,也許因為上下文的龐大無法處理,也許我們不關注上下文長度能解決呢?事實真的是這樣嗎

那請你思考這個問題“從前有做山,山上有做廟。廟裡有個老和尚在跟小和尚講故事,講的是。。。”

我們看到了一個迴圈,這裡是一個我目前無法言說的內容,也許我需要提升下,下面是GPT的解釋,也許你能理解我說的是什麼

#### 迴圈的本質

那請你思考這個問題“從前有做山,山上有做廟。廟裡有個老和尚在跟小和尚講故事,講的是……”

我們看到了一個迴圈。

這個迴圈並不僅僅是一個邏輯上的陷阱,它也可能是理解推理過程的關鍵。每一個“老和尚講故事”的迴圈,都是對前一迴圈的總結和提升。黑格爾的辯證法教導我們,任何一個看似無解的矛盾,都包含著解決問題的種子。每一次迴圈,都是在過去的基礎上進行反思和調整,從而達到新的認識高度。

在模型推理中,類似的迴圈也可以被視為一種不斷修正和改進的過程。每當模型在推理過程中陷入困境,或者產生幻覺時,這實際上為我們提供了一個機會,去重新審視模型的推理路徑,調整其決策機制。

或許我們可以思考,將這種迴圈作為一種學習的機會,而非僅僅是一個需要避免的錯誤模式。透過在每一個迴圈中積累新的經驗和知識,模型可以逐步減少錯誤,最終走出迴圈,達成更高的推理水平。

我們看似被困在一個無盡的迴圈中,但每一次的反覆,其實都為我們提供了通向更高理解的階梯。模型的推理能力,也許正是在這樣不斷的迴圈和反思中,逐步提升的。

最終,我們要意識到,迴圈本身並不是問題,關鍵在於我們如何利用它,來促進模型的成長和進化。
關於ROC的解釋(https://www.cnblogs.com/wuxiping2019/p/13731030.html)
混淆矩陣

其中

  • TN:將負類預測為負類(真負類)

  • FN:將正類預測為負類(假負類)

  • TP:將正類預測為正類(真正類)

  • FP:將負類預測為正類(假正類)

  • 準確率 (Accuracy)

測試樣本中正確分類的樣本數佔總測試的樣本數的比例。

  • 精確率 (Precision)

準確率又叫查準率,測試樣本中正確分類為正類的樣本數佔分類為正類樣本數的比例。

  • 召回率 (Recall)

召回率又稱查全率,測試樣本中正確分類為正類的樣本數佔實際為正類樣本數的比例。

  • F1 值

F1 值是查準率和召回率的加權平均數。F1 相當於精確率和召回率的綜合評價指標,對衡量資料更有利,更為常用。

  • 真正類率(TPR)

預測的正類中實際正例項佔所有正例項的比例。(跟召回率一樣的計算公式)

  • 負正類率(FPR)

預測的正類中實際負例項佔所有負例項的比例。

KS值

我們想要評估模型的能力,在閾值不同的情況下,TPR和FPR 又不一樣,突然迷惘起來,這個時候,需要找到一個唯一評判標準,最值有唯一性,上圖紅色部分表示TPR-FPR,那我們就用最高點作為模型能力的評估標準吧!!對,沒有錯,最高點就是所謂的KS值,我們用KS值來作為評估模型區分能力的指標,KS值越大,模型的區分能力越強。公式如下:

ROC 曲線

ROC的全稱是“受試者工作特徵”(Receiver Operating Characteristic)曲線,首先是由二戰中的電子工程師和雷達工程師發明的,用來偵測戰場上的敵軍載具(飛機、船艦),也就是訊號檢測理論。之後很快就被引入了心理學來進行訊號的知覺檢測。此後被引入機器學習領域,用來評判分類、檢測結果的好壞。

還是以上的TPR和FPR值,以上我們知道了KS值能表示模型的區分能力,我們只在閾值等於KS值時,覺得模型是好的,這樣忽視掉了閾值取其他值的情景,有沒有一種評估標準,無關閾值的取值呢?

在實際應用場景中,模型預測了一個樣本集,在預測為正類中,我們當然希望的是,預測為正類的樣本中,實際也為正類樣本的比例越高越好,預測為正類的樣本中,實際為負類樣本的比例越小越好,也就是說,TPR越大越好,最好等於1,FPR越小越好,最好等於0,可是沒有這麼完美的事情,TPR變大的同時,FPR也會變大。數學家是聰明的,同時變化是吧,變化的速度總是有區別的吧?

我們隨機取很多閾值,得到很多FPR和TPR。用 X軸表示FPR,Y軸表示TPR,繪製上圖曲線,這個曲線就是ROC曲線。(0,0)和(1,1)這兩個座標點根據實際情況,我們知道是固定的,假如兩者的變化率是一樣的,也就是說是一條過(0,0) 和(1,1) 的直線,此時斜率為1,也就是說隨著閾值的變化,FPR和TPR 都同等程度變化。繪製出了曲線,是否可以用曲線的特性來表示模型的能力呢?我們希望得到的是:

  • FPR 變化快的時候,TPR變化慢.
  • FPR變化慢的時候,變化快。

到這裡,我們又找到了一個評估模型的指標,對,就是圖中的陰影面積,觀察發現,我們可以用這個陰影面積的大小,來反應上面我們希望得到的特性,這個陰影面積的大小叫做AUC值。

AUC

AUC(Area Under Curve) 被定義為ROC曲線下的面積,因為ROC曲線一般都處於y=x這條直線的上方,所以取值範圍在0.5和1之間,使用AUC作為評價指標是因為ROC曲線在很多時候並不能清晰地說明哪個分類器的效果更好,而AUC作為一個數值,其值越大代表分類器效果更好。需要注意的是AUC是一個機率值,當隨機挑選一個正樣本以及一個負樣本,當前的分類演算法根據計算得到的分數將這個正樣本排在負樣本前面的機率就是AUC值。所以,AUC的值越大,當前的分類演算法越有可能將正樣本排在負樣本值前面,既能夠更好的分類。

相關文章