一、模型微调技术

1.模型微调简介

大模型微调(Fine-tuning),是指在已经预训练好的大语言模型基础上(基座模型),使用特定的数据集进行进一步训练,让模型适应特定任务或领域。通常LLM的预训练是无监督的,但微调过程往往是有监督的。当进行有监督微调时,模型权重会根据真实标记的差异进行调整。通过这个微调过程,模型能捕捉到标签数据中特定于某一项任务的模式和特点。

1)指令微调(Instruction Tuning/SFT)

通过使用任务输入与输出的配对数据进行训练,使得语言模型掌握通过问答形式进行任务求解的能力。一般来说,指令微调很难教会大模型预训练阶段没有学习到的知识与能力,它主要起到了对于模型能力的激发作用。

2)人类对齐

由于大语言模型可能会生成具有偏见、泄露隐私甚至对社会有害的内容,在实践应用中需要保证大模型能够较好的符合人类的价值观,对齐目标一般聚焦于有用性、诚实性和无害性三个方面。代表性的做法是OpenAI公司提出的基于人类反馈的强化学习算法RLHF,将人类偏好引入到大模型的对齐过程中。

2.微调手段

Adapter Tuning,PET,Prefix Tuning,P-Tuning,LoRA,QLoRA等。

二、PEFT参数高效微调

在不调整预训练模型的所有参数的情况下,通过仅微调一小部分参数来适应特定的下游任务,显著降低计算和存储成本。加快模型适应速度,避免了灾难性遗忘。

1)PEFT目标是在保留预训练模型大部分参数不变的情况下,只对模型的一小部分参数进行微调。

2)适用于数据量小的任务

PEFT的分类:

a.additive-增量模型

通过在预训练模型的特定位置添加可学习的模块或者参数,以最小化适配下游任务时模型的可训练的参数。

方法:Adapter:通过在Transformer块内添加小型Adapter层来实现参数高效微调。Soft Prompt:通过在输入序列的头部添加可学习的向量来实现参数高效微调。

b.soft prompt-软提示

软提示是可学习的连续向量,通过梯度优化方法针对特定数据集进行优化。

 方法:Prefix-tuning:通过在每个Transformer层的键、值和查询矩阵前面添加可学习的向量,实现对模型表示的微调。Prompt Tuning:仅仅在首个词向量层插入可学习向量,以进一步减少训练参数。

c.adapters-适配器

适配器技术通过在模型的层之间插入小型神经网络模块(adapters),只训练这些模块的参数,而保持预训练模型的其他部分不变。

d.selective-选择性方法

选择性方法在微调过程中只更新模型中的一部分参数,而保持其余参数固定。

方法:包括非结构化掩码和结构化掩码技术。非结构化掩码通过在模型参数上添加可学习的二值掩码来确定可以微调的参数。结构化掩码对掩码的形状进行了结构化的限制,以提高效率。

e.reparameterizeation based-重参数化方法

通过构建预训练模型参数的(低秩的)表示形式用于训练,在推理时,参数将被等价的转化为预训练模型参数结构。

方法:LoRA通过将权重矩阵分解为俩个较低秩的矩阵来减少参数量,从而有效的减少需要更新的参数数量。

三、LoRA与QLoRA

1.LoRA

通过低秩分解来模拟参数的改变量,以极小的参数来实现大模型的间接训练。

简单理解:外挂模型,训练时冻结预训练模型的权重,仅改变外挂模型的权重,r为秩,简答理解为做一次维度变换,提取不同维度的特征。

2.QLoRA

量化版LoRA,显著降低训练时所需显存资源。

特点:

1)定义了4位标准浮点数(NF4)量化,基于分块的分位数量化的量化策略。

2)双重量化,包含对普通参数的一次量化和对量化常数的再一次量化,可以进一步减小缓存占用。

3)分页优化器,用来在显存过高时用一部分内存代替。

四、模型量化技术

1.量化原理

默认情况下模型的权重参数以及偏置均使用float32位全精度浮点数进行存储,目的为了保证精度。但是精度增加的同时也带了模型体积增大,训练速度降低,预测速度慢等问题。由此诞生了量化技术。

2.量化目的

将原本使用浮点数表示的模型参数转换为整数表示,以此来减少模型的存储空间需求并加速计算和推理的过程,将原本使用float32类型的数据转换为int8类型的数据。

3.对称量化与非对称量化

对称量化:使用一个映射公式将输入数据映射到[-128,127]的范围内。

非对称量化:使用一个映射公式将输入数据映射到[0,255]的范围内。

4.NF4量化

基于分位数量化的基础上,理论上最优的数据类型,可以确保每个量化区间从输入张量中分配相同数量的值,实际计算过程中,需要先将数据归一化到合适的范围,并且对于确定的分布来说,分位点也是确定的,因此只需存储分位点的索引即可。

简单理解:NF4总共4bits,正态分布分为16块,将数据映射到这16块中,记录数据索引即为量化后的值。

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

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

相关文章

实践笔记-VSCode与IDE同步问题解决指南;程序总是进入中断服务程序。

一、VSCode 修改文件后,IDE 未同步如果你在 VSCode 中异步修改了项目文件内容,但 S32DS 或 Keil(等集成开发环境)中的项目没有同步更新,有两个解决方法:检查文件是否已保存:确保 VSCode 中修改的…

C#WPF实战出真汁04--登录功能实现

1、登录功能实现要点对于登录系统,应该注意几个要点:用户认证流程设计,密码存储与验证,会话管理,防暴力破解措施,错误处理与提示2、登录功能的视图模型首先在xaml文件中必须指定该页面使用的视图模型&#…

鸿蒙入门简化版

第一步: 首先下载DEVStudio https://developer.huawei.com/consumer/cn/deveco-studio/ 第二步: 了解基本的ArkTs语言 https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/introduction-to-arkts 第三步 : 教学视频有两个途径&a…

day25|学习前端js

函数声明,被提升(hoisting)。函数表达式必须先定义才能用。对象解构,按属性名数组解构按顺序点运算符. 对象.属性名哪些可迭代(可以被for..of循环的东西):array,string,m…

quic协议与应用开发

quic为什么出现?quic主要是为了解决TCP协议的局限性而提出的,具体来说是要解决如下问题:1. 加密连接建立时间长TCP协议是传输层协议,而TLS是会话层协议,在Linux等主流操作系统中TCP在内核实现而TLS一般在用户态实现&am…

【浅学】tflite-micro + ESP32S3 + VScode + ESP-IDF 基于例程快速实现自己的图像分类模型训练部署全流程

如果你用Pytorch训练的模型那么可以参考我的步骤,使用的是Tensorflow的话参考官方文档即可,但流程都是一样的,每一步我都会提到部分操作细节及注意事项 官方教程 要详细学习的话tflite-micro里的微控制器章节下都详细看(页面左侧…

【HarmonyOS】应用设置全屏和安全区域详解

【HarmonyOS】应用设置全屏和安全区域详解 一、前言 IDE创建的鸿蒙应用,默认采取组件安全区布局方案。顶部会预留状态栏区域,底部会预留导航条区域。这就是所谓的安全区域。 如果不处理,界面效果很割裂。所以业内UI交互设计,都会设…

openfeign 只有接口如何创建bean的

OpenFeign 能够为纯接口创建 Spring Bean,其核心机制是通过动态代理和 Spring 的 FactoryBean 机制实现的。以下是详细的工作原理:1. EnableFeignClients 注解的启动在 Spring Boot 主类上添加 EnableFeignClients 注解:SpringBootApplicatio…

【展厅多媒体】互动地砖屏怎么提升展厅互动感的?

在数字化展厅设计中,互动地砖屏 正成为提升观众参与度的重要工具。这种融合视觉科技与交互体验的装置,通过动态影像与即时反馈,让参观者从被动观看转变为主动探索,从而大幅增强展厅的互动感。 Led地面互动屏的优势在于其强大的视…

AI赋能电力巡检:变压器漏油智能检测系统全解析

🔥 AI赋能电力巡检:变压器漏油智能检测系统全解析 📖 前言 在电力系统的日常运维中,变压器作为核心设备,其安全运行直接关系到整个电网的稳定性。传统的人工巡检方式不仅效率低下,还存在安全隐患和漏检风险…

GitHub上值得Star的计算机视觉项目

GitHub上值得Star的计算机视觉项目 前言 一、OpenCV:计算机视觉领域的瑞士军刀 1.1 项目简介 1.2 核心功能与技术特点 1.3 代码示例 二、YOLO 系列:实时目标检测的领导者 2.1 项目简介 2.2 核心功能与技术特点 2.3 代码示例 三、Detectron2:Facebook AI Research 的目标检测…

【深度学习】pytorch深度学习框架的环境配置

文章目录1. 配置cuda环境2. 配置conda环境3. 配置pytorch gpu环境1. 配置cuda环境 在命令行输入以下命令可以查看当前显卡驱动版本和最高支持的cuda版本 nvidia-smi根据cuda版本去官网下载并安装cuda 下载链接:https://developer.nvidia.com/cuda-toolkit-archive…

数据处理与统计分析 —— 房源数据集分析案例

数据集网盘下载: 链接:https://pan.quark.cn/s/0e577858dba3?pwdFJnb 提取码:FJnb代码仅供参考具体可打开ipynb文件进行学习和练习:链接:https://pan.quark.cn/s/8efbe3061fad?pwdT47B 提取码:T47Bimport…

蓝牙如何测试?

车载蓝牙测试需覆盖 连接稳定性、功能完整性、兼容性、交互体验等核心维度,结合车载场景的特殊性(如行驶中信号干扰、多设备交互、安全需求),具体测试点如下: 一、基础配对与连接测试 1. 首次配对 触发配对:车机端 “蓝牙设置” 中搜索设备、手机端搜索车机(车机名称是…

算法02 二进制与位运算

二进制作为计算机底层数据的核心表示方式,其独特的位结构和运算规则在算法设计中有着广泛且关键的应用。以下从基础操作、算法技巧、数据结构、经典问题等多个维度,全面梳理二进制在算法中的应用: 一、基础位运算:算法的“原子操作…

PAT 1071 Speech Patterns

题目大意是说给出一个文本,找出里面出现最多的单词,如果有多个单词出现次数一样多,则输出字典序最小的。 需要注意的是: 给出的文本字符串不仅有数字还有字母,还有一些特殊的字符,还有空格。 而单词是只包含…

CSS中的 :root 伪类

在CSS中&#xff0c;伪类是一种用于选择元素特定状态的选择器。:root 伪类专门用于选择文档的根元素&#xff08;在HTML中通常是<html>元素&#xff09;&#xff0c;它是CSS变量&#xff08;Custom Properties&#xff09;的理想载体&#xff0c;常用于定义全局样式变量&…

能源行业数字化转型:边缘计算网关在油田场景的深度应用

能源行业数字化转型&#xff1a;边缘计算网关在油田场景的深度应用能源行业是国民经济的支柱产业&#xff0c;而油田作为能源生产的重要基地&#xff0c;其数字化转型对于提高生产效率、降低能耗、减少碳排放具有重要意义。然而&#xff0c;油田往往地处偏远&#xff0c;油井分…

CAG缓存增强生成与RAG检索增强生成对比

深度定制 LLM 知识,除了 RAC &#xff0c;现在又有新技术假设有一份200页的产品手册,你想让 LLM 准确回答里面的相关问题,要实现这个目标,除了常用的检索增强生成技术 rep ,现在有了新思路,缓存增强生成 CAG &#xff0c;它是什么,何时使用.RAG检索增强是常规套路,CAG缓存增强是…

基于vue、node.js、express的网络教学系统设计与实现/基于vue、node.js、express的在线学习系统设计与实现

基于vue、node.js、express的网络教学系统设计与实现/基于vue、node.js、express的在线学习系统设计与实现