SwiftSage
- 我们介绍了 SwiftSage,一种受人类认知的双重过程理论启发的新型代理框架,旨在在复杂的交互推理任务中突出行动规划的表现。SwiftSage 集成了行为克隆和大语言模型(LLMs)的提示优势,以提高任务完成性能。
- 该框架包括两个主要模块:表示快速和直觉思维的 Swift 模块和模拟深思熟虑思维过程的 Sage 模块。Swift 模块是一个小型的编码器-解码器语言模型,在 oracle 代理的行动轨迹上进行微调(即,模仿学习/行为克隆),而 Sage 模块则使用诸如 GPT-4等 LLMs 进行子目标规划和基础设施。我们开发了一种启发式方法,和谐地集成这两个模块,从而产生一个更高效且稳定的问题解决过程。
- 在 ScienceWorld 基准的 30 项任务中,SwiftSage 显著优于其他方法,例如 SayCan、ReAct 和 Reflexion,展示了其在解决复杂现实世界任务中的有效性。
作者:
Bill Yuchen Lin, Yicheng Fu, Karina Yang, Prithviraj Ammanabrolu, Faeze Brahman, Shiyu Huang, Chandra Bhagavatula, Yejin Choi, Xiang Ren. (AI2-Mosaic 和 USC-INK)。
对比
框架
TODO:
- [] 添加对开源 LLMs 的支持(例如,
https://huggingface.co/Salesforce/xgen-7b-8k-inst
) - [] 添加其他任务,例如网络任务和数学问题
安装
conda create -n swiftsage python=3.8 pip
conda activate swiftsage
pip3 install scienceworld==1.1.3
pip3 install -r requirements.txt
pip3 install torch --extra-index-url https://download.pytorch.org/whl/cu116
conda install -c "nvidia/label/cuda-11.6.0" cuda-toolkit
conda install -c conda-forge openjdk # 如有需要
模仿学习
您可以通过使用此处的检查点来跳过此步骤:https://huggingface.co/yuchenlin/swift_sw 此模型基于 Flan-t5-large (770m)。生成用于模仿学习的数据(行为克隆)
cd fast_slow_agent/data_utils/
# 解压 goldpaths-all.zip
python data_convert.py
训练 Swift 模块
cd fast_agent
bash ds_train.sh
SwiftSage 代理
请注意,我们在代码库中将 SwiftSage 称为 fast_slow_agent
。
bash run_eval_fast_slow.sh
日志将被保存,显示结果和进行分析的脚本在 analysis
文件夹中。
特别地,如果您想测试管道或调试特定任务和变量:
CUDA_VISIBLE_DEVICES=0 python eval_agent_fast_slow.py \
--task_nums "28" \
--set "test_mini" \
--seed 42 \
--debug_var "450" \
--gpt_version "gpt-4" \
--output_path "fast_slow_logs/tmp_gpt4/"
# 您可以检查 `fast_slow_logs/tmp/task28.log` 以查看进度。
评估
SayCan、ReAct、Reflexion
请检查 baselines
文件夹中的脚本和代码。
其他基准方法
请查看: https://github.com/allenai/ScienceWorld
引用
@article{Lin2023SwiftSageAG,
author = {Bill Yuchen Lin and Yicheng Fu and Karina Yang and Prithviraj Ammanabrolu and Faeze Brahman and Shiyu Huang and Chandra Bhagavatula and Yejin Choi and Xiang Ren},
journal = {ArXiv preprint},
title = {SwiftSage: A Generative Agent with Fast and Slow Thinking for Complex Interactive Tasks},
url = {https://arxiv.org/abs/2305.17390},
volume = {abs/2305.17390},
year = {2023}
}