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