论文名称:LongWriter: Unleashing10,000+ Word Generation from Long Context LLMs
论文地址:https://arxiv.org/abs/2408.07055
代码:https://github.com/THUDM/LongWriter
大模型的上下文输入长度已经到了100k级别,但是基本上却不乏做到输出2k+ tokens。主要原因来自SFT过程,SFT过程的output中大部分都是short response,这导致模型最终无法生成超长文本。
作者贡献:
- 1 开发了AgentWrite生成超长文本;
- 2 构建了LongWriter-6k超长文本生成数据集;
- 3 构建了LongBench-Write benchmark长文本生成评估数据集;
- 4 构建了超长文本生成SFT和DPO数据集;
- 5 训练了LongWriter模型;
1 AgentWrite
为了得到长文本输出,作者使用AgentWrite方法,通过将instruction分解为多个子问题,让大模型根据instruction 和n-1 section已生成的内容来生成n section内容。
AgentWrite共使用了6k的instruction:
- 1 GLM-4 的 SFT 数据中筛选出了 3,000 条指令
- 2 WildChat-1M中选择了3,000条指令(主要是英文)
最终通过AgentWrite得到LongWriter-6k数据集。
2 LongBench-Write
LongWriter 还开发了 LongBench-Write,这是一个用于评估超长生成能力的综合基准。
3 LongWriter
3.1 SFT数据构建
SFT数据集:LongWriter-6k+GLM4’s SFT-180k;
3.2 DPO数据构建
DPO数据集:GLM-4’s chat DPO data – 50k;
3.3 LongWriter
GPT-4o为打分模型;Sl为输出长文本的长度打分;Sq为输出长文本的质量打分;