AI進入推理模型時代,一文帶你讀懂思維鏈
這種方法類似,只是它不僅要強制選擇最可能的 token,還要查看整個響應的置信度分數。
評估內部置信度分數
為此,系統首先會啟動一定數量 k 的初始頂部 token,然后從每個 token 生成路徑。生成答案后,它會通過分析不同路徑中每個 token 的概率(logit)來計算置信度分數。
返回的結果是具有最高概率的答案(或路徑)。
這種方法稱為 Decoding CoT,由 DeepMind 提出。這種方法的思想是查看模型對返回答案的內部置信度。
但是如果它沒有回答問題的固有知識會發生什么?與 CoT-SC 一樣,這種方法在很大程度上取決于模型首先是否具有正確的答案。
不過,這并不意味著我們不應該測試它。
對于所有這些技術,都有人開源了不同的實現,這個也不例外。
因此,我很容易就建立了一個系統來測試這些方法,并比較哪種方法在較小的開源模型 Llama 3 8B 上表現更好。
感謝 Codelion 開源他的實現,讓我可以輕松復現:https://github.com/codelion/optillm
從上面的結果可以看到,與其他方法(例如 Entropy)或僅使用貪婪解碼來處理此特定模型相比,使用 Decoding CoT 顯然產生了最佳結果。
更新的技術
現在的研究進展很快,很難完全跟進。這里不會過多論述,但我確實想提一下 Tree of Thoughts (ToT),特別是與蒙特卡洛搜索的結合時。
ToT 于 2023 年底由普林斯頓大學和 DeepMind 提出,但通常建立在以前的基于樹的推理方法之上。
ToT 不同于具有自我一致性的思維鏈(CoT-SC)。ToT 不會生成多條路徑,而是在生成后才對其進行評估,而是在思維推進過程中對其進行動態評估。
簡單演示 ToT
我們可以將 ToT 想象為 4 個不同的人聚在一起解決問題。每一步,他們都會提出自己的想法,并共同評估哪些想法看起來最有希望。如果一個人的推理似乎有缺陷,他就會離開,其他人會繼續推進他們的解決方案。
最后,推理正確的人將能夠為你提供答案。
這使得模型可以動態修剪看起來乏善可陳的路徑,專注于更有希望的線程,從而節省資源。
但是,有人可能會問,系統如何決定哪個線程是對的,哪個線程是錯的?這是由模型本身決定的。
這也是為什么像蒙特卡洛樹搜索(MCTS)這樣的擴展可以提供更多無偏見的評估機制。MCTS 允許反向傳播,這意味著它可以根據新信息重新審視和改進早期步驟,而簡單的 ToT 只會向前移動。
在 4 個人解決問題的案例中,MCTS 會允許人們有不太理想的思維,但仍會在游戲中停留更長時間。這種情況的評估方法會有所不同。
MCTS 可以模擬多種未來路徑,評估其潛力,并回溯以改進早期決策。它引入了外部指標(獎勵),而不是完全依賴模型。
像 UCB(置信上限)這樣的統計數據使用這些獎勵來決定進一步探索或重新審視哪些想法。
MCTS 比簡單的 ToT 稍微復雜一些,值得單獨寫一篇文章。
CoT 的經濟學
所以,到目前為止,你可能會想:好吧,我們已經有一些改進,為什么不總是使用更高級的思維鏈形式呢?
首先,成本(以及思考時間)。
對于應用于不同模型的鏈,這里計算的是平均推理步數。
從這個角度來看,你平均要為每個問題支付高達 8 倍的費用。對于在高級數學問題上表現最好的 Sonnet,你每 500 個問題最多要支付 15 美元。
這看起來可能不多,但是一旦你每天使用這個系統為客戶服務或你的團隊生成答案,那每月的消耗可達數百乃至數千。
在某些情況下,使用高級推理方法是有意義的,但并非總是如此。
現在可能存在對 CoT 進行微調的情況,可從根本上消除了多次調用的需要。
這里有一點需要權衡考慮:我們希望增加思考時間,讓模型有足夠的時間進行有效推理,但這樣做也會增加用戶的失望情緒和成本。
構建智能系統
去年 9 月,一篇題為「To CoT or not to CoT?」的論文發表,該論文認為應用 CoT 帶來的大多數改進主要在數學和復雜推理方面。
我們在這里也看到了這一點,在簡單的問題上,CoT 帶來的提升有限。
當我們應用這些鏈時,我們必須等待更長時間才能得到答復。這值得嗎?應該注意的是,對于簡單的任務來說,所有這些策略都可能有點過頭了。
但是,如果你正在構建一個需要確保答案正確的系統,那么采用某種形式的 CoT 或解碼可能會大有助益。
或許,一種值得考慮的做法是:先用一個模型根據任務難度來設置前面幾步,然后分析它是否有信心一開始就解答這個問題。然后讓模型推理(通過鏈),最后用另一個模型對其響應進行評分。