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