【LLM之Base Model】Weaver论文阅读笔记
研究背景
当前的大型语言模型(LLM)如GPT-4等,尽管在普通文本生成中表现出色,但在创造性写作如小说、社交媒体内容等方面,往往不能很好地模仿人类的写作风格。这些模型在训练和对齐阶段,往往使用的是大规模的、质量较低的网络文本或机器生成文本,这导致了模型生成的内容虽流畅但缺乏创造性和人类风格。
研究目标
Weaver模型系列旨在通过预训练和特定领域的对齐,使LLMs在创意和专业写作方面表现得更加人性化和多样化。Weaver通过引入一系列新的数据合成和对齐方法,使其能够生成更具创造性和符合人类风格的文本,从而满足内容创作的多样需求。
相关工作
当前的LLMs在大规模网络数据上进行预训练,通常使用由众包人员标注的数据进行对齐。然而,这些模型往往在创意写作中表现不足。与之相比,Weaver通过引入“Instruction Backtranslation”框架和Constitutional DPO算法,显著提高了模型的写作能力。Weaver通过结合现有的先进技术,如LLaMA的改进设计以及Rotary Embedding等,进一步优化了模型的写作表现。
方法论
数据处理
Weaver模型使用了一种创新的数据合成框架,用于在对齐阶段解锁模型的写作能力。首先,通过对高质量故事、小说和文案的收集,生成与写作任务相关的高质量指令-响应对。此外,还采用了结合规则和机器学习的方法来过滤低质量文本,以确保训练数据的高质量和多样性。
在SFT阶段,收集了34个子领域和50万的指令-输出对:

在偏好对齐阶段,使用Constitutional DPO方法收集以下领域任务的dpo数据

解决方案
Instruction Backtranslation
【指令反向翻译】(Instruction Backtranslation)是一个核心方法,用于合成高质量的训练数据,以改进语言模型按照具体指令生成文本的能力。这个过程通过以下几个步骤实现:
- 从专业写作者那里收集高质量内容:首先从专业内容创建者如作家和编辑那里收集高质量的故事、小说章节、博客文章等内容。
- 合成指令-响应对:通过反向翻译框架,将收集到的内容转化为指令-响应对。具体来说,对于每个高质量的文本,模型会生成一个与之对应的指令,使得该文本可以作为这一指令的合理响应。
- 扩展和多样化的指令生成:该框架不仅重新生成已有指令,还能创造新的指令,以引导模型产生与原始文本风格或内容相符的新文本。这样做可以显著提高数据的多样性和覆盖范围。
- 提高数据注释质量:通过自动化的反向翻译过程减少人工注释的需求,降低成本,同时通过精确控制生成过程来提高注释数据的质量。
Constitutional DPO
提出Constitutional DPO算法,用于模型偏好的优化。Constitutional DPO 是一种用于调整大型语言模型(LLMs)的新型方法,旨在通过学习遵循专家定义的原则,从而优化模型的输出质量。这种方法结合了几种现有技术的优势,包括Constitutional AI、RLCD(Reinforcement Learning with Critic-Demonstrations)、以及DPO(Direct Preference Optimization)。此算法利用专家注释的原则来合成反例,以此校准模型输出,确保其遵循特定的写作原则和风格。

具体来说,Constitutional DPO 通过以下步骤工作:
(1)原则定义与注释:首先,邀请人类专家(如专业作家、编辑)为不同的写作任务注释原则。这些原则不仅包括简短的描述,还包含一个遵循该原则的案例和一个违反该原则的案例,以及解释为什么这些案例符合或违反原则的自然语言推理。
(2)负面示例生成:在每个原则下,基于高质量的文本样本,使用语言模型(如GPT)生成与正面示例相对的负面示例。负面示例通过最小化修改原始响应来违反特定原则,但不影响其他好的方面。这种方法生成的偏好数据噪声较少,特别是在需要较高标准的写作领域中,能够提供更加有原则性和针对性的学习信号。
(3)偏好数据优化:利用生成的正负样本对,作为 DPO 训练的输入数据对 (yw, yl)。通过这种方式,每个数据对都包含了对应原则的关键训练信号,有助于模型在微调过程中学习并遵循这些原则。
实验
能力体系设计
| 大类 | 中类 | 小类 |
|---|---|---|
| 指令遵循 | 领域 | 小说写作 |
| 指令遵循 | 领域 | 非小说创意性写作 |
| 指令遵循 | 领域 | 营销写作 |
| 指令遵循 | 领域 | 技术写作 |
| 指令遵循 | 任务 | 内容编写 |
| 指令遵循 | 任务 | 大纲编写 |
| 指令遵循 | 任务 | 润色 |
| 指令遵循 | 任务 | 风格转换 |
| 指令遵循 | 任务 | 扩写/缩写 |
| 指令遵循 | 任务 | 头脑风暴 |
| 指令遵循 | 任务 | 文章审核 |
| 指令标注 | - | - |
| 答案评估 | - | - |
| RAG | - | - |
| Function call | - | - |
实验设计
数据方面
| 阶段 | 量级 | 备注 |
|---|---|---|
| Pretrain | 50B | 将小说数据(即小说和故事)和非小说数据(即文章、论文、报告等)混合在一起。它的比例是1: 1。我们还将中文和英语数据与4: 1的部分混合,使Weaver同时支持中文和英语。 |
| Sft | 40w | |
| DPO | 2.5w |
评价指标
Weaver模型在一个专门设计的创意写作基准测试(WriteBench)上进行了评估,该测试覆盖了多种写作领域和任务,包括小说写作、创意非小说写作、技术写作和市场营销写作,用以全面评估模型的写作能力。
WriteBench 包含了超过1000条测试指令,覆盖了上述多个写作领域。为了保证评估的公平性和客观性,WriteBench 的数据收集和选择过程由一个独立的评估团队进行。这些测试指令被用于生成模型的输入提示,并记录模型的输出以进行比较。
消融方面
主要选择了市面上比较有名的模型,如GPT4、qwen等,直接使用WriteBench中的相同指令作为所有被测试的llm的输入提示,并收集模型输出作为响应。
实验结论
实验结果显示,Weaver模型在所有大小配置上均优于现有的更大的通用LLM。特别是Weaver Ultra模型,在多个创意写作场景中表现优异,超过了GPT-4等先进模型。


参考资料
- 论文
- 模型体验
相关文章:
【LLM之Base Model】Weaver论文阅读笔记
研究背景 当前的大型语言模型(LLM)如GPT-4等,尽管在普通文本生成中表现出色,但在创造性写作如小说、社交媒体内容等方面,往往不能很好地模仿人类的写作风格。这些模型在训练和对齐阶段,往往使用的是大规模…...
泰坦尼克号 - 从灾难中学习机器学习/Titanic - Machine Learning from Disaster(kaggle竞赛)第一集(了解赛题)
此次目的: hello大家好,俺是没事爱瞎捣鼓又分享欲爆棚的叶同学!!!准备出几期博客来记录我学习kaggle数据科学入门竞赛的过程,顺便也将其中所学习到的知识分享出来。这是第一集(了解赛题&#x…...
使用C++调用PyTorch模型的弯弯绕绕,推荐LibTorch加载,C++处理
需求:使用C调用Pytorch模型,对处理后的图像进行预测。 第一种,使用C调用Python代码处理,使用pybind11源代码再末尾 缺点,导入Python包非常麻烦,执行的C程序找不到cv2 torch包等等 本人解决了cv2 numpy等包&…...
实现异形(拱形)轮播图
项目需要实现如上图所示的轮播图。 实现思路: 1.项目引入使用普通轮播图。 2.根据轮播图个数,动态给可视范围的第一个轮播图和最后一个轮播图添加样式。 代码实现: 经调研,使用slick轮播图(官网地址 https://kenwheel…...
【软件测试】2024年职业院校技能大赛高职组“软件测试”赛项样题
目录 任务一:功能测试(45 分) 任务二:自动化测试(15 分) 任务三:性能测试(15 分) 任务四:单元测试(10 分) 任务五:接…...
python数组和队列
一、数组 如果一个列表只包含数值,那么使用array.array会更加高效,数组不仅支持所有可变序列操作(.pop、.insert、.extent等),而且还支持快速加载项和保存项的方法(.fromfile、.tofile等) 创建…...
Vision Transformer(ViT)一种将Transformer架构应用于计算机视觉领域的模型
Vision Transformer(ViT)是一种将Transformer架构应用于计算机视觉领域的模型,它通过自注意力机制处理图像数据,与传统的卷积神经网络(CNN)相比,ViT能够更好地捕捉全局依赖关系。以下是对ViT的详…...
得到任务式 大模型应用开发学习方案
根据您提供的文档内容以及您制定的大模型应用开发学习方案,我们可以进一步细化任务式学习的计划方案。以下是具体的任务式学习方案: 任务设计 初级任务 大模型概述:阅读相关资料,总结大模型的概念、发展历程和应用领域。深度学…...
使用el-menu跳转时偶尔会出现路由已经变了,但是页面却显示空白的情况
刚开始我以为是我数据加载的问题,后来又看有人说是template里不能包多个div,但我去看我出错的组件,并没有出现两个div。 后来我就把每个都给改了,即使是elemen-ui的标签也全部改在一个div里,就发现没问题了。 我改的…...
C语言家教记录(七)
C语言家教记录(七) 导语字符串字面量变量读写字符串操作函数惯用法数组 结构联合枚举总结与复习 导语 本次授课的内容如下:字符串,结构体、联合体、枚举 辅助教材为 《C语言程序设计现代方法(第2版)》 字…...
【数据结构】——十大排序详解分析及对比
【数据结构】——十大排序详解分析及对比 文章目录 【数据结构】——十大排序详解分析及对比前言1. 排序的概念及其运用1.1 排序的概念1.2 排序的应用 2. 插入排序2.1 直接插入排序2.2 希尔排序 3. 选择排序3.1 选择排序3.2 堆排序 4 交换排序4.1 冒泡排序4.2 快速排序4.2.1 霍…...
散点图适用于什么数据 thinkcell散点图设置不同颜色
在数据可视化的众多工具和技巧中,散点图是一种极为有效的方式,能够揭示变量之间的关系,尤其是在探索数据集的相关性、分布趋势、集群现象时。而在众多助力于制作高质量散点图的工具中,think-cell插件以其高效的操作和丰富的功能&a…...
1. windows搭建Kafka教程
目录 1. 部署zookeeper 1.1 下载地址 1.3 修改zoo配置 1.4 启动zookeepe服务 02 部署kafka 2.1 下载组件包 2.2 解压安装包 2.3 修改配置 2.4 启动kafka服务端 1. 部署zookeeper 1.1 下载地址 下载地址: kafka/zookeeper 下载地址 (qq.com) 1.2 解压 (…...
XSS复现
目录 XSS简单介绍 一、反射型 1、漏洞逻辑: 为什么有些标签可以触发,有些标签不能触发 可以触发的标签 不能触发的标签 为什么某些标签能触发而某些不能 二、DOM型 1、Ma Spaghet! 要求: 分析: 结果: 2、J…...
怎么利用XML发送视频彩信
传统的短信推广主要以文字为主,用户接收到的信息往往显得单调乏味。而视频彩信则不同,它结合了视频和音频的优势,通过生动的画面和悦耳的音乐,给用户带来强烈的视听冲击,从而极大地提高了用户的吸引力。 XML成功返回示…...
5G+工业互联网产教融合创新实训室解决方案
一、建设背景 随着第五代移动通信技术(5G)的快速普及和工业互联网的迅猛发展,全球制造业正面临着前所未有的深刻变革。5G技术凭借其超高的传输速率、极低的延迟以及大规模的连接能力,为工业自动化、智能制造等领域带来了革命性的…...
象棋布局笔记
文章目录 布局中炮(当头炮)当头炮的缺点如何应对平车压马平炮对车的理解中炮对屏风马急进中兵 中炮盘头马盘头马两翼突破 盖马三锤 反宫马克制反宫马 顺手炮 士角炮56炮破解56炮 小当头 屏风马7卒分支3卒分支屏风马红车二进六败招(黑未挺7卒前直接进车)马八进九变车三退一变马二…...
百度AI智能云依赖库OpenSSL库和Curl库及jsoncpp库安装
开发百度AI项目时,需要用到https协议,因此需要安装OpenSSl和curl库。 若只安装curl库,只支持http协议,不支持https协议。此外,还需要jsoncpp库,用以组包及解析与百度AI通信的json格式协议。 1.Ubuntu上安装…...
智慧空调离线语音控制方案:NRK3301芯片的深度解析与应用
随着AI技术的大爆发和智能家居的风潮,语音交互已成为智能家居产品的一项必备技能,在家电、音箱、穿戴设备乃至墙壁开关等贴近生活的产品中应用越来越广泛,智能语音识别是当前最热门的方案之一。 九芯智能顺应家居行业智能语音交互市场需求&a…...
基础第3关:LangGPT结构化提示词编写实践
提示词: # Role: 伟大的数学家 ## Profile - author: LangGPT - version: 1.0 - language: 中文 - description: 一个伟大的数学家,能够解决任何的数学难题 ## Goals: 根据关键词进行描述,避免与已有描述重复。 ## Background: 你正在被…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...
逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...
Python 高效图像帧提取与视频编码:实战指南
Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...
保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...
