论文的正式实现:ReWOO:将推理与观察解耦,以获得有效的增强语言模型。这是一种工具增强的LM范式,利用语言模型的可预见推理能力来提高系统参数和提示效率。
增强语言模型 (ALM) 将大型语言模型 (LLM) 的推理功能与允许知识检索和操作执行的工具相结合。现有的ALM系统触发LLM思维过程,同时以交错的方式从这些工具中提取观察结果。具体来说,LLM 调用外部工具的原因,停止以获取工具的响应,然后根据所有前面的响应令牌决定下一个操作。这种范式虽然简单易实现,但通常会因冗余提示和重复执行而导致巨大的计算复杂性。本研究首次解决了这些挑战,提出了一种模块化范式ReWOO(无观察推理),将推理过程与外部观察分离,从而显着减少了代币消耗。对六个公共 NLP 基准和精选数据集的全面评估揭示了我们提出的方法一致的性能增强。值得注意的是,ReWOO在多步骤推理基准HotpotQA上实现了5×的代币效率和4%的准确性提升。此外,ReWOO在工具故障情况下表现出鲁棒性。除了快速效率之外,将参数化模块与非参数工具调用解耦还可以对指令进行微调,将LLM卸载到更小的语言模型中,从而大大减少模型参数。我们的说明性工作将推理能力从 175B GPT3.5 卸载到 7B LLaMA,展示了真正高效和可扩展的 ALM 系统的巨大潜力。
pip install -r requirements.txt
从OpenAI,WolframAlpha和SerpApi生成API密钥。然后将密钥分别保存到 和 中。
./keys/openai.key
./keys/wolfram.key
./keys/serpapi.key
python run.py --method rewoo --toolset Google LLM --base_lm text-davinci-003
用于在
--method
'direct', 'cot', 'react', 'rewoo'
用于提供可用工具,包括
--toolset
'Google', 'Wikipedia', 'WolframAlpha', 'LLM', 'Calculator', 'SearchSOTU'
用于选择基本语言模型,可以是 、 或 。你也可以单独为 .
--base_lm
gpt-3.5-turbo
text-davinci-003
gpt-4
path_to_alpca-lora_adapter
--planner_lm
--solver_lm
rewoo
添加到打印中间推理。
--print_trajectory
python run_eval.py --method rewoo --dataset hotpot_qa --sample_size 10 --toolset Wikipedia LLM --base_lm gpt-3.5-turbo --save_result`
用于分配基准任务,这可以是
--dataset
'hotpot_qa', 'trivia_qa', 'gsm8k', 'physics_question', 'sports_understanding', 'strategy_qa', 'sotu_qa'
用于指定要评估的样本数。
--sample_size
用于将评估结果保存到 。
--save_result
./results/
除了公共 NLP 基准测试外,我们还在 SOTU2023 上的精选 QA 数据集上评估 ReWOO。对于 ALM 来说,检查模型在回答私有文档时的工具增强能力特别有用。
我们在这里上传了经过指令调整的 Planner 7B 模型(基于 Alpaca 7B)。指令数据集(可在此处获得)是ReWOO框架中“正确”的HotpotQA和TriviaQA任务规划轨迹的混合体。
python app.py
(确保你的 openai 和 serpapi 密钥存储在安装
./keys/)
@article{xu2023rewoo, title={ReWOO: Decoupling Reasoning from Observations for Efficient Augmented Language Models}, author={Xu, Binfeng and Peng, Zhiyuan and Lei, Bowen and Mukherjee, Subhabrata and Liu, Yuchen and Xu, Dongkuan}, journal={arXiv preprint arXiv:2305.18323}, year={2023} }