mcts_llm - cccbook/py2gpt GitHub Wiki

融合 MCTS 在 LLM 中 -- 從模仿到創新

AlphaGo 使用 MCTS 導致在棋藝上超越人類,這已經不僅僅是模仿,而是有創新的成分。

透過搜尋,而不只是記憶,AlphaGo 將人類未曾探索過的下棋方法,納入搜尋空間當中。

MCTS 能導入到 LLM 中,讓 LLM 也能有所創新,從而探索人類從來未曾說過的說法嗎?

在 RLHF 當中,LLM 會產生數個回答,然後再由人類評判好壞。

這數個回答是透過控制 temperature > 0 而產生的。

但如果我們不要靠 temperature,而是依賴 MCTS 呢?

方法如下

  1. 將所有文章以 token 為單位建立索引 (最好是用 trie)
  2. 從現在這個位置向前看,每個 token 之後可能會有很多詞句,也可能沒有詞句。(多少不一)
  3. 於是我們可以透過這樣的詞句數量建立信賴區間上界。
  4. 用這個信賴區間上界,決定下一個產生的 token
  5. 產生了 token 之後,那棵 trie 又將多新增一筆紀錄。(這會更改信賴區間上界)
  6. 於是每次遇到相同的狀況,產生 的 token 就有可能會不同, MCTS 會避免一直產生相同的語句。
  7. 反覆 4-6 的過程,用 MCTS+LLM 產生語句。

這樣 LLM 除了記憶之外,就還有搜尋的成分,去探索未曾被寫出來的語句,未曾被創造過的文章。

剩下的一個問題是,如何判定這些文章的好壞?

這恐怕是現在的 benchmarking 機制所還沒處理到的部分。

(而且這個方法有缺點,就是對於那些有標準答案的問題,MCTS 可能會因此而選擇錯誤的答案)