減少大模型幻覺,你必須要掌握的 6 個方法!

土妹土妹
16粉絲
19 次觀看·2024年10月14日
hello 大家好
這期視頻想跟大家聊一下大模型的幻覺這個問題
前幾天我跟老闆講
就是在公司用大模型應用的事情
大模型老闆他最擔心的一個問題就是大模型的幻覺
這也是大部分人在考慮要不要用大模型在自己公司
在自己業務上面的一個最主要的一個顧慮
就是擔心大模型會胡說八道
那大模型
因爲我們知道讓他完全去杜絕這種胡說八道的可能性是不太現實
就是說他的幻覺總是有一定的可能性的
但是我們要想辦法把它降到一個比較低的一個水平
只要能貼合這個業務流程的一個需求
對大部分的場景來說
比如說如果你達到了99%的正確率
可能在大部分的業務場景下已經足夠了
有些更高的要求可能未必是一定是需要的
能達到90%的正確率
可能對大部分的業務場景來說已經足夠了
所以我們只要能去降低它出現幻覺的可能性
那在使很多實際應用中就已經可以去讓大模型達到落地的一個結果了
所以今天這期視頻我們就來詳細聊一聊
怎麼樣讓大模型去減少幻覺
我們作爲實際終端應用的工程師
我們能做的事情是有哪些
在這期視頻裏
我們不會去聊
那些做基座模型的一些方法
我們可能不會去聊到這些算法
但是我們在應用過程中能用到的方法主要有這麼六個方法
那我們就快開始吧
第一個方法
大家都知道就是要讓大模型減少幻覺的話
引入外部的知識庫或者說外部的工具是一定會有很大的幫助的
這也是爲什麼現在RAG這麼火的一個原因
而且現在大模型基本上都會配有搜索的功能
也就是說外部的這些搜索的一些工具
這樣都可以讓大模型在他被問到他所不知道的事情的時候
他可以通過外部的知識庫或者說外部的搜索的工具去拿到更多的信息
他再來做回答
做RAG有非常非常多的技巧
我們有機會在另外出一期視頻來專門講一下這個RAG
外部工具也是非常重要的
比如說你查當天的天氣
可能用一些天氣的API
然後你回答一些金融市場的問題
你可能通過一些金融行業的API去查到最新的一些股票信息等等
當然外部工具也是非常重要的
那就是降低幻覺的第一個方法
就是引入外部的知識庫和外部的工具
那第二個方法呢
就是微調模型
比如說我們有一個具體的一個任務
我們是做客服機器人
專門回答某一類某一系列產品的一個對產品的一些問題
那我們可以對大模型針對這樣子的任務做一個特定的一個微調
讓它專注於去做一個客服機器人去回答一些客戶的問題
減少去產生一些不相關的內容
或者說它不知道的事情的一些幻覺的可能性
那微調模型是肯定可以提高這個模型的專業度和可靠性的
但是當然這種方法呢
它的成本也是非常高的
不光是說訓練模型本身的一些算力成本
硬件成本
更大的一些功夫可能需要花在
比如說我們要去準備這些訓練的數據
要讓這些訓練數據要是準確的
是多樣化的
同時它的覆蓋面是非常廣的
把這個微調模型的一些數據質量要提高
那整個過程中準備數據
微調模型花費的功夫確實是非常大的
這也是爲什麼大家現在更傾向於去把這個RAG
把知識庫的東西搞好
而不是去做微調模型
因爲微調模型確實是更費勁
花的功夫更多
但你不得不承認微調模型它能得到一個非常好的效果
很多行業還是會去做微調模型的
我們在做具體的任務的時候
我們在選擇模型的時候
也可以去選擇一些更加貼合我們業務場景的一些
已經微調過的模型
這樣可能可以達到一個更好的效果
不一定什麼事情都是用JJVD4O是最好的一個效果
還有可能你針對一個具體的一個業務場景
用一個已經微調過的模型
它可能能達到更好的效果
那我們再來講第三個方法吧
就是多模型去做集成
這個在實際應用中其實也是非常實用的
我們在實際應用中完全可以不只接一個大模型
現在也是大家都傾向於去接很多個大模型
每個大模型它可以有不同的作用
它也可以是平等的
你可以接多個大模型
它去回答同一個問題
再去做驗證比較等等
你也可以用一個模型來主要做回答
另外一個模型專門做檢查做驗證
這也是可以的
那集合多個模型的話
就可以使幻覺出現的可能性大大降低
我們再看第四個方法
我們去加入一些後續處理的一些規則
根據我們的業務場景去制定一些規則
比如說我們已經知道的事實
我們去專門做一些覈對
做一些邏輯的驗證
這個在一些關鍵的環節可能也是非常有必要的
就是對這個大模型產生的內容再去做審覈
再去做校對
這個工作可以再去利用另外一個大模型
根據一些邏輯去做
但是也可以我們自己去制定定義的規則
寫程序去做驗證
這都是可以的
所以這個第四個方法
就是對大模型產生的內容再去做一些後續的處理
那第五步也是非常大家容易想到
就是說去引入人工的干預和反饋
一方面人工可以去對大模型生成的內容去做審覈
去做糾正
它也可以在事後再去給反饋說
這個結果是準確度怎麼樣
它回答的好不好
去幫模型去不斷去改進
你也可以讓人工直接去幹預這個過程
比如說這一步就是要人工去完成的
等這個任務流程到這個節點的時候
就卡在這個人工審覈員這個節點
等人工審覈員說批准
或者說人工審覈員做一些反饋
它再進行下一步的動作
你可以把人工直接嵌入到這個工作流裏面去
你可以做批准
也可以讓人工去做多個候選答案的選擇
也可以做其他的指導
那最後一個方法
我覺得可能是更重要
最重要的就是說
去優化這個提示詞來降低模型的幻覺
它是屬於一個成本最低
但是效果也是非常不錯的一個方法
所以如果能夠熟練掌握各種提示詞的技巧的話
在這個降低幻覺方面能夠起到非常大的作用
那我們具體怎麼去優化提示詞來減少幻覺
我這邊再總結了九個方法
我們一起來看一下
我們看第一個就是明確指令和上下文
就是你的提示詞要越清晰
這樣它就能夠越準確
這邊舉了一個例子
比如說你說講講股票市場
那就很不明確
我們可以跟它明確
比如說哪一年以後美國的股市
它的主要趨勢之類的
就說把你的指令給的非常明確
然後給它更多的上下文
去這個模型去能夠得到更多的理解
第二步是加入一些假設約束
這邊舉的例子就是這邊
比如說你就簡單的問它什麼是GDP-4
你可以給它一些約束
比如說我們在不考慮未來版本的前提下
你再去解釋這個GDP-4的一個主要特性
這樣子它可以去減少它去想象
去產生一些不合邏輯的答案
我們再看第三個
提供更多的背景信息
比如說你可以
這個解釋神經網絡的例子來說
你可以給它背景說
我們給初學者怎麼樣去簡單的去介紹
你可以比如說去明確的說
是在圖像識別中是怎麼去工作的
這樣就給了更多的一些背景信息
第四步就是說讓模型給出來源或者參考
就讓它在回答的時候要去根據可靠的
就是說什麼經濟學理論
這樣子它會在生成內容的時候會更加謹慎
第五步是分佈推理
也就是COT合計鏈的方法
其實你簡單的
你就可以讓它去分步驟去解釋
然後包括什麼什麼東西
這樣子的話
它就會一步一步的去給我們回答
也從中能夠得到更正確的結果
第六個方法是限制模型的一個輸出
其實很多時候
如果我們讓它去生成太多太長的內容的話
它會更有可能胡說八道
如果我們就一個簡單的技巧去讓它
限制它的輸出的長度
就能達到更好的效果
這是一個非常非常簡單的技巧
但它的效果是非常非常的好
那除了限制這個長度的次數以外
你也可以去設定一些嚴格的輸出的範圍
或者也更明確的一些輸出的一些約束條件
比如說可以讓模型只回答問題
或者說提供一些已經驗證過的選項
然後第七個方法就是
你鼓勵這個模型去承認不確定性
比如說這裏就是基於已知的公開信息
如果沒有明確信息
請說明可能的方向
第七步其實非常非常重要
基本上你可以就用人話
你就跟他說
如果你不知道請不要胡說八道
這樣也是會有一定的用的
你就提醒他不要去編造沒有確認過的事實
它就能夠有效的減少判決
第八步反向提示的話
你可以排除一些東西
讓它不要涉及這方面的內容
最後一步嚴格來說
它不是一個提示詞
我們在跟模型去打交道的時候
有一些參數我們可以設置的
比如說這個溫度
溫度越低的話
它就可以越嚴謹
你可以把這個參數再調一調
那以上這幾點就是最重要的
這個就是怎麼優化提示詞這個部分
到最後你會發現
你要把AI大模型搞得好
提示詞真的是最爲重要的一個部分
一定要多學多練
我們才能掌握最好的一個提示詞技巧
那今天這期關於
怎麼降低大模型幻覺的內容就到這邊
如果你有什麼想法
歡迎在評論區下方給我留言
我們一起來討論
希望這期的視頻能對你有些幫助
我們下期再見吧
