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;未添加任何外部假设。

相关

  • 项目
  • 项目
  • 项目
  • 项目