论文解读:LONGWRITER: UNLEASHING 10,000+ WORD GENERATION FROM LONG CONTEXT LLMS

news2024/11/16 22:51:52

摘要

现象:当前的大预言模型可以接受超过100,000个tokens的输入,但是却难以生成超过2000个token的输出。
原因:监督微调过程(SFT)中看到的样本没有足够长的样本。
解决方法:

  1. Agent Write,可以将长任务分解为子任务,从而实现可以生成超过20,000字的输出,它根据用户的输入编写了一个详细的写作计划,列出每个段落的结构和目标字数,之后以顺序的方式生成每个段落的内容。
  2. 利用管道,在GPT-4o上建立了数据集:Long Writer-6k,包含6000个长度从2k到32k的数据。使得现有模型能够输出超过10,000字。
  3. Longbench-Write,一个基准,用于评估超长文本的生成能力。包含一组不同的用户编写指令,输出长度规格从0-500字,500-2000字,2000-4000字,超过4000字,

结果:9B参数的模型已经可以在 benchmark上取得最佳效果,只需要在模型对齐过程中具有扩展数据。

Agent Write

  1. 计划
    受人类作家思维过程的启发,一个作家通常会为了长时间的写作任务制作一个总体计划,通常包括每个章节的写作计划与大纲,我们利用LLM的规划能力创作了一个写作大纲,给出一个写作指令。
    在这里插入图片描述

  2. 在生成文本的时候,我们也会将前n-1段文本的内容输入进去,这种串行输入的方式生成的内容远远优于并行文本的输出。
  3. 检验
    检验分为两个方法,分别是LongWrite-Ruler,用于检测一个输出模型可以输出的长度可以为多少;Longbench-Writer,这是我们自己构建的benchmark,用于评估生成内容在指令方面以及和用户指令的一致性程度。

Longbench-Write

为了评估性能,我们收集了120个用户书写提示,60个中文,60个英文,每个都包含了明确的字数要求,分为4个子集,分别为0-500个字,500-2000个字,2000-4000个字,超过4000个字。此外,我们根据输出内容,将文本分为7种类型,文学和创意写作、学术和专著、大众科学、功能写作、新闻报道、社区论坛和教育和培训。

Evaluation

在评估方面,分为两个方面,一个是文章长度是否达标,另一个是文章的质量,文章的长度决定了分数所在的不同的分段函数。
在这里插入图片描述
在具体评价质量方面,采用先进的GPT-4o模型,分别从相关性、准确性、一致性、清晰度、广度和深度以及阅读体验几个部分对于文章进行打分,最后取平均。

结果

在这里插入图片描述

LongWriter:用于生成超长输出的教学数据集及训练

我们已经有了Agent Write,可以生成长文本了,现在我们好奇是否能够利用它生成数据集,从而让大模型能够自己生成长文本。

数据集构建

我们从GPT-4o的SFT中选取了3000条中文指令,从WildChat-1M中选取了3000条英文指令,我们进一步应用基于规则的匹配来过滤掉有毒指令和原本打算用于抓取的指令,经检查发现,这6000条有95%以上需要几千字的响应。再过滤和清除掉无关内容后,构建了数据集LongWriter-6k,输出长度相对均匀地分布在2k至10k之间。一般训练的时候会将LongWriter-6k和别的数据集混合,从而弥补了2k以上的稀缺性。

模型训练

  1. 监督微调
    我们基于两个最新的开源模型,GLM-4-9B和 Llama-3.1-8B进行微调,得到了LongWriter-8BLongWriter-9B
  2. 对齐(DPO)
    为了进一步提高模型质量,我们对LongWrtier-9B进行了偏好优化。DPO数据来自GLM-4聊天数据,大约5w个;我们还额外构建了四千对针对长篇书写的数据。对于每个指令,我们从LongWriter-9B中抽取四个输出,从中取得最好的一个作为正样本,从其它三个中随机选取一个作为负样本。DPO差不多能给模型提高3%到4%的效果。
  3. 结果
    在这里插入图片描述
    在这里插入图片描述

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

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

相关文章

为什么MCU I2C波形中会出现的脉冲毛刺?

在I2C的波形中,经常会发现有这样的脉冲毛刺,会被认为是干扰或者器件不正常。 看到这个波形时,可以先数一下出现在第几个clock的位置,如果出现在第9个clock的低电平期间,就不是干扰或者器件异常导致。 在I2C的协议中&a…

Java并发类的主要API方法-CountDownLatch和CyclicBarrier

1.概念介绍 CountDownLatch 是一个计数器,计数器的初始值由创建它时指定。每次调用 countDown() 方法时,计数器会减1,直到计数器值变为0时,所有调用 await() 的线程都会被唤醒继续执行。 CyclicBarrier 是 Java 中另一个常用的同…

基于CDIO概念的人工智能物联网系统开发与实施的人才培养研究

目录 1. 引言(Introduction) 2. AIoT技术及其培训特点(The Characteristics of AIOT and Its Training) 3. 基于CDIO概念的AIoT课程改革(CDIO Concept-based Reform of AIOT Course) 4. AIoT课程内容安…

SweetAlert2

1. SweetAlert2 SweetAlert2是一个基于JavaScript的库, 用于在网页上替换标准的警告框(alert), 确认框(confirm)和提示框(prompt), 并提供更加美观和用户友好的界面.需要在项目中引入SweetAlert2, 可以通过CDN链接或者将库文件下载到你的项目中来实现这一点. 通过CDN引入:<…

C++:stack类(vector和list优缺点、deque)

目录 前言 数据结构 deque vector和list的优缺点 push pop top size empty 完整代码 前言 stack类就是数据结构中的栈 C数据结构&#xff1a;栈-CSDN博客 stack类所拥有的函数相比与string、vector和list类都少很多&#xff0c;这是因为栈这个数据结构是后进先出的…

SPRING09_ Bean后置处理器创建过程、SmartInstantiationAwareBeanPostProcessor预测方法调用

文章目录 ①. Bean后置处理器创建过程②. SmartInstantiationAwareBeanPostProcessor预测方法调用 ①. Bean后置处理器创建过程 ①. 坏境准备,在BeanPostProcessor的无参构造器、postProcessBeforeInitialization以及postProcessAfterInitialization打上断点.以xml的方式启动容…

秋招突击——8/15——新作{最大子数组和、合并区间、转轮数组、除自身以外的数组的乘积}

文章目录 引言新作最大子数组和个人实现参考实现 合并区间个人实现短板补充——自定义排序标准 参考实现 转轮数组最终实现 除自身以外数组的乘积个人实现 总结 引言 以前刷题的方式方法有问题&#xff0c;花太多时间了&#xff0c;应该先过一遍&#xff0c;然后再针对特定的题…

第一百九十四节 Java集合教程 - Java优先级队列

Java集合教程 - Java优先级队列 优先级队列是其中每个元素具有相关联的优先级的队列。具有最高优先级的元素将从队列中删除。 PriorityQueue 是一个实现类对于Java Collection Framework中的无界优先级队列。 我们可以使用在每个元素中实现的 Comparable 接口作为其优先事项。…

C# OnnxRuntime YoloV5 Demo

目录 效果 模型信息 项目 代码 Form1.cs YoloV5.cs 下载 效果 模型信息 Model Properties ------------------------- --------------------------------------------------------------- Inputs ------------------------- name&#xff1a;images tensor&#xff1a…

机器学习/人工智能中的学习证明

一、说明 在进行任何数学发展之前&#xff0c;我们必须首先了解学习的基础以及它如何与错误的概念密切相关。关于代价函数&#xff0c;它的工作原理是梯度下降原理。本文将回顾梯度下降原理。 二、假想的厨师 想象一下&#xff0c;在任何一天&#xff0c;你决定复制你在一家著名…

8.13 Day19 Windows服务器(Windows service 2008 R2)上域的搭建 (1)

域服务器&#xff08;DC&#xff09;&#xff1a;安装了活动目录服务的服务器就称为DC。 将三台设备配置在同一网络中&#xff0c;此处将外部网络隔离开&#xff0c;只将他们放在局域网中 服务端网络配置&#xff0c;此时与外部网络彻底隔绝开&#xff0c;且已无法和主机通信&…

XSS game复现(DOM型)

目录 1.Ma Spaghet! 2.Jefff 3.Ugandan Knuckles 4.Ricardo Milos 5.Ah Thats Hawt 6.Ligma 7.Mafia 8.Ok, Boomer 1.Ma Spaghet! 通过简单的尝试发现传递参数可以直接进入h2标签 接下来我们尝试传入一个alert(1) 可以看到并没有触发。原因是在innerHTML中官方禁用了sc…

二进制安装php

下载php二进制包&#xff1a; 官网地址&#xff1a;https://www.php.net/releases/ PHP: Releaseshttps://www.php.net/releases/在里边可以选择自己要下载的包进行下载&#xff1b; 下载完成后进行解压&#xff1a; tar xvzf php-7.3.12.tar.gz 解压后 进入目录进行预编…

xss案例

首先进入XSS Game - Learning XSS Made Simple! | Created by PwnFunction打开环境 Ma Spaghet 在script里面给使用get传参给somdbody传一个值&#xff0c;若没有传值&#xff0c;默认传SomebodyToucha Ma Spaghet!,赋值给spaghet,放在h2标签中&#xff0c;spaghet后会有一个in…

Linux根目录下的各个目录的用途介绍

在Linux系统中&#xff0c;我们可以通过cd /命令进入根目录&#xff0c;然后ls -l(或者ll命令)即可查看根下目前的目录情况&#xff1a; 这些不同目录的用途说明如下&#xff1a; /bin&#xff1a;包含基本命令文件&#xff0c;如ls、cp等&#xff0c;这个文件中的文件都是可执…

基于协同过滤算法的黔醉酒业白酒销售系统_p091v--论文

TOC springboot349基于协同过滤算法的黔醉酒业白酒销售系统_p091v--论文 绪论 1.1背景及意义 中国经济快速发展&#xff0c;人均GDP逐年上涨&#xff0c;非生活必须品的消费比重也随之增加 &#xff0c;酒类销售额度&#xff0c;尤其是酱香型白酒销售额近些年可谓发展迅猛&…

STM32通过I2C硬件读写MPU6050

目录 STM32通过I2C硬件读写MPU6050 1. STM32的I2C外设简介 2. STM32的I2C基本框图 3. STIM32硬件I2C主机发送流程 10位地址与7位地址的区别 7位主机发送的时序流程 7位主机接收的时序流程 4. STM32硬件与软件的波形对比 5. STM32配置硬件I2C外设流程 6. STM32的I2C.h…

Hadoop如何搭建计算和存储节点分离

在业内存在着一种看起来比较离谱的搭建方式&#xff0c;叫计算节点与存储节点分离&#xff0c;说它比较离谱&#xff0c;是因为hadoop架构本身不直接支持将这两者分开&#xff0c;因为hadoop本身的一大优势就是计算本地化&#xff0c;这种分开搭建的方式抛弃了这种优势&#xf…

Linux 软件编程学习第十五天

1.TCP粘包问题&#xff1a; TCP发送数据是连续的&#xff0c;两次发送的数据可能粘连成一包被接收到 1.解决粘包问题方法&#xff1a; 1.接收指定长度&#xff1a;&#xff08;不稳定&#xff09; 发送5个字节 接收5个字节 2.睡眠&#x…

用户画像实时标签数据处理流程图

背景 在用户画像中&#xff0c;有一类实时标签&#xff0c;我们既要它能够实时的对外提供数据统计&#xff0c;也要保存到大数据组件中用于后续的对数&#xff0c;圈选的逻辑&#xff0c;本文就看一下用户画像的实时标签的数据流转图 实时标签数据流转图 首先我们肯定是要使…