AgentInstruct:革命性的合成数据生成框架,推动语言模型性能飞跃
摘要
本文介绍了一种名为AgentInstruct的创新框架,用于自动生成大量多样化和高质量的合成数据,以加速语言模型(包括大型和小型模型)的开发。AgentInstruct通过使用原始数据源(如文本文档和代码文件)作为种子,能够创建包括提示和响应在内的数据对。文章展示了AgentInstruct在创建一个包含2500万对数据的后期训练数据集方面的实用性,该数据集用于教授语言模型多种技能,如文本编辑、创意写作、工具使用、编程、阅读理解等。通过使用这些数据对Mistral-7b模型进行后期训练,结果模型Orca-3在多个基准测试中显示出显著的性能提升。
原理
AgentInstruct框架的核心在于利用多代理工作流程生成高质量的数据。这些代理通过反思和迭代过程,能够回顾解决方案、生成批评并改进解决方案。代理还可以使用工具(如搜索API、计算器、代码解释器)来解决语言模型的局限性。AgentInstruct通过定义三种不同的流程(内容转换流程、种子指令生成流程和指令细化流程)来处理数据生成,确保数据的多样性和复杂性。
流程
AgentInstruct的工作流程包括三个主要步骤:
- 内容转换流程:将原始种子(如教科书章节、网络文章、代码片段)转换为中间表示,以便更容易创建针对特定目标的指令。
 - 种子指令生成流程:利用多个代理从转换后的种子生成一系列多样化的指令。
 - 指令细化流程:通过建议-编辑代理对生成的指令进行迭代细化,增加其复杂性和质量。
 
应用
AgentInstruct的应用前景广泛,可以用于任何基础模型的指令调整和微调,从而实现持续学习和改进。此外,该方法还可以用于大型、更具能力的模型的自我改进,因为它能够生成新的提示和响应,这些响应的质量可以超过代理流程中使用的语言模型。
