24年2月UPenn的论文“DataDreamer: A Tool for Synthetic Data Generation and Reproducible LLM Workflows”。
DataDreamer是一个开源 Python 库,允许研究人员编写简单的代码来实现强大的 LLM 工作流程。该库和文档位于:
github.com/datadreamer-dev/DataDreamer
虽然大语言模型 (LLM) 通过提示和预测范式开创了 NLP 研究的新纪元,该范式已被证明对各种任务有效,但这些模型的使用也存在重大缺陷(Liu, 2023)。许多流行的模型,如 GPT-4(OpenAI,2023)都是闭源的,并且位于远程 API 后面,而本地运行模型由于其规模而在技术上可能很复杂且昂贵。此外,现在完善的提示范式可能很脆弱,不同模型、配置和环境之间的结果差异很大(Sclar,2023;Jaiswal,2023)。这些挑战使得研究人员难以共享、复制、扩展和比较工作,阻碍研究进展。
在这样背景下,推出DataDreamer,一个开源 Python 包:
-
DataDreamer 帮助研究人员实施涉及LLM的工作流程,例如合成数据生成、微调、指令调整和对齐。它通过为其中许多任务提供具有标准化接口的单个库来简化实现,同时降低模型之间切换、缓存、可恢复性、日志记录、多 GPU 推理和训练、使用适配器和量化的优化,以及发布开放数据集和模型。
-
DataDreamer 使任务之间的数据链接(一种日益常见的做法)变得简单。例如,用户可以使用合成数据工作流程生成数据,然后在该合成数据上进行模型微调。
-
DataDreamer 帮助研究人员实施工作流程,同时通过自动缓存、可复现指纹和更多最佳实践以最小的努力生成输出。
最近的工作探索了使用LLM为任务创建合成数据或扩充现有数据集以提高任务性能(Yu et al., 2023; Kumar et al., 2020; Yoo et al., 2021; Han,2021;Ye,2022;Honovich,2022)。合成数据生成涉及在多阶段工作流程中一次或多次使用 LLM 来处理数据,有时称为“链接”(Rush,2023)。当提示LLM生成或扩充数据集时,可复现的挑战是“提示敏感性”,即使提示中的微小变化也可能导致显着不同的结果(Sclar ,2023)。此外,由于模型退化问题,必须对合成法生成的数据集进行标记(Shumailov,2023)。
另一个日益常见的工作流程是使用 LLM 作为裁判或自动指标来评估模型在任务上的表现(Zheng,2023;Fu,2023;Dubois,2023;Chiang & Lee,2023)。许多适用于合成数据的再现性挑战也出现在这里。
还有一个常见的工作流程是,使用较大模型中的知识,创建特定于任务的专家模型,通过微调和蒸馏,创建更小、更高效的模型(Han,2021b;Liu,2022;Hsieh2023)。指令调优是微调,允许基础预训练模型更好地遵循自然语言人类指令并提高其广义任务性能(Ouyang, 2022; Wei, 2021; Sanh, 2021; Mishra,2021)。密切相关的是,对齐技术引导模型对那些比人类更喜欢的人做出反应(Stiennon, 2020; Bai, 2022; Rafailov, 2023)。实施可复现性和高效的训练技术是经常面临的实际挑战。可复现性挑战包括共享精确数据和超参数。
通过一个自反馈训练循环来自我改进LLM,是一个日益活跃的研究领域(Huang, 2022; Wang, 2022; Li, 2023; Chen, 2024; Yuan,2024;Gunasekar,2023)。由于需要多轮操作将合成数据生成、自动评估和模型重训练链接在一起,这些工作流程的实施和重现都非常复杂。DataDreamer 支持所有这些工作流程,并使它们之间的数据链接变得简单。
DataDreamer 是一个开源 Python 包,允许研究人员使用单个库实现以上所有 LLM 工作流程。DataDreamer 提供了一个用于提示和训练模型的标准化界面,抽象出特定于供应商的库和工具。这使得研究代码更易于实现、修改、试验以及与他人共享。DataDreamer 与其他开源 LLM 库集成,如 Transformer (Wolf,2019) 和 trl (von Werra,2020),以及商业模型 API,如用于商业 LLM 的 OpenAI 和 Anthropic (Brown,2020) )。此外,DataDreamer 自动实施复现性。
下表比较当今研究人员针对类似工作流程的其他流行库和解决方案之间的功能覆盖范围。DataDreamer 将这些功能集成到具有标准化接口的单个库中,使实验和任务之间的数据链接变得简单 (✗= 否;✓= 是;O = 部分支持)。
虽然实验工作流程通常对模型选择敏感,并且提示的可迁移性可能不可靠(Liu et al., 2023),但出于可复现性目的和易于实验,工作流程的实现代码,应尝试最大程度地减少对特定模型的依赖,并且应该允许其他研究人员轻松地用一个LLM替代另一个。