清华唐杰团队新作:一口气生成万字,大模型开卷长输出
明敏发自凹非寺
量子位|公众号QbitAI
一口气生成2万字,大模型输出也卷起来了!
清华&智谱AI最新研究,成功让GLM-4、Llama-3.1输出长度都暴增。
相同问题下,清华唐杰团队新作:一口气生成万字,大模型开卷长输出输出结果直接从1800字增加到7800字,翻4倍
。
要知道,目前大模型的生成长度普遍在2k以下。这对于内容创作、问题回答等都存在影响,可能导致模型回答问题不全面、创造性降低等。
该研究由智谱AI创始人、清华大学教授李涓子和唐杰共同领衔。
论文及代码都已放在GitHub上开源。
有网友已经抢先体验。LongWriter-llama3.1-8b可生成万字长文《罗马帝国衰落史》,在MacBookPro2018(32GB)上就能运行。
输出内容很准确,可以得A 。
9B模型搞定万字输出
本项研究主要包括3方面工作。
首先,研究人员构建了一个测试工具LongWrite-Ruler。通过测试多个大模型,他们发现所有模型在生成超过2000字
的文本时都遇到了困难。
进一步分析用户和大模型的交互日志,研究人员发现只有超过1%的用户请求明确提到要生成超过2000字
的文本。
为此,他们改变了模型在监督式微调(SFT)阶段使用的数据集的最大输出长度
结果发现,模型的最大输出长度与SFT数据集中的最大输出长度呈显著正相关
所以得出结论,现有模型在输出长度上受限主要是因为SFT数据集中缺少长输出样本
即使模型在预训练阶段见过更长的序列,但是SFT阶段缺乏长文本样本,还是会影响输出长度。
为了克服这个限制,研究人员提出了AgentWrite
这是一个基于Agent的pipline。
它允许将超长文本生成任务分解为多个子任务,每个子任务处理其中的一段。
具体流程是AgentWrite先根据用户指令制定出一个详细的写作计划,计划包括每个段落的主要内容点和目标词数。根据计划,AgentWrite依次提示模型生成每个段落的内容。
在AgentWrite基础上,团队利用GPT-4o生成了6000个长输出SFT数据,输出长度在2k到32k词之间,构成了数据集LongWriter-6k。并将这些数据添加到训练过程中。
为了验证方法的有效性,团队还提出了一个LongBench-Write。其中包含了多样化的用户写作指令,输出长度规格分别为0-500词、500-2000词、2000-4000词以及4000词以上。
评估结果显示,使用AgentWrite后模型输出长度明显增加。
通过直接偏好优化(DPO),GLM-4-9B在一众模型中实现了最佳性能。
手速快的网友已经抢先实测。
Reddit上一位网友让LongWriter-llama3.1-8b生成罗马帝国衰败史,整体需要22分钟(与硬件有关),平均每秒生成3.34个token。
生成内容比较公式化,回答不同问题的结构、节奏相似。
无论如何这是个好的开始,带来的提升很明显。
研究团队也表示未来将进一步扩展模型的输出长度和输出质量,同时也会开始研究如何在不牺牲生成质量的情况下提高效率。
参考链接:
https://github.com/THUDM/LongWriter