为什么说大模型微调是每个人都必备的核心技能?

news2024/11/17 8:21:38

▼最近直播超级多,预约保你有收获

近期直播:基于开源 LLM 大模型的微调(Fine tuning)实战

 0 

为什么要对 LLM 大模型进行微调(Fine tuning)?

LLM 大模型(比如:ChatGPT-4.0)已经很强大了,为什么还需要微调?

主要有如下 4 点原因:

第一、缺乏专有数据,比如:企业内部的私有数据。

第二、缺乏最新数据,比如:GPT-4的训练数据截止到2021年9月。

第三、预训练成本高,比如:GPG-3 预训练成本为140万美金。

第四、提升数据安全性,比如:企业私有数据是不能传递给第三方大模型的,基于开源大模型的微调才能满足业务的需求。

 1 

如何对 LLM 大模型进行微调(Fine tuning)?

从参数规模的角度,对大模型进行微调(Fine tuning)有两条技术路线:

第一、对全量的参数,进行全量的训练,叫做全量微调  Full Fine Tuning,简称 FFT。

第二、只对部分参数进行训练,叫做 Parameter-Efficient Fine Tuning,简称 FEFT。

FFT 的原理,就是用特定的数据,对 LLM 大模型进行训练,将 W 变成 W`,W` 相比 W ,最大的改进点就是在上述特定数据领域的表现会好很多。

但 FFT 也会带来一些问题,主要有以下两个:

第一、训练的成本会比较高,因为微调的参数量跟预训练的是一样多;

第二、灾难性遗忘(Catastrophic Forgetting),用特定训练数据去微调可能会把这个领域的表现变好,但也可能会把原来表现好的别的领域的能力变差。比如:把 LLM 大模型的编程能力进行了调优,有可能会导致在文学创造等方面能力降低,如何在微调的过程中,同时兼顾各个能力维度,目前也是学术界研究的热点之一。

PEFT 主要解决就是 FFT 存在的上述两个问题,PEFT 也是目前比较主流的微调方案。

从训练数据的来源和训练方法的角度,LLM 大模型的微调有以下几条技术路线:

第一、监督式微调 Supervised Fine Tuning,简称 SFT,这个方案主要是用人工标注的数据,用传统机器学习中监督学习的方法,对 LLM 大模型进行微调。

第二、基于人类反馈的强化学习微调 Reinforcement Learning from Human Feedback,简称 RLHF。这个方案的主要特点是把人类反馈,通过强化学习方式,引入到对 LLM 大模型的微调中,让 LLM 大模型生成结果,更加符合人类的期望。

第三、基于 AI 反馈的强化学习微调 Reinforcement Learning with AI Feedback),简称 RLAIF。这个原理和 RLHF 类似,但是反馈的来源是 AI。这里是想解决反馈系统的效率问题,因为收集人类反馈,相对来说成本会比较高、效率比较低。比如:ChatGPT-4.0 通过训练奖励模型来对 LLM 大模型的回答进行打分,激励 ChatGPT-4.0 正向迭代优化。

不同的分类角度,只是侧重点不一样,对同一个 LLM 大模型的微调,也不局限于某一个方案,可以多个方案组合调优。

微调的最终目的,是能够在可控成本的前提下,尽可能地提升 LLM 大模型在特定领域的综合能力。

 2 

主流部分参数 PEFT 微调(Fine tuning)方案剖析

第一、Prompt Tuning,它的出发点Prompt-tuning 给每个任务定义了自己的 Prompt,拼接到数据上作为输入,同时 freeze 预训练模型进行训练,在没有加额外层的情况下,可以看到随着模型体积增大效果越来越好,最终追上了 LLM 大模型精调的效果。

2f866c70f4ca1e53dd75144ad11ee389.png

第二、Prefix Tuning,基于 Prompt Engineering 的实践表明,在不改变 LLM 大模型的前提下,在 Prompt 中添加适当的条件,可以引导LLM 大模型有更加出色的表现。

Prefix Tuning 和 Prompt Tuning 是类似的,只是在具体实现上有一些差异。

Prompt Tuning 是在 Embedding 嵌入环节,在输入序列 X 前面加特定的Token。

而 Prefix Tuning 是在 Transformer 的 Encoder 和 Decoder 的网络中都加一些特定的前缀。

具体是将 Y = WX 中的 W,变成 W` = [Wp; W],Y = W`X。

Prefix Tuning 保证了基座大模型本身是不变的,在推理的过程中,按需在 W 前面拼接一些参数。

第三、LoRA,LoRA 的实现思想很简单,如下图所示,就是冻结一个预训练模型的矩阵参数,并选择用 A 和 B 矩阵来替代,在下游任务时只更新 A 和 B。

7c34a5b85a66e765c2e6758344711755.png

LoRA 有一个假设:我们现在看到的这些 LLM 大语言模型,它们都是被过度参数化的。而过度参数化的大模型背后,都有一个低维的本质模型。

大模型参数很多,但并不是所有的参数都是发挥同样作用的,大模型中一部分参数,是非常重要的,是影响大模型生成结果的关键参数,这部分关键参数就是上面提到的低维的本质模型。

结合上图来看,LoRA 的实现包括以下几步:

首先, 要适配特定的下游任务,要训练一个特定的模型,将 Y=WX 变成 Y=(W+∆W)X,这里面 ∆W 主是我们要微调得到的结果;

其次,将 ∆W 进行低维分解 ∆W=AB  (∆W为 m * n 维,A 为 m * r 维,B 为 r * n 维,r 就是上述假设中的低维);

接下来,用特定的训练数据,训练出 A 和 B 即可得到 ∆W,在推理的过程中直接将 ∆W 加到 W 上去,再没有额外的成本。

另外,如果要用 LoRA 适配不同的场景,切换也非常方便,做简单的矩阵加法即可:(W + ∆W) - ∆W + ∆W`。

第四、QLoRA,结合上述流程

QLoRA 就是量化版的 LoRA,量化,是一种在保证模型效果基本不降低的前提下,通过降低参数的精度,来减少模型对于计算资源的需求的方法。

量化的核心目标是降成本,降训练成本,特别是降后期的推理成本。

QLoRA 是在 LoRA 的基础上,进行了进一步的量化,将原本用 16bit 表示的参数,降为用 4bit 来表示,可以在保证模型效果的同时,极大地降低成本。

比如:65B的 LLaMA  的微调要 780GB 的 GPU 内存,而用了 QLoRA 之后,只需要 48GB。效果相当惊人!

除了以上微调方法外,还有 Adapter、P tuning、P tuning V2等微调方案。

 3

免费超干货 LLM 大模型直播

为了帮助同学们掌握好 LLM 大模型的微调技术,本周日晚8点,我会开一场直播和同学们深度聊聊大模型的技术、分布式训练和参数高效微调请同学点击下方按钮预约直播,咱们本周日晚8点不见不散哦~~

近期直播:基于开源 LLM 大模型的微调(Fine tuning)实战

END

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

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

相关文章

python自动化测试(三):xpath获取元素

目录 前置代码 一、什么是xpath方式 二、通过xpath 单组属性名属性值 的方式进行元素定位 三、通过xpath的多组属性进行元素的定位 四、通过xpath文本值的方式进行元素定位 五、通过模糊的文本值方式进行元素定位 前置代码 # codingutf-8 from selenium import webdrive…

export declare const TestService和export const TestService的区别

两者的主要区别在于导出方式的差异和访问方式的差异。 export declare const TestService:这种方式使用了export declare语法来导出一个常量TestService。export declare语法告诉编译器,此处的声明是供其他模块使用的,但是在当前模块中并没有…

Could not update Flowable database schema: unknown version from database:

文章目录 一、出现问题的情况二、解决方法1、 act_ge_property这个表里面的版本改成flowable-engine的版本号2、act_id_property表的schema.version版本也改成和flowable-engine版本一致(如图所示) 一、出现问题的情况 项目集成flowable流程框架的时候&…

第15届蓝桥杯Scratch选拔赛中级(STEMA)真题2023年8月

第15届蓝桥杯Scratch选拔赛中级(STEMA)真题2023年8月 一、单选题 第 1 题 单选题 点击以下积木块,生成的随机数是一个( )。 A.整数 B.小数 C.整数或小数 D.以上都不对 第 2 题 单选题 运行以下程序&#xff0…

全自动洗衣机什么牌子好?迷你洗衣机品牌推荐

这两年小型洗衣机可以称得上较火的小电器,小小的身躯却有大大的能力,一键可以同时启动洗、漂、脱三种全自动为一体化功能,在多功能和性能的提升上,还可以解放我们双手的同时将衣物给清洗干净,让越来越多小伙伴选择一款…

态势感知中的连续与离散

在态势感知中,连续和离散都是重要的概念。连续通常指的是可以在一定范围内连续变化的状态或变量,例如高度、照度、加速度等。这些连续的状态可以通过传感器等设备进行实时监测和采集,得到连续的数值。在态势感知中,可以利用这些连…

在全新ubuntu上用gpu训练paddleocr模型遇到的坑与解决办法

目录 一. 我的ubuntu版本![在这里插入图片描述](https://img-blog.csdnimg.cn/297945917309494ab03b50764e6fb775.png)二.首先拉取paddleocr源代码三.下载模型四.训练前的准备1.在源代码文件夹里创造一个自己放东西的文件2.准备数据2.1数据标注2.2数据划分 3.改写yml配置文件4.…

规范预算执行,构建企业预算管理一体化建设

随着我国财政改革的不断深入,在财政部总结了历次财政预算改革经验的基础上,我国以优化财政预算管理体系为目标,通过整合各类业务以实现企业预算管理一体化建设。其目的是更好的提升预算管理的质量,系统准确地反映企业预算情况&…

ffmpeg中examples编译报不兼容错误解决办法

ffmpeg中examples编译报不兼容错误解决办法 参考examples下的README可知,编译之前需要设置 PKG_CONFIG_PATH路径。 export PKG_CONFIG_PATH/home/user/work/ffmpeg/ffmpeg/_install_uclibc/lib/pkgconfig之后执行make出现如下错误: 基本都是由于库的版…

如何设置位移贴图模拟物体裂缝?

1、位移贴图的原理? 位移贴图(Displacement Map)是一种用于增强模型细节的贴图技术,它可以通过改变模型表面的几何形状来实现更加真实的效果。与其他贴图技术不同,位移贴图不仅仅是给模型表面添加纹理和颜色&#xff…

在Mac上安装MongoDB 5.0

MongoDB 5.0安装 1、环境描述 操作系统:macOS 14.0 (23A344) 2、安装MongoDB 2.1、tar解压包安装 下载地址:Download MongoDB Community Server | MongoDB 创建一个目录,以便数据库将文件放入其中。(默认情况下,数据…

Unity3D 如何用unity引擎然后用c#语言搭建自己的服务器

Unity3D是一款强大的游戏开发引擎,可以用于创建各种类型的游戏。在游戏开发过程中,经常需要与服务器进行通信来实现一些功能,比如保存和加载游戏数据、实现多人游戏等。本文将介绍如何使用Unity引擎和C#语言搭建自己的服务器,并给…

Python 自动化详解(pyautogui)

文章目录 1 概述1.1 第三方库:pyautogui1.2 坐标说明 2 操作对象2.1 鼠标2.1.1 定位2.1.2 移动2.1.3 拖动2.1.4 滚动2.1.5 点击 2.2 键盘2.2.1 输入2.2.2 按键2.2.3 快捷键 2.3 屏幕2.3.1 截图2.3.2 分辨率 2.4 信息提示2.4.1 提示框2.4.2 选择框2.4.3 密码输入2.4.…

Simulink和GUI联合使用

1、内容简介 略 9-可以交流、咨询、答疑 2、内容说明 Simulink和GUI联合使用 Simulink、GUI、参数传递 3、仿真分析 4、参考论文 略

一种基于Redis时间和权重关联的分布式优先级队列方法

技术背景: 深度学习平台(或存在异步任务调度的平台),存在不同的操作用户,用户存在不同的部门,调度的硬件服务器资源,按照不同的资源类型,操作系统,GPU卡的型号区分成不同…

【EI会议征稿】 2024年遥感、测绘与图像处理国际学术会议(RSMIP2024)

2024年遥感、测绘与图像处理国际学术会议(RSMIP2024) 2024 International Conference on Remote Sensing, Mapping and Image Processing 2024年遥感、测绘与图像处理国际学术会议(RSMIP2024)将于2024年1月19日-21日在中国厦门举行。会议主要围绕遥感、测绘与图像处理等研究领…

系统定时器

存不住时间,时间转换成对应的数字量,频率和周期的一个关系了,周期是以时间为单位,时间存不住,把周期换成频率 SysTick一般用在实时操作系统,为系统提供时钟信号, systick包括俩种时钟源 1.FCL…

DBeaver安装与使用教程(超详细安装与使用教程),好用免费的数据库管理工具

DBeaver安装步骤 资源下载: https://download.csdn.net/download/qq_37181642/88479235 官网地址: https://dbeaver.io/ 安装dbeaver 点击上图.exe安装工具,安装完成后不要打开 。 windows配置hosts 在hosts文件中加入: 127.0.0…

learning rate

这里写目录标题 learning rate单一固定(one-size-fits-all)的学习率Model训练到驻点很困难(学习率太大不能收敛,学习率太小收敛太慢) 如何客制化学习率?- 引入参数σσ常见的计算方式 - Root mean square&a…

input实现手机验证码输入

实现效果&#xff1a; 实现思路&#xff1a; 将code框定位到input框上通过input的输入实现验证码的输入将input输入的支赋值在code框上 小demo&#xff1a; <template><a-row :gutter"[12, 12]" class"m-12"><a-col :span"24"…