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設定ファイル:モデル、検索アルゴリズム、ハイパーパラメータ(ビーム幅、サンプル数、検証モデルなど)、および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. スクリプトを起動すると、複数の候補が生成され、検証器によってスコアリングされ、最もスコアの高い回答が返されます。

対象ユーザー

  • 推論時の計算スケーリングを研究している、または検索戦略を比較したい研究者。
  • 再トレーニングなしで、固定モデルからより高品質な回答を得る必要がある実務者。
  • 付属のブログ記事や論文の結果を再現したい方。

制限事項

  • 現在実装されている検索アルゴリズムは3つのみです。より特殊な手法は手動で追加する必要があります。
  • 検証モデルへのアクセスが必要です。このようなプロセス報酬モデルのトレーニングは本リポジトリの範囲外です(ただし、コードにはフックが用意されています)。
  • このツールキットはバッチ/クラスター実行(Accelerate/Slurm)向けに設計されており、小規模な単一GPU実験には過剰な場合があります。

引用 コードやアイデアを使用する場合は、本リポジトリの引用と、それが基盤としているDeepMindの論文の両方を引用してください(どちらもREADMEに記載されています)。


上記の情報はすべてリポジトリのREADMEから直接引用したものであり、外部からの仮定は一切含まれていません。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト