增强模型长文本输出能力的策略探讨及解决方案

AI前沿4个月前发布 wanglu852
4,857 0 0
广告也精彩

怎样增强模型的长文本输出能力?

随着大语言模型的发展,越来越多的模型能够处理超过100k+ tokens的输入上下文。然而,长文本输出仍然是一个挑战。本文探讨了当前模型在生成长文本时的瓶颈,并介绍了一些可能的解决方案。

为什么现有模型生成的文本长度受限?

问题背景

尽管许多模型在预训练阶段处理了大量的长文本,但生成长文本时常常受限,通常不超过2000字。究其原因,主要在于监督微调(SFT)数据集的限制。通过研究发现,SFT数据集缺乏足够长的输出样例,直接影响了模型的输出能力。

具体实例

我们研究了不同最大输出长度的数据对GLM-4-9B-base模型进行SFT微调的结果,发现随着长度要求的增加,生成的最大输出长度依然受限。换句话说,模型能“写”多长的内容,取决于它“读”过的内容长短。

如何解决长文本输出的限制?

自动构建长输出数据集

为了解决SFT数据集中长输出文本数据缺失的问题,我们设计了一个名为「AgentWrite」的pipeline。其具体步骤如下:

  1. 生成写作计划:根据用户的输入生成一个详细的写作计划,包括每段内容的结构和目标字数。
  2. 分段生成:模型依次完成每个子任务,并将生成的段落串联起来,最终形成完整的长文本输出。

通过这种方法,AgentWrite能够生成超过20,000字的高质量文本。

教模型生成超长文本

我们利用AgentWrite生成的长输出数据,创建了一个名为LongWriter-6k的数据集,包含了6000条长输出的SFT数据。我们将其与180k条通用SFT数据结合,形成整个训练集。输出长度分布如下:

  • 2,000至10,000词之间的输出样例相对均匀,填补了通用SFT数据的不足。

微调与对齐

我们对两种基础模型(GLM-4-9B和Llama-3.1-8B)进行SFT微调,得到两个模型:LongWriter-9B和LongWriter-8B。为了进一步提高模型的输出质量,我们进行了直接偏好优化(DPO)。DPO数据来自GLM-4的DPO数据,并包含4k条长输出正负样本对。

结果验收

测试与评估

我们在LongBench-Write上对4个专有模型和5个开源模型进行了评测,通过以下两项指标评估模型性能:
S_l:输出长度的符合度评分,输出长度符合要求时得分为100,反之则降低。
S_q:由GPT-4o从相关性、准确性、连贯性等六个维度进行质量打分。

评价结果

  1. 长度满足度:大多数模型无法满足2000字以上的长度要求,而LongWriter模型在此类提示下始终提供更长且更丰富的响应。
  2. DPO效果显著:通过比较LongWriter-9B和LongWriter-9B-DPO的得分发现,DPO显著提高了S_l(+4%)和S_q(+3%)的得分。
  3. 长文本输出能力:LongWriter模型的最大输出长度目前为10k至20k字之间,进一步提升需要更长输出的数据集。

结论与展望

我们认为,未来可以通过构建更长的SFT训练数据集,进一步突破模型输出长度的限制,达到100k甚至更长的输出长度。

我认为

鲁迅风格阐述

我认为:当前模型的长文本输出能力受限,根源在于微调数据集的不足。只有通过不断完善数据集和创新方法,如AgentWrite,才能进一步突破这一限制,使模型在真实应用中发挥更大的潜力。长文本生成不只是技术的挑战,更是对数据与算法的全方位考验。

© 版权声明
chatgpt4.0

相关文章

error: Content is protected !!