大模型训练的一些坑点和判断

在没有完全复现chatgpt之前,这些东西都是包大人根据公开资料和实践经验收敛出来的判断,仅供参考,所有的论断都有可能被新技术推翻。

1.冷启动可能是一个很重要的东西。

大模型的训练过程就是一步一步从全网数据得到的语言模型逐渐逼近接近人的语言习惯。

pretraining是给SFT冷启动,SFT是给RL冷启动。

在每一个独立环节里,冷启动的也是需要的,比如LLama2里面提到了一个SFT的bootstrap的方法,RL中的迭代式和拒绝采样的方法

pretraining让大模型具有基本的知识储备和语言模型的泛化,这样给SFT一个很好的初始化,降低SFT阶段的数据消耗,让他初步对齐人的习惯。

SFT更像是给RL阶段的采样一个冷启动的能力,防止采样到的东西超出了RM的判别能力圈,让他尽量的接近RM限定的好的和坏的的范围之内。

但是SFT的数据构造成本是很高的,比如国内有扒gpt数据,想去通过SFT蒸馏gpt的能力,这个思路挺符合直觉,如果没有很好的人力物力的话,也不失为一种方法。

SFT相比RL训练过程,其达到的泛化能力上限是比较差的,因为数据总有尽头,高质量的数据更是难上加难,直接的训练更像是方向上的指引,SFT阶段的冷启动可能也是必要的。

最后在RL阶段,把无限的数据生成交给采样的过程,把判别好坏的过程交给RM。这个过程中,LLM和RM的能力需要同步匹配进化,防止LLM太强之后,RM丧失判断力,这就是我们看到的llama2迭代式更新。


2.RM的水很深

RL的过程大家的目的性很明确,像经典的PPO的思路就很符合直觉,解决的问题关键就是RL用在LLM的稳定性上的问题。

稳定性算是有一些明确的技术导向的东西,比如学习过程中加入“正常的参考”,防止学习的过程太激进等,让他尽量保持较好LLM的能力,而不是单纯拟合高分。

但在RM这里,却有很多深坑,有一种叫做reward hacking的现象,经常出现。

LLM的策略空间太开放了,不像RL打游戏,只有上上下下AABB几个键的组合。

LLM的词表下选哪个词,词组成什么序列,都是一个策略。

开放的决策对于模拟打分环境来说难度太大了,对RM的泛化程度有极其高的要求。

假设一个场景,如果你的LLM有badcase,你想把所有已知的badcase在RM中设置为差,随便标点数据的正常的话设置为好。

然后把判别badcase的rm用来做强化学习,妄图消灭所有的badcase,这个很符合直觉的思路有巨大的坑。

你会发现你的RL最终学习到的是一种未知的高分模式,在你badcase之外又找到了另外一种badcase当成了高分。

就像蚂蚁在白纸上走路,四周都是大坑,只有一小块地安全,他随机游走,你不停地在他经过的不好的方向上打X。

结果发现不好的方向无穷尽,根本打不完。

最终大概率你的模型学习到了输出一堆没什么用的东西,但是RM分数很高。

这就是reward hacking。

如果你不在本质上提升RM全知全能的打分能力,仅仅靠加大KL散度惩罚,value裁剪等方式,都是缓解问题的发生而不是根本解决。

最后一头包。。

这个在LLama2的论文的过程中有所体现,meta团队很重注保持RM的能力,当发现RM丧失判断力的时候,及时更新迭代它。

防止让RL鼓励出一些奇奇怪怪的东西。

RM的能力除了体现在泛化性,也体现在区分度上,所以我们看到了meta把人脸里面的margin搬过来了。。


3.效率与效果的权衡

除了硬件和流水线上的优化,样本的构造,learning的过程中有很多这样的优化点。

比如之前提到的多轮对话的构造trick大模型微调样本构造的trick,这就是能极大提高学习效率的方法,我们在LLama2中也看到了同样思路的操作。

不过llama做的更离谱和激进一些,把不同session也搞到一起了。通过的special token让模区分开,这个细节要确认下。

这里认为有一种特殊的结束符分割了不同的session,普通结束符号类似<eos>分割轮次。

除了在数据构造上,learning的过程中,也有一些效率和效果的权衡,像DPO这种方法,可以省掉PPO采样的时间。

DPO在对齐的时候,把RM和采样的压力,转化为标注数据的压力。

这样的方法也可以提高训练效率,不过在对齐阶段,追求数据的绝对的量似乎太困难了,大家基本都用了相对数据比较少的质量高数据,通过已有LLM的基础得到的RM来训练。

DPO这种方法似乎走了反方向,需要你你充足够多的钱,标足够多的数据,效果能否达到PPO的天花板有待考证。

效率和效果永远是个权衡,LLama2在最后一个阶段就选取了牺牲效率获取质量,使用了拒绝采样的方法,防止 RL过程中学习到一些未知的惊喜。

这个多次采样选一个基本把资源的消耗提升了采样次数的倍数。

整体看起来,越靠近pipelin的后面,越要关注质量,当然越靠近后面的实际上在整体中的资源耗费是比较小的,所以可以相对牺牲一些效率。

这样看起来DPO就不是很科学了,反而拒绝采样是一个相对合理的解法。


4.大模型评估很关键,水很深。

这个前面写过大模型评测,也太难了吧,和大模型训练太难了!里面总结过一些原因,其中关键的观点就是评估做不好的话,会影响实验效率,实验效率可以折算成单位时间的算力消耗,

可以推导出评估做不好 = 费钱费时。

所以你做实验慢了,相当于比别人少了GPU,足够触目惊心吧。

openai不仅仅卡多,还有实验效率倍增的buff,相当于 卡 * 效率倍数。

至今也没有一个公开的特别靠谱的自动化评估方


5.下游微调的水很深。

大家都想着的是我通过标一些领域数据,然后在领域数据上进行SFT和对齐,使它用于领域额外的能力。

这里我们分两种情况,如果你把他当成一个场景单一模型的话,当成bert T5这么用的话还好。

如果你想着让他保持原有大模型的能力,再嵌入一些额外的知识,这里难度是非常大的。

实践发现你就会完全不是那么回事,基本上就是捡了芝麻丢了西瓜,除非你你只在乎捡芝麻这一件事。

试过就发现要只用领域数据非常容易过拟合到领域数据上,对OOD的处理会表现的非常差。

如果想保持原有的能力的话,对各个环节的数据配比要求会很高,最好是在原来规模程度的数据上,增加额外的场景数据,重新走部分流程。

但是困难的是,原有数据保持分布的采样,你拿到的模型是个黑盒,别人并没有给你原始的数据分布,更何况海涉及到了惊细的清洗。

所以最终的领域大模型,也几乎只是一个丧失了通用能力,基础能力的领域生成模型。

至于你想让他在某一个方向加深能力,并且保持原有的能力不下降,整体要付出的成本不下于重新塑造一个通用大模型。

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

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

相关文章

RabbitMQ的安装

RabbitMQ的安装 1、Windows环境下的RabbitMQ安装步骤 使用的版本&#xff1a;otp_win64_23.2 rabbitmq-server-3.8.16 版本说明&#xff1a;https://www.rabbitmq.com/which-erlang.html#compatibility-matrix 1.1 下载并安装erlang RabbitMQ 服务端代码是使用并发式语言…

AI_背景知识

AI背景知识 一、生成式预训练模型&#xff08;GPT: Generative Pre-trained Transformer&#xff09;二、大语言模型&#xff08;LLM: Large Language Model&#xff09;1、大语言模型、GPT、Transormer 关系2、Transformer的多功能&#xff1a;从翻译到代码生成 三、词向量检索…

力扣:55. 跳跃游戏(Python3)

题目&#xff1a; 给定一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;力扣 示例&#xf…

想要保证办公协同文档的安全?这个权限科普你一定要看

企业在设置办公协同文档的时候&#xff0c;通常需要设置权限来确保数据的安全和保密性&#xff0c;并控制用户对文档的访问和编辑权限。looklook今天就从办公协同文档的权限出发&#xff0c;来和大家聊聊这些常见的权限设置。 办公协同文档的权限 1.阅读权限&#xff1a;只允许…

【vim 学习系列文章 4 - vim与系统剪切板之间的交互】

文章目录 背景1.1.1 vim支持clipboard 检查1.1.2 vim的寄存器 上篇文章&#xff1a;【vim 学习系列文章 3 - vim 选中、删除、复制、修改引号或括号内的内容】 背景 从vim中拷贝些文字去其它地方粘贴&#xff0c;都需要用鼠标选中vim的文字后&#xff0c;Ctrlc、Ctrlv&#x…

怎么绘制汤姆索亚历险记思维导图?掌握这几个绘制步骤就可以

怎么绘制汤姆索亚历险记思维导图&#xff1f;如果你正在为学习汤姆索亚历险记而感到困惑&#xff0c;或者你想要更好地理解小说中的人物关系、情节和舞台背景&#xff0c;那么一个清晰的思维导图就可以帮助你梳理思路。那么下面就给大家介绍一下绘制步骤。 在进行思维导图绘制的…

前端面试的性能优化部分(7)每天10个小知识点

目录 系列文章目录前端面试的性能优化部分&#xff08;1&#xff09;每天10个小知识点前端面试的性能优化部分&#xff08;2&#xff09;每天10个小知识点前端面试的性能优化部分&#xff08;3&#xff09;每天10个小知识点前端面试的性能优化部分&#xff08;4&#xff09;每天…

docker容器监控:Cadvisor +Prometheus+Grafana的安装部署

目录 Cadvisor PrometheusGrafana的安装部署 一、安装docker&#xff1a; 1、安装docker-ce 2、阿里云镜像加速器 3、下载组件镜像 4、创建自定义网络 二、部署Cadvisor 1、被监控主机上部署Cadvisor容器 2、访问cAdvisor页面 三、安装prometheus 1、部署Prometheus…

Clion开发Stm32之存储模块(W25Q64)驱动编写

前言 涵盖之前文章: Clion开发STM32之HAL库SPI封装(基础库) W25Q64驱动 头文件 #ifndef F1XX_TEMPLATE_MODULE_W25Q64_H #define F1XX_TEMPLATE_MODULE_W25Q64_H#include "sys_core.h" /* Private typedef ---------------------------------------------------…

LNMP搭建

LNMP&#xff1a;目前成熟的企业网站的应用模式之一&#xff0c;指的是一套协同工作的系统和相关软件 能够提供静态页面服务&#xff0c;也可以提供动态web服务。 这是一个缩写 L linux系统&#xff0c;操作系统。 N nginx网站服务&#xff0c;也可也理解为前端&#xff0c…

.ps1和.bat的区别

.ps1和.bat的区别 .ps1 和 .bat 是两种不同的脚本文件类型&#xff0c;分别用于 PowerShell 和 Windows 批处理。它们在语法、功能和用途上有很大的区别&#xff1a; 1. 文件类型&#xff1a; .ps1 是 PowerShell 脚本文件的扩展名&#xff0c;用于编写和执行 PowerShell 脚…

c++画出分割图像,水平线和垂直线

1、pca 找到图像某个区域的垂直线&#xff0c;并画出来 // 1、 斑块的框 血管二值化图&#xff0c;pca 找到垂直血管壁的直线, 还是根据斑块找主轴方向吧// Step 1: 提取斑块左右范围内的血管像素点坐标&#xff0c;std::vector<cv::Point> points;for (int y 0; y <…

公文校对要点:确保准确性和规范性

公文校对是确保文档准确性和规范性的重要步骤。以下是公文校对的要点&#xff1a; 1.拼写和语法检查&#xff1a;仔细检查文档中的拼写错误和语法错误。确保词语的正确拼写&#xff0c;并使用正确的语法结构和标点符号。 2.信息准确性&#xff1a;核对文档中的事实和数据&#…

MySQL流程控制(二十八)

二八佳人体似酥&#xff0c;腰悬利剑斩愚夫&#xff0c;虽然不见人头落,暗里教君骨髓枯。 上一章简单介绍了MySQL变量(二十七) ,如果没有看过,请观看上一章 一. 定义条件与处理程序 定义条件是事先定义程序执行过程中可能遇到的问题&#xff0c;处理程序定义了在遇到问题时应…

三言两语说透webpack对vue的编译

目录 1.写在前面 2.前置条件 3.源码分析 4.大厂面试回答 5.总结 1.写在前面 Webpack作为当下最流行的前端构建工具&#xff0c;它可以处理模块化的JavaScript项目&#xff0c;进行代码打包和优化。在Vue项目中&#xff0c;Webpack发挥着不可或缺的作用&#xff0c;它负责…

广州VR制作 | 利用VR元宇宙平台开展林地管理培训的优势

在林业领域&#xff0c;实地调查是获取准确数据和深入了解森林生态的重要手段。然而&#xff0c;传统的实地调查方法存在诸多问题&#xff0c;如时间成本高、人力物力投入大、安全风险高等。为了解决这些教学痛点&#xff0c;我们引入了虚拟现实(VR)技术&#xff0c;通过虚拟林…

我的创作纪念日【第一个2048day】

机缘 初心&#xff1a;研究生期间&#xff0c;帮老师做一个项目&#xff0c;过程中学习的东西想记录下来&#xff0c;于是&#xff0c;就选择了CADN让技术分享成为工作的一部分 收获 获得了1800多粉丝的关注获得了63万的访问量&#xff0c;其中《C#设计模式》专栏深受大家喜欢…

低代码平台:初创公司的理想选择

对于初创公司而言&#xff0c;时间和资源是宝贵的。他们需要快速构建和部署应用程序&#xff0c;以满足业务需求&#xff0c;提高效率&#xff0c;并保持竞争优势。在这个背景下&#xff0c;低代码平台成为了初创公司的一个理想选择。而Zoho Creator作为一款出色的低代码平台&a…

Python中的Pathlib可以完美替代os.path

相信现在依然有很多人习惯于使用os来处理文件/文件夹/路径等&#xff0c;但其实Python自带的Pathlib库处理这些更优雅、更安全&#xff0c;你会发现很多大型开源项目都在使用它 先看这个引例&#xff0c;假设我们需要获取某个文件夹下所有的txt文件&#xff0c;基于os会写成如…

chatgpt openai API报错openai.error.APIConnectionError

openai.error.APIConnectionError: Error communicating with OpenAI: 报错信息无用方案问题查看urllib3版本方法 可行方案法1法2&#xff1a;自己找包安装 报错信息 raise error.APIConnectionError( openai.error.APIConnectionError: Error communicating with OpenAI: HTT…