huggingface/search-and-learn

Recipes to scale inference-time compute of open models

Search and Learn – 擴展開源 LLM 的推理時間計算

這是什麼

  • 來自 Hugging Face 的一個小型開源工具包,提供配方腳本,讓大型語言模型在推理時能夠「思考更久」。它實作了幾種基於搜尋的推理策略(Best-of-N、beam search、Diverse Verifier Tree Search),讓您可以為數學或程式碼生成等難題分配更多的計算資源。

為什麼它很重要

  • 訓練越來越大的模型變得非常昂貴。透過增加推理期間使用的計算量,您可以從固定大小的模型中獲得更好的結果,這與 OpenAI 的 o1 模型所展示的類似。

核心組件

組件 角色
scripts/ 啟動擴展計算管線的命令列工具(例如,在叢集上啟動任務、處理模型載入、執行搜尋演算法)。
recipes/ YAML 設定檔,描述單次推理執行:使用哪個模型、哪個搜尋演算法、超參數(beam width、樣本數、驗證模型等),以及任何 Accelerate/Slurm 設定。
src/ 最小化的 Python 函式庫,實作了搜尋演算法以及用於評分中間推理步驟的「過程獎勵模型」(驗證器)介面。
tests/ 確保搜尋邏輯按預期運作的單元測試。

開始使用

  1. 建立一個全新的環境(建議使用 Python 3.11)並以可編輯模式安裝套件:
    conda create -n sal python=3.11 && conda activate sal
    pip install -e '.[dev]'
    
  2. 登入 Hugging Face,以便腳本可以拉取模型並推送結果:
    huggingface-cli login
    
  3. 安裝 Git-LFS(大型模型檔案所需)。
  4. recipes/ 中選擇一個配方(例如 best_of_n.yaml)並按照 recipes/README.md 中的說明執行相關腳本。

典型工作流程

  1. 選擇一個模型(例如 meta-llama/Meta-Llama-3-8B)。
  2. 選擇一個驗證器(一個較小的模型或一個可以判斷每個推理步驟的微調獎勵模型)。
  3. 編輯 YAML 配方以設定計算預算(例如 num_samples: 32, beam_width: 5)。
  4. 啟動腳本;它將產生多個候選延續,使用驗證器對其進行評分,並傳回得分最高的答案。

誰會使用它

  • 探索推理時間計算擴展或比較搜尋策略的研究人員。
  • 需要從固定模型獲得更高品質答案而無需重新訓練的從業者。
  • 任何想要重現隨附部落格文章和論文結果的人。

限制

  • 目前僅實作了三種搜尋演算法;更奇特的方法需要手動新增。
  • 需要存取驗證模型;訓練此類過程獎勵模型超出了本儲存庫的範圍(儘管程式碼提供了相關掛鉤)。
  • 該工具包專為批次/叢集執行(Accelerate/Slurm)而設計,對於微小的單 GPU 實驗來說可能過於複雜。

引用 如果您使用此程式碼或想法,請引用本儲存庫自身的引用以及它所建立的 DeepMind 論文(兩者均在 README 中提供)。


以上所有資訊均直接取自儲存庫的 README;未添加任何外部假設。

相關

  • 專案
  • 專案
  • 專案
  • 專案