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/ |
確保搜尋邏輯按預期運作的單元測試。 |
開始使用
- 建立一個全新的環境(建議使用 Python 3.11)並以可編輯模式安裝套件:
conda create -n sal python=3.11 && conda activate sal pip install -e '.[dev]' - 登入 Hugging Face,以便腳本可以拉取模型並推送結果:
huggingface-cli login - 安裝 Git-LFS(大型模型檔案所需)。
- 從
recipes/中選擇一個配方(例如best_of_n.yaml)並按照recipes/README.md中的說明執行相關腳本。
典型工作流程
- 選擇一個模型(例如
meta-llama/Meta-Llama-3-8B)。 - 選擇一個驗證器(一個較小的模型或一個可以判斷每個推理步驟的微調獎勵模型)。
- 編輯 YAML 配方以設定計算預算(例如
num_samples: 32,beam_width: 5)。 - 啟動腳本;它將產生多個候選延續,使用驗證器對其進行評分,並傳回得分最高的答案。
誰會使用它
- 探索推理時間計算擴展或比較搜尋策略的研究人員。
- 需要從固定模型獲得更高品質答案而無需重新訓練的從業者。
- 任何想要重現隨附部落格文章和論文結果的人。
限制
- 目前僅實作了三種搜尋演算法;更奇特的方法需要手動新增。
- 需要存取驗證模型;訓練此類過程獎勵模型超出了本儲存庫的範圍(儘管程式碼提供了相關掛鉤)。
- 該工具包專為批次/叢集執行(Accelerate/Slurm)而設計,對於微小的單 GPU 實驗來說可能過於複雜。
引用 如果您使用此程式碼或想法,請引用本儲存庫自身的引用以及它所建立的 DeepMind 論文(兩者均在 README 中提供)。
以上所有資訊均直接取自儲存庫的 README;未添加任何外部假設。
相關
- 專案
- 專案
- 專案
- 專案