14 大模型微调-KitTrain

1 介绍

如何降低占用的显存:

  1. 梯度累计:在一个完整的模型更新周期(epoch)中,将多个小批量(mini-batches)的数据的梯度进行累加,然后在一个较大的批量(累积步数)之后进行一次模型参数更新。
  2. 梯度检查点;
  3. 优化器;
  4. 冻结模型参数;
  5. 参数高校微调;

但是模型本身的参数并无改变!

     之前提到的大模型微调技术都是冻结原模型的参数,然后添加额外的参数进行训练微调。下面我们针对大模型参数进行修正:比如4个字节的单精度调整为2个字节的;K-bit 训练是一种优化技术,主要用于减少模型训练过程中的内存占用和计算成本。这种方法通常涉及到使用低精度(如8位或更低)来存储和计算模型的权重,从而降低内存需求和加速训练过程。在深度学习领域,常见的低精度训练技术包括8位量化训练(8-bit training)和混合精度训练(Mixed Precision Training)。

1.1 K-bit 训练的主要形式

  1. 8位量化训练(8-bit Training)

    • 在8位量化训练中,模型的权重被量化为8位整数(int8),从而大幅减少内存占用。
    • 为了保持训练的准确性,通常会在前向传播时将量化后的权重反量化回高精度,然后在反向传播时使用高精度梯度进行更新。
  2. 混合精度训练(Mixed Precision Training)

    • 混合精度训练是一种使用不同精度表示模型的不同部分的技术。
    • 通常情况下,模型的权重使用16位浮点数(FP16)表示,而梯度累积和优化器状态使用32位浮点数(FP32)表示。
    • 这种技术已经在许多现代深度学习框架中得到广泛应用,如NVIDIA的 Apex 库。

1.2 K-bit 训练的优势

  • 减少内存占用:使用低精度表示可以显著减少模型的内存占用。
  • 加速训练:低精度计算通常比高精度计算更快,尤其是在支持硬件加速(如GPU)的情况下。
  • 节省计算资源:在分布式训练中,减少通信带宽需求,提高整体训练效率。

2 参数&显存

单精度(4个字节)-> 半精度(2字节)

b16取值范围: 

2**(-24) = 5.960464477539063e-08, 低于这个范围的小数,会取零!

FP16的格式

  • 符号位(Sign bit):1位
  • 指数位(Exponent bits):5位
  • 尾数位(Fraction bits):10位
编码规则
  • 指数偏移量(Exponent bias):15
  • 指数范围:2**5=32 个不同的值,即从 0 到 31,实际有效的指数范围是从(2**(5-1) - 1) −14到 15。

  • 尾数(Mantissa):10位尾数位可以表示 2**10=1024 个不同的值。

取值范围

正常数值

正常数值指的是既不是特殊值也不是无穷大或NaN的情况。对于FP16,正常数值的取值范围如下:

 2**(-10) * 2**(-14) 

  • 最小非零负数:: -65504。

  • 最大负数:与最大正数的绝对值相同,但符号相反: -5.960464477539063×10−8。

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

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

相关文章

测试框架到底是什么,如何定义?

测试框架的关键组件是什么? 测试执行引擎:协调测试的运行、管理序列和报告结果。 测试脚本存储库:存储将要执行的实际测试用例或脚本。 测试数据:测试执行所需的输入数据,可以是静态的、动态的或动态生成的。 存根…

开店到经营,分贝通帮助连锁经营企业这样省钱

如果说大企业的经营核心是做好主营业务的大生意,那么对于连锁经营企业而言,线下门店的一个个小生意,其实也隐藏着“大学问”。费用支出方面,如何从细节处节流,让资金流呈现更良性循环,是连锁经营行业的重要课题。 1、开店前:选址BD全国跑,筐筐发票财务恼 2、日常经营:费用类目…

PMP–冲刺–十大领域易考点三大项目流程敏捷中的角色职责与3个工件高频考点考试技巧

文章目录 十大知识领域易考点--题干关键词一、整合管理二、范围管理三、进度管理四、成本管理五、质量管理六、资源管理七、沟通管理八、风险管理九、采购管理十、干系人管理 考试中的三大项目流程一 、变更流程二 、风险流程三 、收尾流程 敏捷中的角色职责与3个工件--题干关键…

es映射配置(_mapping)

文章目录 1、创建映射字段2、查看映射关系 1、创建映射字段 PUT /索引库名/_mapping {"properties": {"字段名": {"type": "类型","index": true,"store": true,"analyzer": &q…

LVGL | VisualStuio PC模拟器

LVGL | VisualStuio PC模拟器 时间:2024年8月30日17:46:41 文章目录 LVGL | VisualStuio PC模拟器1.参考Visual Studio 版本LVGL版本 2.工程代码3.演示 1.参考 1.16.LVGL(UI设计)_军事研究员的博客-CSDN博客 2.嵌入式UI开发-lvglwsl2vscode系…

HTML5好看的花店商城源码2

文章目录 1.设计来源1.1 主界面1.2 界面效果11.3 界面效果21.4 界面效果31.5 界面效果41.6 界面效果51.7 界面效果61.8 界面效果71.9 界面效果8 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板,程序开发,在线开发,在线沟通 作者&#…

嵌入式OTG硬件电路分析

大家好,今天主要给大家分享一下,如何使用OTG硬件检测电路,和之前的接口有什么区别。 1. OTG接口与转换器 OTG是"On The Go"的英文缩写,字面上可以理解为“安上即可用”。USB传输是主从结构,一切USB传输都有Host发起。比如在开发板上可以插入U盘,这时开发板作为…

【数据分析预备】Numpy入门

Jupyter Notebook 是一个基于网页的交互式计算环境编写代码、运行代码、查看输出、可视化数据、分享报告文档按单元格运行代码可展示的信息格式更丰富(支持Markdown和Latex)交互式运行环境 安装 cmd窗口 pip install notebook启动 jupyter notebook退出 CtrlC …

不平衡分类阈值移动的简单介绍

不平衡分类阈值移动的简单介绍 分类预测模型通常涉及预测类别标签。 尽管如此,许多机器学习算法能够预测类别成员的概率或得分,并且必须对其进行解释,然后才能将其映射到明确的类别标签。这是通过使用阈值(例如 0.5)…

甜羊浏览器:抖店多店铺管理与自动回复的最佳解决方案

随着短视频平台的蓬勃发展,抖音旗下的电商平台——抖店,已成为许多商家的重要销售渠道。然而,对于拥有多个抖店店铺的商家而言,如何高效管理这些店铺以及处理大量的客户咨询,成为了亟待解决的问题。此时,甜…

2D 凸包-2D Convex Hulls

2D 凸包-2D Convex Hulls 本章描述了CGAL中用于生成二维凸包的函数,以及用于检查点集是否为强凸的函数。还有许多用于计算特殊极值点和包点子序列的函数,如一组点的下包和上包。 CGAL提供了几种经典算法的实现,用于计算二维点集的逆时针极值…

论文《Generalized Focal Loss》阅读笔记

论文作者对自己文章的中文介绍:这里,所以本人结合论文进行一些简单记录。 存在的问题 之前的工作在训练阶段和推理阶段对最终得分的计算有些问题,即训练分开计算分类得分和定位得分,但是推理时又相乘得到最终的得分进行NMS&#…

读研刷题复习day01

27. 移除元素https://leetcode.cn/problems/remove-element/ 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。 假设 nums 中不等于 val 的元素数量为 k&#xff0c…

MySQL集群技术4——MySQL路由

mysql-route MySQL 路由(Routing)通常指的是在 MySQL 架构中如何处理客户端请求和数据流向的问题。在 MySQL 中,路由可以涉及多种不同的场景和技术,包括但不限于反向代理、负载均衡、读写分离等。下面我将详细介绍这些场景和技术…

解耦利器 - Java中的SPI机制

为什么需要SPI机制 SPI和API的区别是什么 SPI是一种跟API相对应的反向设计思想:API由实现方确定标准规范和功能,调用方无权做任何干预; 而SPI是由调用方确定标准规范,也就是接口,然后调用方依赖此接口,第…

99.SAP MII功能详解(13)Workbench-Transaction Logic(While Loop)

目录 1.Logic->While Loop 2.演示 配置对象 配置连接 While Loop使用示例 1.Logic->While Loop 此操作用于执行一组指定的操作,直到满足条件或达到最大迭代次数。每次迭代都会执行While循环操作下方序列中的所有操作。 2.演示 While Loop操作 配置对象 …

zabbix对接Grafana

1.grafana安装 Download Grafana | Grafana Labs sudo yum install -y https://dl.grafana.com/oss/release/grafana-11.1.4-1.x86_64.rpm 2.zabbix插件安装 Grafana 默认并没有 zabbix 数据源的支持,只有安装了zabbix插件,才可以在grafana中添加zabbi…

立式报工台助力MES系统打造智能硬件解决方案

信息化与自动化的深度结合,使得企业在生产效率、质量控制以及资源管理等方面得以大幅提升。制造执行系统MES作为连接企业管理层与生产现场的重要桥梁,正在愈发得到重视。为了进一步强化MES系统的功能与应用,立式报工台作为一种新兴的智能硬件…

微信小程序安卓14蓝牙连接需要打开微信附近设备权限提醒

1.wx.onBluetoothDeviceFound去搜索附近的设备如果搜索不到一个设备则默认附近设备权限没打开(ps微信开放社区里面的 wx.getAppAuthorizeSetting接口里面的bluetoothAuthorized一样会返回“authorized”判断不了只要允许授权蓝牙,附近设备权限没授权依然…

p2p、分布式,区块链笔记:基于IPFS实现的数据库orbitdb笔记

orbitdb orbitdb :Peer-to-Peer Databases for the Decentralized Web 特性说明特点无服务器、分布式、p2p编程语言JavaScript对其他语言的支持A python client for the Orbitdb HTTP API,go-orbit-db, 让我们了解一下谁在使用 js-ipfs&…