: 借版問
: 小弟目前為前端工程師 受益於 Copilot 跟 ChatGPT
: 開發上真的輕鬆非常非常多 已經把按 tab 當作開發的一環了XD
: 不過之前就一直對生成式 AI 有個疑問
: 就是"幻覺"到底有沒有根本上的解決方法?
: 我的理解目前的 AI 還是靠大數據去堆疊資料量用以訓練模型
: 現階段也是不斷堆硬體去撐這塊
: (如果理解有誤請小力鞭QQ)
: 但幻覺的問題不論是餵更多資料或是透過 RAG 感覺都是治標不治本
: 還是沒辦法完全預防與解決
: 對我來說這樣可以稱得上是 AI 嗎? 還是充其量只是進階版的機器學習?
: 請各位軟工大神解惑了QQ
: 附上這個議題 ChatGPT 自己的回答:
: https://i.meee.com.tw/Gk7IjRH.png
: https://i.meee.com.tw/EVQCczh.png
解決幻覺,不一定要從LLM解,
而是靠系統架構解。
例如,做一個問答系統,很多人減少幻覺是這樣做的:
0. 預先整理好QA問答資料集
(人工整理,或機器輔助整理)
1. 使用者輸入Query。
2. 搜尋top-k個相似的問題。
3. 將 k個最相似的問題與答案輸入至LLM,
要求LLM生成最適合的答案。
4. 將LLM生成的答案輸出。(可能有幻覺,可能沒幻覺,難以控制)
幾乎所有的網路上範例程式都告訴你這樣做。
這套系統架構稱為:LLM生成答案。
實際上,你只要改個系統架構,就可以得到完全沒幻覺,又同樣準確率又同樣等級的問答系統:
流程如下:
0. 整理QA資料集
1. 使用者輸入Query
2. 搜尋top-k相似的問題
3. 要求LLM在K個問題與答案,弄成K個選項
要求LLM選擇一個最適合的問題與答案。
LLM只輸出1, 2, 3, 4。
(如有必要,可用outlines 或 guidance,控制 next token 只做這四個選擇)
4. 根據LLM選擇的選項,
系統只輸出選項1,2,3,4 對應的答案A。
由於A不是LLM生成的,所以永遠不會有幻覺問題。
這套系統架構稱為:LLM選擇答案。(而不是生成答案)
也就是說,同樣一個系統,LLM原本是靠生成產生最後結果,轉換成LLM只能從多個沒幻覺的事實間,選擇一個事實。永遠不會有幻覺。
以上只是舉例。
任何一個AI功能,只要掌握一個訣竅,
LLM或AI的輸出結果,不要用在最後階段的輸出
而是轉化問題,系統設計成LLM用在中間某任務,在事實間做分類選擇,輸出的就永遠是事實。
根據實驗與經驗,答對答錯的機會也不會
因為改變了系統設計架構而有影響。
做AI應用,真的不是無腦套模型,套別人流程。
LLM也不是只能用在生成文字,傳統的,分類,選擇,NER,排序最佳化,…都可以靠LLM 做。
把LLM當成系統中間工具,而不是最終輸出,可以大幅提升AI能力,又完全不會產生幻覺。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.72.189.178 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1730621342.A.166.html→ neo52771樓樓上這個有專有名詞叫做rerank 我開發系統時有設計 11/03 16:33
→ 本人2樓重點是系統架構設計。rerank完,該怎麼輸出?如果用rerank 11/03 16:44
→ 本人3樓完,LLM生成輸出結果,還是永遠有幻覺。如果rerank完,用t 11/03 16:44
→ 本人4樓op-k個答案事實輸出,就不會有幻覺。 11/03 16:44
→ 本人5樓而且當答案只有一個的情況,何必用到複雜的rerank。直接轉 11/03 16:50
→ 本人6樓換成搜尋結果 k選一的classification任務,還比較適合。 11/03 16:50
neo52777樓嗯合理同意,下週來玩看看 11/03 18:40
prag2228樓你可以一個問題問三次,覺得答案不對的就打臉chatGpt 11/03 20:57
→ prag2229樓多否定幾次可能就會給你正確答案了,(笑 11/03 20:58
→ labbat10樓微軟大老建議過了唄 11/03 21:04
j095832208011樓重點是這個還要靠人整理啊 11/03 23:26
→ 本人12樓我只是說最簡單的例子,也可做到不用靠人整理,或不要整理 11/03 23:38
→ 本人13樓QA。方法就是跟常見的RAG一樣,不整理QA,直接把文章切成c 11/03 23:38
→ 本人14樓hunk 段落。一樣搜最接近top-K段落,給LLM生成答案,但是 11/03 23:38
→ 本人15樓生成答案後,"不要"信任LLM的生成文字直接輸出,使用傳統 11/03 23:38
→ 本人16樓的NLP去糾錯(spell correct ion),糾錯的候選只能是chunk 11/03 23:38
→ 本人17樓事實中的連續句子。最後輸出糾正到事實的句子。這樣可做到 11/03 23:38
→ 本人18樓不整理QA但整個系統只會輸出最正確的事實句子。 11/03 23:38
→ 本人19樓方法變形很多啦,但原則就是:LLM只是選擇或決策的工具, 11/03 23:44
→ 本人20樓非最後的答案生成輸出。這樣就會有同樣聰明,又永遠是事實 11/03 23:44
→ 本人21樓輸出的AI。 11/03 23:44
viper970922樓原來是從問答題變成選擇題 11/04 00:44
→ agario23樓假設你說的LLM只輸出1, 2, 3, 4是指只生出一個數字token 11/04 06:54
→ agario24樓這樣效果應該不是很好吧,畢竟沒時間一步一步思考 11/04 06:54
→ 本人25樓我只是舉簡單的例子,你先做要CoT然後最後輸出選項,也可 11/04 07:15
→ 本人26樓以啊。其實許多Agent選tool的概念就是這樣,多種tool用選 11/04 07:15
→ 本人27樓項讓LLM 選,LLM只限定選1,2,3,4這樣選項,也可控制next t 11/04 07:15
→ 本人28樓oken只選數字。選tool行為就不會有幻覺,同樣的道理。 11/04 07:15
→ 本人29樓viper9709總結得很好。不要有幻覺,就是:問答題轉成,事 11/04 07:17
→ 本人30樓實的選擇。 11/04 07:17