思维缓冲区:大型语言模型的思维增强推理
本仓库包含我们思维缓冲区(BoT)框架的官方实现。隶属机构:北京大学、加州大学伯克利分校、斯坦福大学
🚩 最新更新
- 发布BoT的初始代码,支持GPT-4和Llama3-70B [2024.6.6]
- 更新适用于较小LLM(如Llama3-8B)的代码 [2024.6.24]
- 发布元缓冲区和缓冲区管理器
- 将BoT扩展到更多应用场景
简介
我们提出了BoT,这是一种新颖且versatile的思维增强推理方法,旨在提高大型语言模型(LLMs)的准确性、效率和稳健性。具体而言,我们提出了一个元缓冲区来存储一系列高层次的思维,称为思维模板,这些模板是从各种任务的问题解决过程中提炼出来的。对于每个问题,我们检索相关的思维模板,并根据具体的推理结构自适应地实例化它以进行高效推理。为确保可扩展性和稳定性,我们还提出了一个缓冲区管理器来动态更新元缓冲区,从而随着更多任务的解决而提升其capacity。我们在10个具有挑战性的推理密集型任务上进行了广泛实验,相比先前的最先进(SOTA)方法取得了显著的性能提升:在24点游戏上提升11%,几何形状上提升20%,一步将军上提升51%。进一步分析表明,我们的BoT具有卓越的泛化能力和稳健性,同时平均只需要多查询提示方法(如思维树/图)12%的成本。值得注意的是,我们发现我们的Llama3-8B + BoT有潜力超越Llama3-70B模型。
我们的BoT概述 |
不同方法的比较
任务/方法 | GPT-4 | PAL | ToT | 元提示 | BoT(我们的) |
---|---|---|---|---|---|
24点游戏 | 3.0 | 64.0 | 74.0 | 67.0 | 82.4 |
MGSM(平均) | 84.4 | 72.0 | 86.4 | 84.8 | 89.2 |
多步算术 | 84.0 | 87.4 | 88.2 | 90.0 | 99.8 |
单词排序 | 80.4 | 93.2 | 96.4 | 99.6 | 100.0 |
Python谜题 | 31.1 | 47.3 | 43.5 | 45.8 | 52.4 |
几何形状 | 52.6 | 51.2 | 56.8 | 78.2 | 93.6 |
将军一步 | 36.4 | 10.8 | 49.2 | 57.0 | 86.4 |
日期理解 | 68.4 | 76.2 | 78.6 | 79.2 | 88.2 |
企鹅 | 71.1 | 93.3 | 84.2 | 88.6 | 94.7 |
十四行诗写作 | 62.0 | 36.2 | 68.4 | 79.6 | 80.0 |
使用思维缓冲进行评估
1. 基准测试
目前,我们基于三个不同的基准测试发布了BoT的演示版本:
- 24点游戏,来自 Yao et al., 2023
- 将军一步,来自 BIG-Bench套件 (BIG-Bench authors, 2023)
- 单词排序,来自 BIG-Bench Hard (Suzgun et al., 2023; BIG-Bench authors, 2023)
2. 元缓冲
对于每个任务,我们从我们的元缓冲库中选择一个思维模板样本。请持续关注我们完整元缓冲库的更新!
3. 快速开始
首先,设置环境:
git clone https://github.com/YangLing0818/buffer-of-thought-llm
cd buffer-of-thought-llm
conda create -n BoT python==3.9
pip install -r requirements.txt
3.1. 在三个基准测试上运行
我们的BoT易于使用。只需运行:
python run_benchmarks.py --task_name 'gameof24' --api_key '如果想使用GPT-4,请在此输入你的API密钥' --model_id 'GPT-4的模型ID或你本地LLM的路径'
这里,--task_name 可以是 gameof24、checkmate、wordsorting 之一。
如果你想使用GPT系列,则需要 --api_key;如果不使用,可以跳过。
--model_id 应该是GPT系列的模型ID,如 gpt-4o、gpt-4-turbo,或者如果你没有设置 --api_key,则为你本地LLM的路径。
这三个任务的数据位于 /benchmarks
目录中。
实验过程中生成的结果存储在 /test_results
目录中。
3.2. 验证测试结果
运行以下命令来验证我们BoT的测试结果:
python validate_results.py --task_name 'gameof24' --test_path '你想验证的.jsonl文件的路径'
这将打印出所选任务在相关.jsonl文件上的准确率。
📖 BibTeX
@article{yang2024buffer,
title={Buffer of Thoughts: Thought-Augmented Reasoning with Large Language Models},
作者={杨凌 和 于兆晨 和 张天骏 和 曹世一 和 许民凯 和 张文涛 和 Joseph E. Gonzalez 和 崔斌},
期刊={arXiv预印本 arXiv:2406.04271},
年份={2024年}
}