简介:本文探讨了如何让大模型输出10k+字长文的方法,包括构建长输出数据集、使用AgentWrite方法分解任务、进行SFT微调和DPO对齐等策略,并介绍了LongWriter模型的实践成果。
在当今人工智能领域,大模型的应用日益广泛,其生成文本的能力也备受关注。然而,许多大模型在生成长文本时,往往受到输出长度的限制。本文将深入探讨如何突破这一限制,实现大模型输出10k+字的长文。
大模型在生成长文本时,面临的主要挑战之一是输出长度的限制。这一限制的主要原因在于监督微调(SFT)数据集中缺乏足够长的输出样例。由于模型在训练过程中,主要学习的是SFT数据集中的输出模式,因此当要求生成超出数据集长度的文本时,模型就显得力不从心。
为了解决SFT数据集中长输出文本数据缺失的问题,研究团队构建了一个名为LongWriter-6k的长输出数据集。该数据集包含了6000多条长度在2k至20k词之间的文本样例,有效补充了现有SFT数据集中长输出数据的稀缺性。这些样例的引入,使得模型在训练过程中能够接触到更长的输出模式,从而提高了其生成长文本的能力。
除了构建长输出数据集外,研究团队还提出了一种名为AgentWrite的方法来自动生成具有长文本输出的SFT数据。AgentWrite方法的核心思想是将长文本输出的任务分解成许多子任务,每个子任务要求模型只输出一段话的内容。然后,将这些内容组合到一起形成最终的数据集。通过这种方式,AgentWrite方法能够显著扩展模型的最大输出长度,并保持高质量的输出。
在构建了长输出数据集和使用AgentWrite方法生成数据后,接下来需要对模型进行SFT微调和DPO对齐。SFT微调是为了使模型更好地适应长输出数据集的特点,学习其中的输出模式。而DPO对齐则是为了进一步提高模型的输出质量,并增强其在指令中遵循长度约束的能力。通过这两个步骤的训练,模型能够生成更长且更连贯的文本。
基于上述方法,研究团队成功训练出了LongWriter模型。该模型在LongBench-Write基准上表现出色,能够生成超过10k词的长文本。与其他现有模型相比,LongWriter模型在输出长度和质量上都有显著的优势。特别是在[4k, 20k)范围内,LongWriter模型的输出长度得分显著提高,表明其能够生成更长且更丰富的响应。
尽管LongWriter模型已经取得了显著的成果,但仍有进一步改进的空间。例如,可以扩展AgentWrite框架以构建更长输出的数据,进一步扩展LLMs的输出窗口大小;优化AgentWrite框架以实现更高质量的长输出数据;以及解决更长模型输出给推理效率带来的挑战等。
在实现大模型输出长文的过程中,千帆大模型开发与服务平台提供了强大的技术支持。该平台支持多种大模型的训练和优化,包括LongWriter模型所需的SFT微调和DPO对齐等步骤。通过千帆大模型开发与服务平台,用户可以更加便捷地训练和优化自己的大模型,实现输出长文的目标。
总之,通过构建长输出数据集、使用AgentWrite方法分解任务、进行SFT微调和DPO对齐等策略,我们可以有效地突破大模型输出长度的限制,实现10k+字长文的生成。未来,随着技术的不断进步和应用的不断拓展,大模型将在更多领域展现出其强大的文本生成能力。