badcase 定義
首先我們定義什么是大模型的badcase,大模型badcase是指在應用場景中,出現(xiàn)不符合預期的答復。但實際上不符合預期的答復可能多種多樣,原因也各不相同,有沒有什么統(tǒng)一的思路能處理這些badcase呢?
badcase修復思路
首先在處理badcase流程上有個基本的套路,就是發(fā)現(xiàn)問題,總結(jié)規(guī)律,評估影響,設法修復。這個套路如果泛化一點的話,大概就是解決問題的基本思路。
發(fā)現(xiàn)的問題對應著大模型的評估,測試等。基本的發(fā)現(xiàn)問題手段有自動化和非自動化的方式,主要體現(xiàn)在樣本的構(gòu)造過程中。非自動化對應著手工測試,標注錄入,收集用戶反饋等;自動化的方式對應著用戶模擬器,固定測試集推斷等。有了樣本之后,我們進入了第二步,總結(jié)規(guī)律。
解決badcase問題的關鍵在于通過歸類的方式總結(jié)模式和規(guī)律,然后在badcase分布下解決關鍵的幾種特定問題,比如典型的幻覺,復讀機等。在自己具體的應用場景下,往往有不一樣的特殊的要求,比如場景是RAG的應用,會存在檢索知識不符合預期等問題。總結(jié)規(guī)律的方式上可以靠專家經(jīng)驗,對預期之外的結(jié)果進行歸類,并形成明確的可執(zhí)行標準,將標準傳達給標注團隊,進行一定規(guī)模的標注分析。
評估影響對應著兩方面,一個是問題發(fā)生的概率,對應的是步驟二中總結(jié)問題的分布。另一方面是badcase對應的嚴重性,badcase概率乘上badcase嚴重性就是處理問題的優(yōu)先級排序。確定好優(yōu)先級之后,我們就可以按部就班進入第四步,嘗試解決。
修復大模型的badcase,從解決問題的方式分類有兩種,一種是徹底解決,從大模型生成的機理上削減此類問題發(fā)生的概率。另一種是掩蓋問題,不在模型的生成的過程中根本解決,通過手段規(guī)避發(fā)生,事后修復等方法掩蓋問題。
重點是第四步,解決對應問題的badcase,我們對這部分進行展開講解。
實踐解法
首先是機理上解決方法,機理上解決對應著大模型訓練的四個階段,預訓練,sft,對齊,推斷。
屬于預訓練階段的問題大概率是難啃的骨頭,也對應著大模型能力的上限,解決這些問題并讓他生成非兜底的預期答復,基本等同于基座能力的提升,類似gpt3.5提升到gpt4,這也是一種非常通用但是成本非常高,難度非常大的方式。
這類問題典型的比如復讀機,在gpt3.5我們還是比較容易觸發(fā)大模型的復讀機行為,但是在4.0幾乎就看不到了。
除了此類問題,我們?nèi)绻槍δ承﹩栴}有些特定的badcase并不需要提升基座的基礎能力,如安全方面用戶引誘回答政治敏感類問題。那么我們期望的答復可以簡化為兜底的拒絕回答,在sft和對齊階段都有對應的方案。
sft和對齊階段對應方案最簡單直觀的方法就是強化訓練數(shù)據(jù),讓大模型“記住“更多的這種類型的模式,比如構(gòu)造正確的數(shù)據(jù)進行強化訓練。對應在對齊中,就是使用正例構(gòu)造reward model的正樣本,badcase構(gòu)造負樣本,使用ppo或者dpo等方法強化大模型的認知,這種打補丁的方式對一些模式明顯的問題又一定幫助,但復雜的問題還是無能為力。
在推斷階段可以解決的問題,可以分成兩類,第一類是生成參數(shù)調(diào)整上,第二類是通過prompt層面調(diào)整解決。
生成參數(shù)調(diào)整能一定程度上解決一類特定問題,典型的是復讀機問題等。復讀機問題可以通過生成函數(shù)的多樣性參數(shù)增加多樣性,重復懲罰參數(shù)等后置概率調(diào)整手段一定程度上減輕。當然,復讀機問題的本質(zhì)還是模型訓練的“不夠好”,最好能在數(shù)據(jù),訓練,對齊全流程上進行優(yōu)化,從根本上解決。
prompt調(diào)整層面對應的典型方案是使用RAG方案對抗幻覺,RAG方案就是承認基座能力的局限性,也不期望短期通過提升基座能力,從根本上解決大模型幻覺問題,而是給模型更多的“參考信息”,讓模型有一定的外部知識儲備。除此之外,RAG還有動態(tài)更新,外部知識增強的能力,在實際應用上有很多價值。
通過cot,tool use等構(gòu)建的agent能力也是承認大模型的局限性,一定程度在prompt上給更多的過程提示,工具調(diào)用參考等,期望大模型通過任務規(guī)劃,調(diào)用外部工具一定程度上彌補模型能力的不足。
此類方案在大家的探索中都已經(jīng)演進成為成熟的落地解決方案。
除了通過各種手段解決badcase,模型直接輸出正確的內(nèi)容之外,還有一種線上更實用的前后置處理方案,這類方案在模型的風控和安全上有典型的應用。
比如,模型上線的前后置風控處理上。前置風控主要面向的內(nèi)容是用戶輸入prompt的檢查上,進行相關的風險評級,可以設定為通過,拒絕回答,通過且增加限制的system prompt等幾種典型策略,確保用戶輸入到大模型的內(nèi)容不會觸發(fā)大模型產(chǎn)生不合規(guī),不安全的答復。
后置處理主要面向的內(nèi)容是大模型的輸出,確保大模型輸出內(nèi)容送達用戶端的時候保證合規(guī)性。最簡單的方式為檢測大模型輸出內(nèi)容不合規(guī)的時候,對輸出內(nèi)容進行整體替換。通常為了保證大模型的交互體驗,會流式送達用戶端,因此針對大模型輸出內(nèi)容的質(zhì)檢有一定的滯后性,這也是我們在一些產(chǎn)品體驗中流式生成一頓后,會整體覆蓋替換為另一段固定話術的原因。
整體來看,天下沒有免費的午餐,打補丁的方式可以快速解決某類特定的問題,但是想從根本上提高模型能力,應對各種case,又是一個難度和成本都非常高的路徑。
審核編輯:劉清
-
模擬器
+關注
關注
2文章
894瀏覽量
44016 -
大模型
+關注
關注
2文章
3022瀏覽量
3819
原文標題:大模型如何修復badcase
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
【大語言模型:原理與工程實踐】大語言模型的評測
無仿真模型問題??
為什么沒有模型呢
我的差分對模型不對,怎么更新到PCB呢?
3d模型問題
模型預測控制介紹
MRAS模型和可調(diào)模型參考
如何利用MATLAB的simulink建立仿真模型呢
怎樣去解決pytorch模型一直無法加載的問題呢
為什么RK3399Pro平臺YOLOv4 pytorch模型轉(zhuǎn)RKNN模型會失敗呢
基于深度學習的圖像修復模型及實驗對比

評論