這個(gè)大模型Badcase修復(fù)方案,我服!
工作以后,對(duì)于做業(yè)務(wù)的同學(xué),一個(gè)避免不了的話題就是“badcase”,在大模型時(shí)代,當(dāng)然也是避免不了的問(wèn)題。
對(duì)于很多沒(méi)接觸過(guò)實(shí)際業(yè)務(wù)的同學(xué)可能認(rèn)為大模型足夠強(qiáng),強(qiáng)到可以很好的 fit 用戶的所有需求,就算 fit 不了,也可以微調(diào)模型來(lái)解決。
但實(shí)際情況是怎樣呢?其實(shí)不管是大模型,還是專有領(lǐng)域小模型,一定存會(huì)各式各樣模型解決不了的 badcase。
具體原因很多,以智能客服系統(tǒng)為例,用戶的咨詢分布也符合二八原則,即用戶 80% 的咨詢問(wèn)題主要是集中在 20% 的知識(shí)點(diǎn)中;
針對(duì)用戶 20% 長(zhǎng)尾知識(shí)咨詢,一般采用 AI 模型手段解決,這個(gè)部分是比較好處理的。那剩下的 20% 的問(wèn)題覆蓋了 80% 的知識(shí)點(diǎn),就屬于長(zhǎng)尾問(wèn)題了。
這部分出現(xiàn)頻率低,數(shù)據(jù)量不足,模型也不易學(xué)習(xí)到。長(zhǎng)尾不代表不重要,但是卻很難優(yōu)化,線上出的 badcase 也經(jīng)常屬于這部分。
那線上大模型服務(wù)報(bào)了 badcase,如何解決呢?
我結(jié)合自己的經(jīng)驗(yàn),總結(jié)主要有以下 4 個(gè)思路:
- 加前置模塊
 - 加后處理
 - 調(diào) prompt
 - 模型微調(diào)優(yōu)化
 
最直接方式就是加前處理。具體來(lái)說(shuō)就是在進(jìn)入大模型前,做一級(jí)或者多級(jí)前置模塊。
實(shí)際業(yè)務(wù)系統(tǒng)中,會(huì)呈現(xiàn)一個(gè)漏斗形,最前面是高頻話術(shù)緩存,用戶的問(wèn)題會(huì)被逐級(jí)過(guò)濾和篩選。高頻簡(jiǎn)單的問(wèn)題會(huì)被優(yōu)先處理掉,直接返回。
這部分的模塊具有幾個(gè)很明顯的特點(diǎn):
- 精度高
 - 速度快
 - 模型/規(guī)則簡(jiǎn)單
 
所以針對(duì)某些 badcase,可以直接在這一層做掉,如果命中,直接加 trigger 返回。
我給大家舉幾個(gè)例子:
(1)比如用戶的 query 可能會(huì)出現(xiàn)一些敏感話題或詞語(yǔ),這種情況是不能進(jìn)大模型。
如果敏感詞檢測(cè)模型也沒(méi)有攔住,往往會(huì)在前面加一個(gè)拒識(shí)模塊,問(wèn)題可以及時(shí) hotfix。
(2)有時(shí)候會(huì)出現(xiàn)地域性方言或者當(dāng)?shù)乜谡Z(yǔ)的話術(shù),query 改寫沒(méi)兜住,意圖識(shí)別沒(méi)兜住,大模型也沒(méi)兜住,怎么辦?
第一類加前置處理。結(jié)合一些泛化手段,這個(gè)在平時(shí)工作中會(huì)總結(jié)出一套完整流程,從種子語(yǔ)料,query 泛化,到線上自動(dòng)配置化,基本能做到只需要少量人工參與的快速 fix。
第二類方法是后處理。為了方便理解,我也給大家舉個(gè)例子。
比如大模型被人熟知的輸出會(huì)有“幻覺(jué)”,甚至出現(xiàn)一些不可控的話題。這種比較好的方案就是在后面加一個(gè)處理模塊來(lái)二次過(guò)濾。
根據(jù)不可控的內(nèi)容來(lái)構(gòu)建檢索規(guī)則,直接對(duì)這種話術(shù)過(guò)濾刪掉,快速修復(fù),保證產(chǎn)品的安全性。
第三類方法是調(diào) prompt。這種方案一般是在 bug 不太緊急的情況下使用,不要求立即 fix。
例如有些場(chǎng)景對(duì)輸出話術(shù)有要求,比如必須要回答上關(guān)鍵要點(diǎn),比如機(jī)器人的人設(shè)不能偏離,保證一致性等。
在線下多次測(cè)試已經(jīng) OK 了,但推到線上發(fā)現(xiàn)了漏網(wǎng)之魚,這種就可以通過(guò)調(diào) prompt 來(lái)解決,這個(gè)過(guò)程比較長(zhǎng),也需要經(jīng)驗(yàn),所以一般不會(huì)很高效。
最后一類方案才是微調(diào)模型。是不是跟大家想象得不太一樣?
把這個(gè)方案放到最后,原因有兩點(diǎn):
- 重新訓(xùn)練模型,時(shí)間比較長(zhǎng),可能需要多次調(diào)優(yōu)。
 - 對(duì)原有結(jié)果有影響,線上系統(tǒng)一般比較復(fù)雜,比如修復(fù)了 A,影響了 B,出現(xiàn)蹺蹺板的情況
 
所以,一般是有大版本升級(jí)的情況,才會(huì)更新模型。工作中,1,2,3 類的 badcase 會(huì)累積整理,累計(jì)到一個(gè)周期以后,再微調(diào)優(yōu)化模型,然后經(jīng)過(guò)嚴(yán)格的冒煙測(cè)試,回歸測(cè)試和灰度測(cè)試以后,才發(fā)布到線上。
最后做一個(gè)總結(jié)吧,線上問(wèn)題多種多樣,科技含量最高的方案不一定是最好的,實(shí)際處理時(shí)要考慮幾個(gè)方面,問(wèn)題的緊急性,是否對(duì)現(xiàn)有模塊有影響,修復(fù)所費(fèi)的成本,對(duì)系統(tǒng)的負(fù)擔(dān)等。
“奧卡姆剃刀”是合適的指導(dǎo)準(zhǔn)則,復(fù)雜不一定是最好的,即思維經(jīng)濟(jì)性原則,如無(wú)必要,勿增實(shí)體。
本文轉(zhuǎn)載自 ??丁師兄大模型??,作者: 丁師兄


















