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