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