作者/机构: Baian Chen (System2 Research), Chang Shu (University of Cambridge), Ehsan Shareghi (Monash University), Nigel Collier (University of Cambridge), Karthik Narasimhan (PLI, Princeton University), Shunyu Yao (PLI, Princeton University)

A1 主要贡献

本文探讨了通过微调语言模型(LMs)来构建语言代理这一被忽视的研究方向。

  • 核心问题:目前大多数语言代理依赖于对现有语言模型进行少样本提示(few-shot prompting),这种方式学习支持有限,导致代理在性能和鲁棒性上表现不佳。特别是高级代理严重依赖于像GPT-4这样的大型模型,这带来了高成本、高延迟以及可控性和可复现性等问题。尽管微调是解决这些问题的有效方案,但在语言代理领域的研究却非常有限。

  • 研究目标:系统性地研究语言代理的微调,旨在全面展示微调相比于提示方法的各种优势,并为从业者提供关于微调的实验设计、见解和开放性问题。

  • 创新点

    1. 提出FireAct方法:这是一种新颖的语言模型微调方法,它使用由多种任务和多种提示方法(如ReAct, CoT, Reflexion)生成的代理轨迹(trajectories),并将这些轨迹统一为ReAct格式进行微调。这种方法旨在通过提升微调数据的多样性来增强代理的能力。
    2. 全面的实验验证:在一个包含谷歌搜索API的问答(QA)设置中,本文对多种基础语言模型(如GPT-3.5, Llama2, CodeLlama)、提示方法、微调数据和QA任务进行了详尽的实验。
    3. 证实微调的显著优势:实验结果一致表明,微调能够显著提升语言代理的性能。例如,使用GPT-4生成的500个代理轨迹对Llama2-7B进行微调,使其在HotpotQA任务上的性能提升了77%。此外,微调还能将推理时间缩短4倍,并在面对干扰性工具输出时将性能提升64%。
    4. 提供实践性见解:本文通过实验揭示了微调中各因素(如基础模型、数据规模、数据类型)之间复杂的相互作用,并提供了可操作的见解。例如,研究发现虽然GPT-3.5在小样本微调时表现优越,但通过增加微调样本数量,开源模型可以逐渐缩小差距。研究还表明,增加不同任务的微调数据并不会损害在其他任务上的性能,这为构建一个通用的多任务代理模型提供了可能性。

A3 背景知识/关键Observation/设计原则

我们的工作主要基于ReAct(Yao等人,2022b)【索引87,React: Synergizing reasoning and acting in language models. 2022. arXiv】,这是一种流行的语言代理方法。一个ReAct任务解决轨迹(如图5所示)由多个“思考-行动-观察”循环组成,其中语言模型生成自由形式的“思考”用于多种目的(例如,从观察中提取信息、提出和调整行动计划、跟踪任务进展),以及结构化的“行动”来与环境(工具)互动并接收“观察”反馈。ReAct的表现优于仅推理或仅行动的基线,因为推理可以指导行动,而行动可以通过新信息支持推理。因此,ReAct格式已成为许多后续语言代理的基础,例如Reflexion(Shinn等人,2023)【索引60,Reflexion: Language agents with verbal reinforcement learning. 2023. arXiv】、SwiftSage(Lin等人,2023)【索引31,Swiftsage: A generative agent with fast and slow thinking for complex interactive tasks. 2023. arXiv】和AutoGPT(Richards,2023)【索引53,AutoGPT. 2023. https://github.com/Significant-Gravitas/AutoGPT】。

Yao等人(2022b)【索引87,React: Synergizing reasoning and acting in language models. 2022. arXiv】的研究中也展示了一个初步的在HotpotQA(Yang等人,2018)【索引85,HotpotQA: A dataset for diverse, explainable multi-hop question answering. 2018. EMNLP】上进行的PaLM(Chowdhery等人,2022)【索引6,Palm: Scaling language modeling with pathways. 2022. arXiv】微调实验,其中一个微调后的PaLM-62B模型胜过了一个提示驱动的PaLM-540B模型。但是,这一发现是否能推广到其他类型的语言模型、提示方法或任务上,仍然是未知的。关于语言代理微调的后续研究一直很稀少(参见第2节)。

因此,我们提出了FireAct,一种针对语言代理的新颖微调方法。如图2(a)所示,FireAct同样利用对强语言模型进行少样本提示来生成多样化的ReAct轨迹,以微调一个较小的语言模型(即蒸馏(Hinton等人,2015)【索引19,Distilling the knowledge in a neural network. 2015. arXiv】)。但与Yao等人(2022b)【索引87,React: Synergizing reasoning and acting in language models. 2022. arXiv】不同,FireAct通过混合多种训练任务和提示方法来明确促进数据的多样性。这里我们考虑了另外两种与ReAct格式兼容的方法:

  • 思维链(Chain of Thought, CoT) (Wei等人,2022b)【索引84,Chain of thought prompting elicits reasoning in large language models. 2022. arXiv】生成中间推理步骤来弥合问题与答案之间的差距。每个CoT轨迹可以被转化为一个简单的单轮ReAct轨迹,其中“思考”是中间推理,“行动”是返回答案。对于不需要工具的简单问题,CoT非常有用(图2(b))。
  • 反思(Reflexion) (Shinn等人,2023)【索引60,Reflexion: Language agents with verbal reinforcement learning. 2023. arXiv】主要遵循ReAct轨迹,但加入了额外的反馈和自我反思。在本文中,我们简单地在第6和第10个ReAct回合提示模型进行反思,这样长的ReAct轨迹就可以调整解决当前任务的策略(例如,“电影搜索至今没有帮助,我现在应该搜索导演”)。

在推理过程中(图2(b)),FireAct代理减轻了对少样本提示的需求,这使得推理更加高效和便捷。它还可以根据任务的复杂性隐式地选择合适的方法,并由于拥有更广泛和更多样化的学习支持,比提示方法表现出更强的泛化能力和鲁棒性。

图2:FireAct示意图。(a) 在微调期间,一个大型LM(如GPT-4)根据来自不同数据集的问题和来自不同方法的提示生成任务解决轨迹。然后将成功的轨迹转换为ReAct格式以微调一个较小的LM。(b) 在推理期间,微调后的LM可以在没有少样本提示的情况下运行,并且可以隐式地选择一种提示方法来完成具有灵活长度的ReAct轨迹,以适应不同的问题复杂性。例如,一个简单的问题可以仅使用一个思考-行动-观察循环来解决,而无需使用工具。
图2:FireAct示意图。(a) 在微调期间,一个大型LM(如GPT-4)根据来自不同数据集的问题和来自不同方法的提示生成任务解决轨迹。然后将成功的轨迹转换为ReAct格式以微调一个较小的LM。(b) 在推理期间,微调后的LM可以在没有少样本提示的情况下运行,并且可以隐式地选择一种提示方法来完成具有灵活长度的ReAct轨迹,以适应不同的问题复杂性。例如,一个简单的问题可以仅使用一个思考-行动-观察循环来解决,而无需使用工具。

A2 方法细节

任务

本文在成熟的问答(QA)任务上进行训练和测试。 这些任务遵循了先前工作(Wei等人,2022b【索引84,Chain of thought prompting elicits reasoning in large language models. 2022. arXiv】;Yao等人,2022b【索引87,React: Synergizing reasoning and acting in language models. 2022. arXiv】;Shinn等人,2023【索引60,Reflexion: Language agents with verbal reinforcement learning. 2023. arXiv】)的选择,因为它们拥有丰富且高质量的训练数据,并且评估方法(答案精确匹配)简单可靠。我们使用了四个数据集:
- HotpotQA (Yang等人,2018)【索引85,HotpotQA: A dataset for diverse, explainable multi-hop question answering. 2018. EMNLP】是一个具有挑战性的问答数据集,需要多步推理和知识检索。答案通常是一个简短的实体或是/否。我们使用2000个随机训练问题来策划微调数据,并使用500个随机开发集问题进行评估。
- Bamboogle (Press等人,2022)【索引48,Measuring and narrowing the compositionality gap in language models. 2022. arXiv】是一个包含125个多跳问题的测试集,其格式与HotpotQA相似,但经过精心设计,以避免通过谷歌搜索直接解决问题。
- StrategyQA (Geva等人,2021)【索引13,Did aristotle use a laptop? A question answering benchmark with implicit reasoning strategies. 2021. TACL】是一个是/否问答数据集,需要隐式推理步骤。
- MMLU (Hendrycks等人,2021)【索引18,Measuring massive multitask language understanding. 2021. ICLR】涵盖了57个多项选择问答任务,涉及初等数学、历史和计算机科学等多个领域。

工具

我们使用SerpAPI构建了一个谷歌搜索工具。 遵循Press等人(2022)【索引48,Measuring and narrowing the compositionality gap in language models. 2022. arXiv】的做法,我们使用SerpAPI构建了一个谷歌搜索工具,该工具会返回“答案框”、“答案摘要”、“高亮词”或“首个结果摘要”中第一个存在的内容。这确保了响应简短且相关。我们发现,这样一个简单的工具足以满足跨任务的基本问答需求,并增加了我们微调模型的易用性和通用性。

语言模型

我们研究了三类语言模型。
- OpenAI GPT。我们使用GPT-4(OpenAI,2023b)【索引43,Gpt-4 technical report. 2023】提示生成所有微调数据,并使用GPT-3.5(OpenAI,2023a)【索引42,Gpt-3.5 turbo fine-tuning and api updates. 2023】进行微调和提示。我们在2023年7月至9月期间以ChatCompletion模式使用了这两个模型。
- Llama-2 (Touvron等人,2023b)【索引78,Llama 2: Open foundation and finetuned chat models. 2023. arXiv】模型,参数量为7B和13B,使用“chat”模式。
- CodeLlama (Roziere等人,2023)【索引55,Code llama: Open foundation models for code. 2023. arXiv】模型,参数量为7B、13B和34B,使用“instruct”模式,这有助于进一步理解模型规模扩展效应以及代码微调对代理任务的重要性。

微调方法

我们主要使用低秩自适应(LoRA)进行微调实验。 我们使用LoRA(Hu等人,2022)【索引21,Lora: Low-rank adaptation of large language models. 2022. ICLR】进行大多数微调实验,但为了进行某些比较,也使用了全模型微调。

实验结构

我们将实验分为三个复杂性递增的部分。 考虑到语言代理微调涉及的多种因素,我们将实验分为三个部分:
- 使用单一提示方法在单一任务上进行微调(第5节);
- 使用多种方法在单一任务上进行微调(第6节);
- 使用多种方法在多任务上进行微调(第7节)。

A4 实验环境

  • 数据集

    • HotpotQA: 用于微调数据生成(从训练集中随机抽取2,000个问题)和评估(从开发集中随机抽取500个问题)。这是一个需要多步推理的问答数据集。
    • Bamboogle: 包含125个多跳问题的测试集,用于评估模型的泛化能力。
    • StrategyQA: 一个需要隐式推理的是/否问答数据集,用于多任务训练和评估。
    • MMLU: 包含57个领域的选择题数据集,用于多任务训练和评估。
  • 模型架构

    • 数据生成: GPT-4。
    • 微调与提示:
      • GPT-3.5: GPT-3.5-Turbo-0613,175B参数。
      • Llama-2: 开源模型,参数量为7B和13B,使用"chat"版本(Llama-2-Chat-HF)。
      • CodeLlama: 基于Llama-2的代码专用模型,参数量为7B、13B和34B,使用"instruct"版本(CodeLlama-Instruct-HF)。
  • 硬件配置

    • GPU: 实验在多种GPU上进行,包括A100-80GB, RTX 6000 Ada, RTX 4090和RTX 3090。
    • 全模型微调:训练Llama-2-7B时需要四台配备80GB GPU内存的A100 GPU。
  • 软件配置

    • 代码实现: 使用OpenAI微调API对GPT-3.5进行微调。对于Llama-2和CodeLlama,使用低秩自适应(LoRA)方法和int8量化进行微调。
    • 工具API: 使用SerpAPI构建了一个谷歌搜索工具。
    • 超参数:
      • GPT-3.5: 微调3个epoch,评估时temperature设为0。
      • Llama-2/CodeLlama: 使用LoRA微调30个epoch,学习率为3e-4,训练批次大小为16,评估时temperature设为0.6。
      • 推理限制: ReAct轨迹的生成限制在11个步骤内。

A4 实验结果

单任务、单方法微调 (Section 5)

本节实验在HotpotQA任务上,仅使用ReAct方法生成的轨迹进行微调,旨在验证微调的基本优势。

  • 实验内容:使用GPT-4生成的500条成功的ReAct轨迹,对GPT-3.5、Llama-2和CodeLlama等模型进行微调,并在HotpotQA开发集上评估其性能(精确匹配率EM)。
  • 实验结果与分析
    • 性能和效率
      • 微调显著提升了所有模型的代理性能。如表2所示,GPT-3.5的EM从31.4提升到39.2(增长25%),而Llama-2-7B的EM从14.8提升到26.2(增长77%)。
      • 微调后的小型开源模型(Llama-2-13B)的性能可以超过提示驱动的更强商业模型(GPT-3.5),如表1和表2所示。
      • 微调大幅提升了推理效率。如表3所示,对于GPT-3.5,由于无需上下文示例,推理时间从9.0秒/次试验减少到2.7秒/次试验(降低70%),总成本也随之下降。
        表1:提示结果。
        表1:提示结果。

        表2:提示与微调的对比,附带绝对/相对增量。
        表2:提示与微调的对比,附带绝对/相对增量。
    • 鲁棒性和泛化能力
      • 微调模型对噪声工具(返回“None”或随机内容)的鲁棒性更强。如表3所示,在“None”工具输出的干扰下,提示式ReAct的EM下降了33.8%,而微调后的FireAct仅下降14.2%。
      • 微调模型向新任务的泛化能力更强。如表3所示,在未经训练的Bamboogle数据集上,微调后的GPT-3.5(EM 44.0)优于提示式GPT-3.5(EM 40.8)。然而,对于任务形式差异巨大的StrategyQA和MMLU,泛化效果不佳。
        表3:微调与提示GPT-3.5在成本、鲁棒性和泛化方面的比较。
        表3:微调与提示GPT-3.5在成本、鲁棒性和泛化方面的比较。
    • 不同微调因素的分析
      • 微调方法:全模型微调(EM 30.2)比LoRA微调(EM 26.2)性能更好,但资源消耗巨大(附录A.5)。
      • 数据规模:如图3所示,GPT-3.5样本效率很高,100个样本即可达到较高性能。Llama模型需要更多数据(≥500个样本)才能有效学习,但随着数据量增加,性能持续提升,有追赶更强模型的潜力。
        图3:数据扩展性。
        图3:数据扩展性。
      • 基础模型类型与规模:如图4蓝色条所示,GPT-3.5在所有设置中均表现最佳。在Llama系列中,13B模型通常优于7B模型。CodeLlama与Llama-2相比,性能优劣关系复杂,取决于模型规模和微调数据。

多方法微调 (Section 6)

本节实验在HotpotQA任务上,混合使用ReAct、CoT和Reflexion三种方法的轨迹进行微调。

  • 实验内容:在500条ReAct轨迹的基础上,加入187条CoT轨迹和47条Reflexion轨迹,对不同模型进行微调。
  • 实验结果与分析
    • 提升代理灵活性:如图5所示,多方法微调使代理能够根据问题难度隐式选择策略。对于简单问题,它可能选择类似CoT的单步解决;对于复杂问题,它能利用类似Reflexion的机制调整搜索策略,避免陷入困境。
      图5:对于问题(a),(a1) 仅ReAct微调导致信息干扰和错误答案,而(a2) CoT + ReAct微调导致简单的CoT解决方案。对于问题(b),(b1) 仅ReAct微调导致多次相同模式的失败搜索,而(b2) Reflexion + ReAct微调导致搜索策略的成功调整。
      图5:对于问题(a),(a1) 仅ReAct微调导致信息干扰和错误答案,而(a2) CoT + ReAct微调导致简单的CoT解决方案。对于问题(b),(b1) 仅ReAct微调导致多次相同模式的失败搜索,而(b2) Reflexion + ReAct微调导致搜索策略的成功调整。
    • 方法组合效果因模型而异:如图4所示,混合不同方法的效果并非总是正向的,且最佳组合取决于基础模型。例如,ReAct+CoT 对GPT-3.5和Llama-2模型有益,但对CodeLlama模型有害。ReAct+CoT+Reflexion 对CodeLlama-34B效果最好。
      图4:不同LM和数据类型的结果。
      图4:不同LM和数据类型的结果。
    • 方法选择能力分析:如表4所示,多方法微调的代理能够进行非平凡的方法选择,其性能远高于随机选择方法的基线(32.4 EM),但与“神谕”(oracle)选择(52.0 EM)仍有较大差距,说明方法选择能力有待提升。
      表4:HotpotQA上的多方法结果。
      表4:HotpotQA上的多方法结果。

多任务微调 (Section 7)

本节实验使用来自HotpotQA、StrategyQA和MMLU三个数据集的数据对GPT-3.5进行微调。

  • 实验内容:混合来自三个QA任务的ReAct和CoT轨迹,对GPT-3.5进行单方法(ReAct)和多方法(ReAct+CoT)微调。
  • 实验结果与分析
    • 跨任务影响:如表5所示,在HotpotQA的训练数据中加入StrategyQA和MMLU的数据,并不会损害模型在HotpotQA和Bamboogle上的性能。这表明,微调一个多任务代理来替代多个单任务代理是可行的,无需担心任务间的负面干扰。
    • 多任务与多方法结合:从多任务单方法微调切换到多任务多方法微调后,所有任务的性能都得到了提升,再次验证了多方法微调的价值。
    • 反常现象:一个有趣的发现是,在MMLU任务上,所有复杂的代理(微调或提示)都不如简单的输入-输出(IO)提示。这可能是因为MMLU问题相对简单,不需要复杂的推理和行动,或者是模型记忆了答案选项。
      表5:使用GPT-3.5的多任务结果。
      表5:使用GPT-3.5的多任务结果。

A5 结论

本文系统性地研究了语言代理的微调,并通过FireAct方法展示了其多方面的优势。

  • 微调与提示的选择:研究表明,提示(prompting)和微调(fine-tuning)分别适用于不同的场景。提示更适合于探索阶段,如开发新代理或解决新任务,因为它灵活便捷。而当任务确定、方法明确且数据充足时,微调则更适合于应用部署阶段,因为它能带来更优的性能、更强的泛化与鲁棒性,以及更低成本和更高效率的推理。

  • 基础模型的选择:GPT-3.5在各种设置下 consistently 优于其他开源模型,且样本效率高。然而,实验也证明,通过提供足够且类型合适的微调数据,开源的Llama模型有潜力追赶上GPT-3.5的性能,同时具备更好的可控性和可复现性。从业者应根据需求权衡这两类模型的利弊。

  • 代理的灵活性:FireAct的多方法微调有助于提升代理的灵活性和鲁棒性,使其能根据任务难度自适应地选择是否使用工具或进行反思。然而,如何让代理准确地判断“何时”寻求帮助(工具使用)和反馈(反思),仍然是一个有待解决的开放性问题。

  • 局限与未来方向

    • 本研究局限于问答任务和单一的谷歌搜索工具,未来工作可将FireAct提出的研究问题扩展到更多任务和更复杂的交互环境(如更多API工具、网页、物理世界)。
    • 本文主要关注单轨迹的代理,如何微调涉及多提示、多角色和多上下文的更高级代理,仍是未解之谜。
    • 未来的一个重要方向是进行大规模的多任务微调,以打造一个通用的语言代理。但这需要首先开发出更适合、更多样化的代理任务基准来进行开发和评估。

A6 附录

A.1 EM分数的标准误差

附录提供了主要实验结果的标准误差。 表6、表7和表8分别对应正文中的表1、表2和表5,补充了精确匹配(EM)分数的标准误差(σM),以增强结果的统计可靠性。

表6:带标准误差(σM)的提示结果。
表6:带标准误差(σM)的提示结果。

表7:提示与微调的对比,包含绝对/相对增长和标准误差(σM)。
表7:提示与微调的对比,包含绝对/相对增长和标准误差(σM)。

表8:使用GPT-3.5和标准误差(σM)的多任务结果。
表8:使用GPT-3.5和标准误差(σM)的多任务结果。

A.3 数据混合

本节探讨了模型性能的上下限,并分析了数据混合的效果。 表10显示,性能的下限(随机选择代理方法)为32.4 EM,而上限(“神谕”式地为每个问题选择最佳方法)为52.0 EM。所有数据混合策略的性能都落在此区间内,证明了数据混合的有效性。特别是,加入CoT方法能带来显著的性能提升,尽管CoT方法单独使用时表现相对较差(28.0 EM)。这表明混合数据对微调过程有积极贡献。

表9:不同任务和方法的结果比较。
表9:不同任务和方法的结果比较。

表10:在HotpotQA上对混合代理方法的研究。
表10:在HotpotQA上对混合代理方法的研究。

A.4 轮次分布

数据混合改变了模型的行为分布。 图6的图表显示,混合数据会使模型的轮次分布(turn distribution)趋向于训练数据的分布。例如,对比ReAct+CoT(平均2.7轮,41.0 EM)和ReAct+Reflexion(平均3.8轮,38.8 EM),加入CoT(通常是单轮)会显著减少模型的平均交互轮次。

图6:轮次分布
图6:轮次分布

A.5 LoRA vs. 全量微调

全量微调性能更优但成本高昂。 表11展示了Llama-2-7B在单任务(500条HotpotQA轨迹)和多任务(所有轨迹混合)设置下,分别使用LoRA和全量权重微调的EM分数。结果表明,全量微调在两种设置下都优于LoRA,但其计算资源需求也大得多。

表11:在单任务和多任务设置下LoRA与全量微调的对比。
表11:在单任务和多任务设置下LoRA与全量微调的对比。

A.6 CodeLlama vs. Llama Tokenizer

使用原生分词器对CodeLlama有轻微提升。 表12比较了在CodeLlama模型上使用Llama分词器和CodeLlama原生分词器的性能差异。结果显示,对于CodeLlama-7B和CodeLlama-13B,使用原生分词器在HotpotQA任务上能带来轻微的性能提升。

表12:CodeLlama在使用Llama分词器和CodeLlama分词器之间的性能差异。
表12:CodeLlama在使用Llama分词器和CodeLlama分词器之间的性能差异。

A.7 世界建模:掩蔽观察

掩蔽观察对学习世界模型的效果不一致。 表13展示了在训练中掩蔽观察(masking observations)对CodeLlama-7B和-13B模型性能的影响。实验旨在探究模型是否能学习世界建模。结果显示,对于CodeLlama-7B,掩蔽观察通常带来轻微性能提升;但对CodeLlama-13B,效果不一致,有时提升有时下降。这表明在当前设置下,这种方法对性能没有稳定的积极影响。

表13:在HotpotQA轨迹中带或不带观察掩蔽微调Llama-2-7B和Llama-2-13B的性能差异。
表13:在HotpotQA轨迹中带或不带观察掩蔽微调Llama-2-7B和Llama-2-13B的性能差异。

A.8 训练轮数

更多的训练轮数不一定带来持续的性能提升。 图7展示了GPT-3.5模型在HotpotQA数据集上随微调轮数增加的性能变化。从1轮增加到4轮,EM和F1分数普遍提高。但超过4轮后,尽管EM分数仍有微小增长,F1分数却趋于平稳甚至下降,表明进一步微调的收益递减。

图7:GPT-3.5-Turbo在HotpotQA数据集上随微调轮数增加的性能变化
图7:GPT-3.5-Turbo在HotpotQA数据集上随微调轮数增加的性能变化

A.9 FireAct的少样本任务泛化

微调结合少样本提示能增强泛化能力。 表14展示了在HotpotQA轨迹上微调的Llama-2-7B在其他任务上的表现。结果表明,微调与少样本提示相结合,能显著提升在相似任务Bamboogle上的性能,略微提升在MMLU上的性能,但在任务形式差异较大的StrategyQA上性能有所下降。

表14:在HotpotQA轨迹上微调的Llama-2-7B的多任务结果。
表14:在HotpotQA轨迹上微调的Llama-2-7B的多任务结果。

B 实验细节

B.1 基础模型。 本文探索了三个代表性LLM家族的模型:(1)GPT家族,包括用于数据生成的GPT-4(OpenAI, 2023b)【索引43,Gpt-4 technical report. 2023】和用于微调的GPT-3.5,后者是基于GPT-3(Brown等人,2020)【索引4,Language models are few-shot learners. 2020. NeurIPS】的175B参数指令调优和RLHF版本。(2)Llama-2(Touvron等人,2023b)【索引78,Llama 2: Open foundation and finetuned chat models. 2023. arXiv】,这是一个参数从7B到70B的开源模型系列。(3)CodeLlama(Roziere等人,2023)【索引55,Code llama: Open foundation models for code. 2023. arXiv】,这是一个从Llama-2派生、专为代码生成设计的模型家族,参数从7B到34B。

B.2 单方法单任务设置。 我们从HotpotQA训练集中抽取样本,让GPT-4(OpenAI, 2023b)【索引43,Gpt-4 technical report. 2023】通过少样本示例生成了500条ReAct轨迹,并进行了人工验证,用于代理微调。我们还从7,405个开发集样本中选出500个用于评估,使用精确匹配(EM)和F1分数作为指标。GPT-3.5使用了OpenAI微调API对GPT-3.5-Turbo-0613进行微调,而Llama-2和CodeLlama则在A100-80GB、RTX 6000 Ada、RTX 4090和RTX 3090 GPU上,使用带int8量化的低秩自适应(LoRA)(Hu等人,2022)【索引21,Lora: Low-rank adaptation of large language models. 2022. ICLR】对Llama-2-Chat-HF和CodeLlama-Instruct-HF进行微调。GPT-3.5微调了3个epoch,Llama-2和CodeLlama家族微调了30个epoch。如果ReAct算法在11步内未完成,则强制终止。学习率为3e-4,训练批次大小为16。Llama和Codellama模型的评估温度为0.6,GPT-3.5的温度为0。模型评估也使用了int8量化。

B.3 Llama和CodeLlama的计算。 表15展示了用于微调和推理Llama-2及CodeLlama模型的计算资源。

表15:用于训练和推理Llama-2和CodeLlama模型的计算资源。
表15:用于训练和推理Llama-2和CodeLlama模型的计算资源。

C 提示

附录C部分提供了用于生成微调数据的具体提示(Prompts)示例,包括HotpotQA、MMLU和StrategyQA任务的ReAct和CoT提示,以确保实验的可复现性。

HotpotQA ReAct 提示
HotpotQA ReAct 提示

MMLU 提示 1
MMLU 提示 1

MMLU 提示 2
MMLU 提示 2

MMLU 提示 3
MMLU 提示 3

StrategyQA 提示 1
StrategyQA 提示 1

StrategyQA 提示 2
StrategyQA 提示 2

StrategyQA 提示 3
StrategyQA 提示 3