LongWriter: Unleashing 10,000+ Word Generation from Long Context LLMs论文阅读

news2024/11/15 4:32:03

LONGWRITER: UNLEASHING 10,000+ WORD GENERATION FROM LONG CONTEXT LLMS

一句话总结:

加入长输出的数据进行训练微调,即可解锁大模型的长输出能力。

摘要

  • 当前的LLMs能够处理100,000个token的输入,但在难以生成超过2,000个词。实验发现模型的有效生成长度本质上受到其在监督式微调(SFT)期间所见过的样本的限制。
  • 为了解决这个问题,我们引入了AgentWrite,它将超长生成任务分解为子任务,使现成的LLMs能够生成超过20,000个词的连贯输出。
    利用AgentWrite,我们构建了一个包含6,000个SFT数据的LongWriter-6k数据集,输出长度范围在2k到32k个词之间。
  • 通过将这个数据集纳入模型训练,我们将现有模型的输出长度扩展到超过10,000个词,同时保持了输出质量。
  • 我们还开发了LongBench-Write,一个全面的基准测试,用于评估超长生成能力。
  • 9B参数模型,通过DPO,在这个基准上实现了最先进的性能,甚至超过了更大的专有模型。
  • 总的来说,现有的长上下文LLM已经拥有更大的输出窗口的潜力——你所需要的只是在模型对齐期间用扩展输出的数据来解锁这个能力。

第1章 引言

介绍了长上下文大型语言模型(LLMs)的最新进展以及它们在生成长文本方面的局限性。

第2章 发现生成长度限制的原因

通过构建LongWrite-Ruler评估来探测LLMs的生成长度限制,并探索了造成它们生成长度限制的原因。
在这里插入图片描述
结论:llm输出一般为2k个左右,训练数据的长度增加,输出长度也会增加。

第3章 AGENTWRITE: 自动数据构建

为了使用现成的LLMs自动生成具有更长输出的SFT数据,我们设计了AgentWrite,这是一个分而治之风格的代理流水线。逐章节的去输出内容,再合并即可。
在这里插入图片描述

第4章 LONGWRITER: 教会模型生成超长输出

数据分布

在这里插入图片描述

  • 经过自动选择和人工检查,确保指令确实需要几千个词的响应。
  • 数据经过过滤和清理,以确保输出长度和质量。

训练时同时使用SFT180K数据和LongWriter-6k

模型训练

SFT

选择了两个最新的开源模型作为基础模型:GLM-4-9B和Llama-3.1-8B。

  • 这些模型支持高达128k tokens的上下文窗口,适合于长输出任务的训练。
  • 采用了打包训练(packing training)和损失加权(loss weighting)策略来提高训练效率。
损失加权策略
  • 通过按token平均损失而非按batch句子损失,确保长输出数据中每个目标token对损失的贡献是均衡的。因为如果按照句子计算平均损失,在长输出的情况下,会弱化每一个token对target的loss
硬件和配置
  • 使用了8个H800 80G GPU的节点进行训练,结合DeepSpeed和ZeRO以及CPU卸载技术。
  • 设置了批量大小为8,学习率为1e-5,打包长度为32k。一共训了4 epochs, 差不多2,500-3,000 steps.
训练周期
  • 模型训练了4个epoch,大约需要2500到3000步。
DPO
数据来源之一
  • 使用了来自GLM-4的聊天DPO数据,以及特别为长形式写作指令构建的4k数据对。另外
数据来源之二 自己构建的4k数据
  • 对long-writer输出4个样本打分,选择了得分最高的作为正样本,随机选择其他输出之一作为负样本。
  • DPO训练了250步,遵循了Hou等人(Chatglm-rlhf)的DPO训练方法。

结果

  • 训练后的模型LongWriter-9B和LongWriter-9B-DPO在LongBench-Write基准测试上表现出色,特别是在生成超过2,000个词的长文本方面。
  • DPO显著提高了模型遵循长度指令的能力,并且提升了输出的整体质量。

主要结果

  • 对比了4个私有模型和5个开源模型在LongBench-Write上的性能,以及训练的LongWriter模型。
  • 观察到大多数现有模型无法满足超过2,000个词的长度要求,而LongWriter模型能够提供更长、更丰富的响应。
结果分析
  • LongWriter模型在所有长度范围内的输出长度得分(Sl)和质量得分(Sq)上均表现出色。
  • DPO进一步提高了模型的输出质量和遵循长度约束的能力。

消融研究

  • 进行了三项数据消融实验,以评估不同数据集对模型性能的影响。
消融LongWriter-6k数据集
  • 证明了LongWriter-6k数据集对提高模型处理长文本能力的重要性。
计划增强输出数据
  • 探讨了在生成内容前先输出写作计划对模型性能的影响。类似于CoT,但是对质量并没有什么提升。

在这里插入图片描述

与指令回传合成数据的比较

分析了使用指令回传方法构建的长输出SFT数据对模型性能的影响。发现对结果是有害的。作者分析两点原因:

  • 指令回传数据质量比较低
  • 回传的指令与用户指令有gap,不一致

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2084659.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

零基础5分钟上手亚马逊云科技-基础设施即代码开发

简介: 欢迎来到小李哥全新亚马逊云科技AWS云计算知识学习系列,适用于任何无云计算或者亚马逊云科技技术背景的开发者,通过这篇文章大家零基础5分钟就能完全学会亚马逊云科技一个经典的服务开发架构方案。 我会每天介绍一个基于亚马逊云科技…

(五)Kafka离线安装 - Kafka开机自启

手动前台启动指令 cd /usr/local/kafka/kafka_2.12-3.8.0/bin/kafka-server-start.sh config/server.properties 手动后台启动指令 cd /usr/local/kafka/kafka_2.12-3.8.0/bin/kafka-server-start.sh -daemon config/server.properties 上面是通过手动启动Kafka,…

中科创达半年报:净利大跌超7成,智能汽车业务收入增速放缓

8月开始,国内上市公司进入半年报密集披露期。而在智能汽车行业,产业链不同玩家也是滋味各不同。 本周,中科创达(300496)发布2024年半年报,1-6月实现营业收入24.01亿元,同比下滑3.39%&#xff1…

Linux驱动开发—在自己总线下注册设备和驱动

书接上回:Linux驱动开发—创建总线,创建属性文件-CSDN博客 创建完总线,就可以进行本次实验了 文章目录 前备知识如何引用导出的符号 在总线下注册设备device_register 函数解析使用示例关键点: 实验结果 在总线下注册驱动driver_register 函…

Excel 常用操作

Excel 常用操作 定位单元格显示该行的序列号范围选中指定行列的单元格常用快捷键在A列中拿到30000个序号升序数据 定位单元格 在该输入框输入想要定位的列号与行号,回车即可定位成功 显示该行的序列号 在一个单元格中输入ROW()函数,回车,就显…

识别热带赤道波动的艺术

识别热带赤道波动的艺术 什么是赤道波动 天气尺度(时间) to 行星尺度(空间),纬向传播的低纬扰动 波动的周期从几天到几周 狭窄的定义: 线性波动理论的波解 kelvin waves (KW)equatorial rossby waves (ER)inertio-gravity waves (IG)mixed rossby g…

【SQL】餐馆营业额七日均线数据

目录 题目 分析 代码 题目 表: Customer ------------------------ | Column Name | Type | ------------------------ | customer_id | int | | name | varchar | | visited_on | date | | amount | int | -----------------------…

金风科技巴西风电装备制造基地正式投运

巴西巴伊亚州当地时间8月27日,金风科技巴西风电装备制造基地投运仪式成功举办。巴西联邦政府矿业能源部(Ministrio de Minas e Energia)部长Alexandre Silveira、巴西巴伊亚州州长Jernimo Rodrigues、中国驻里约热内卢总领事田敏、金风科技总…

Java生成任意长度随机字符串(数字+字母)

根据对于uuid随机获取其index的值组成字符串。生成的字符串越长,唯一性越高。 int i 10;String uuid UUID.randomUUID().toString().replace("-", "");StringBuilder randomStr new StringBuilder();Random random new Random();for (int j…

宠物医院管理平台的设计与实现---附源码93796

目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 2.2.5 修改信息流程 2.2.6 删除信息流程 2.3 系统功能…

人体存在雷达感应传感器,跌倒、人员存在探测,卫生间秒变智能空间

在这个科技日新月异的时代,智能家居已不再是遥不可及的梦想,而是悄然融入了我们生活的每一个角落。今天,就让我们一起探索一项革新性的技术——人体雷达感应传感器,在卫生间这一私密而重要的空间里,如何以非凡的智慧&a…

6个岗位抢1个人,百万年薪抢毕业生?大厂打响AI人才战

“24岁毕业时年薪50万元,到了30岁大概能升到P7(注:职级名称),那时就能年薪百万了。” 从上海交大硕士毕业后,出生于2000年的赵宏在今年入职腾讯,担任AI算法工程师,成为AI风口下第一批就业的年轻…

第二证券:a股为什么总在3000点徘徊?涨不上去的原因有哪些?

首要,要了解A股3000点指的是大盘指数,首要是反映A股的股价走势。一般情况下,上证指数表明的便是大盘指数,上证指数3000点,也便是大盘指数3000点。 指数常常环绕3000点徜徉,造成这种情况的原因有&#xff1…

USB3.2 摘录(12)

系列文章目录 USB3.2 摘录(一) USB3.2 摘录(二) USB3.2 摘录(三) USB3.2 摘录(四) USB3.2 摘录(五) USB3.2 摘录(六) USB3.2 摘录&…

揭秘2024下半年大学生必考证时间表!

2024下半年,大学生考证时间表已公布,为各位学子规划学术和职业发展提供了明确的时间节点。 以下是值得重点关注的几类考试及其相关时间安排: 一、外语类考试安排,英语四六级考试,报名时间预计在9月,而笔试…

C语言 | Leetcode C语言题解之第381题O(1)时间插入、删除和获取随机元素-允许重复

题目: 题解: #define DYNAMIC_ARRAY_SIZE 128typedef struct {int *data;int size, capacity; } dynamic_array_t; dynamic_array_t *dynamic_array_init() {dynamic_array_t *da malloc(sizeof(dynamic_array_t));da->size 0, da->capacity D…

支付宝开放平台-开发者社区——AI 日报 「8 月 29 日」

1 3分钟千人被裁,IBM中国大败退 量子位|阅读原文 该公司首席执行官 Arvind Krishna早前就表示,公司将在未来五年内,用人工智能取代8000个岗位工作。早在上一轮AI浪潮之初,IBM就已经实现了智能问答系统,成…

基因生物行业大数据中心之间高效数据备份怎么去实现

随着高通量测序技术的迅猛发展,基因数据的积累正以惊人的速度增长。预计到2025年,全球的测序能力将达到Zb的规模。面对海量的数据,传统的数据备份方法已经显得不够用,难以满足跨地区备份和灾难恢复的需求。因此,基因生…

SpringCloudGateway网关技术

一、认识网关 二、网关服务初始化 1、新建网关module、引入依赖 <dependencies><!--common&#xff0c;自己的通用工具类--><dependency><groupId>com.heima</groupId><artifactId>hm-common</artifactId><version>1.0.0<…

亲测好用,ChatGPT 3.5/4.0新手使用手册,最全论文指令手册~ 【2024年9月 更新】

本以为遥遥领先的GPT早就普及了&#xff0c;但小伙伴寻找使用的热度一直高居不下&#xff0c;其实现在很简单了&#xff01; 国产大模型快200家了&#xff0c;还有很多成熟的国内AI产品&#xff0c;跟官网一样使用&#xff0c;还更加好用~ ① 3.5 大多数场景是够用的&#xff…