QLora 里的4-bit NormalFloat Quantization中的分位数量化

目录

正态分布的分位数函数详解

1. 正态分布简介

2. 分位数函数定义

3. 正态分布的分位数函数计算

4-bit NormalFloat Quantization

4-bit NormalFloat Quantization详解

1. 4-bit NormalFloat Quantization的定义和应用

2. 4-bit NormalFloat Quantization的工作原理

3. 4-bit NormalFloat Quantization的优势

4. 4-bit NormalFloat Quantization在QLoRA中的应用


正态分布的分位数函数详解

1. 正态分布简介

正态分布,也被称为高斯分布,是连续概率的一种。它的概率密度函数呈钟形,可以完全由两个参数(均值和标准差)确定。在正态分布中,均值、中位数和众数是相等的。

2. 分位数函数定义

分位数函数,又称为逆累积分布函数,是累积分布函数的逆函数。对于正态分布,其分位数函数可以给出对应于预先指定的累积概率的观测值。例如,如果我们知道某个变量服从标准正态分布,我们可以使用分位数函数来找出对应于累积概率0.975的观测值。

3. 正态分布的分位数函数计算

正态分布的分位数函数无法用初等函数表示,但可以通过数值方法计算。在实际应用中,通常会使用查表或者软件(如R、Python等)来计算正态分布的分位数。

在Python中,可以使用scipy库的norm.ppf函数来计算正态分布的分位数。例如,计算标准正态分布(均值为0,标准差为1)累积概率为0.975的分位数,可以使用以下代码:

from scipy.stats import norm
norm.ppf(0.975, loc=0, scale=1)

这将返回约为1.96的结果,这意味着在标准正态分布中,约有97.5%的值小于或等于1.96。

4-bit NormalFloat Quantization

分位数量化的工作原理是将数据分布的分位数用较少的比特数来表示,从而达到数据压缩的目的。具体来说,它首先通过经验累积分布函数来估计输入数据的分位数,然后将这些分位数进行量化,即将连续的分位数转化为离散的数值。

分位数量化的工作方式是通过估算输入张量的分位数来利用经验累积分布函数。然而,分位数量化的主要挑战在于估计分位数的步骤可能需要较大的计算资源。

在神经网络的环境中,预先训练的权重通常呈现出零中心的正态分布,其标准差为σ。通过调整σ,可以使分布刚好符合NF的范围。对于NF,作者设定了一个随意的范围[-1, 1]。因此,数据类型和神经网络权重的分位数都需要被标准化到这个范围。

对于范围在[-1, 1]内的零均值正态分布,计算了从信息理论角度看最优的数据类型。

这个过程包括:(1) 估计理论N(0, 1)分布的 2**k+1 个分位数,从而得到一个k位的分位数量化数据类型;

(2) 将这个NF的值标准化到[-1, 1]范围;

(3) 通过最大绝对值的重新标定,将输入权重张量标准化到[-1, 1]范围,然后进行量化。一旦模型权重的范围与NF的范围相匹配,就可以像通常那样进行量化。这个过程等同于重新调整权重张量的标准差,使其与k位数据类型的标准差相匹配。更详细地,下面这个公式展示了 2**k+1到分位数的映射关系:

公式中的Qx 是分位数函数的表示。

4-bit NormalFloat Quantization详解

1. 4-bit NormalFloat Quantization的定义和应用

4-bit NormalFloat Quantization是一种改进的量化方法,它是基于之前的8-bit量化方法中提到的Block-wise Quantization和Quantile Quantization^1^。该方法被应用在QLoRA中,一个模型加载和训练的方法,其中模型使用4-bit NormalFloat量化加载,并在训练时将数值反量化为bf16进行训练^1^。

2. 4-bit NormalFloat Quantization的工作原理

Block-wise Quantization通过将数值分批量化,每个批次使用独立的常数c,以解决outlier对量化过程的影响^1^。Quantile Quantization通过将数值分为均匀分布的16个区间来充分利用16个可用的量化值,以避免信息丢失^1^。QLoRA使用双重量化方法,对常数c进行额外的量化,以减少显存开销^1^。

3. 4-bit NormalFloat Quantization的优势

4-bit NormalFloat(NF4)量化数据类型是一种对于正态分布数据而言在信息论上最优的量化数据类型^2^。使用4-bit NormalFloat Quantization,可以有效地减少显存使用,尽管实际训练是在bf16水平上进行的^1^。

4. 4-bit NormalFloat Quantization在QLoRA中的应用

QLoRA使用4位NormalFloat(NF4)量化数据类型,以及分页优化器,用于管理内存波动^2^。使用QLoRA进行微调的Guanaco模型在Vicuna基准测试上达到了ChatGPT性能水平的99.3%^2^。

以上就是关于4-bit NormalFloat Quantization的详细介绍,希望对您有所帮助。

参考文献

  1. "QLoRA: 4bit量化+LoRA训练=瞬间起飞 - 知乎" link
  2. "QLoRA: Efficient Finetuning of Quantized LLMs论文解读" link

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024.5.6

Widget::Widget(QWidget *parent): QWidget(parent) {//窗口相关设置this->setFixedSize(540,720);//背景颜色this->setStyleSheet("background-color:white");//去掉头部this->setWindowFlag(Qt::FramelessWindowHint);//标签相关设置QLabel *lab1 new QL…

screen

sLinux:screen命令——命令行的窗口操作_screen命令关闭窗口-CSDN博客文章浏览阅读4.2k次。功能:管理命令行终端切换的软件,常用于远程连接Linux过程中,同时使用多个命令行窗口。在窗口运行中的程序,记住窗口名字前面的…

【学习AI-相关路程-工具使用-自我学习-cudavisco-开发工具尝试-基础样例 (2)】

【学习AI-相关路程-工具使用-自我学习-cuda&visco-开发工具尝试-基础样例 (2)】 1、前言2、环境说明3、总结说明4、工具安装0、验证cuda1、软件下载2、插件安装 5、软件设置与编程练习1、创建目录2、编译软件进入目录&创建两个文件3、编写配置文…

高精地图是怎么构建的?方案有哪些?高精度语义地图构建的一点思考

高精地图是怎么构建的?方案有哪些?高精度语义地图构建的一点思考 高精度(High-Definition, HD)语义地图是目前自动驾驶领域的一个重要研究方向,近年随着Transformer和BEV的大火,很多大佬团队都开展了HD语义地图构建相关的工作。2…

外贸企业邮箱是什么?做外贸企业邮箱哪个好?

外贸企业邮箱是什么?外贸企业在进行跨国沟通时必不可少的工具就是外贸企业邮箱,外贸企业邮箱需要具备的条件就是海外邮件抵达率高、安全稳定、多语言沟通。而我们又怎么选择一个适合的外贸企业邮箱呢?小编今天带您一起了解。 一、外贸企业邮…

小工具 - 用Astyle的DLL封装一个对目录进行代码格式化的工具

文章目录 小工具 - 用Astyle的DLL封装一个对目录进行代码格式化的工具概述笔记效果编译AStyle的DLL初次使用接口的小疑惑测试程序 - 头文件测试程序 - 实现文件测试程序 - RC备注END 小工具 - 用Astyle的DLL封装一个对目录进行代码格式化的工具 概述 上一个实验(vs2019 - ast…

AI 不仅会画画,还能造车 | 最新快讯

本周的北京,正在上演一场深刻的变革。 汽车产业,这个曾经以工业制造为核心的行业,正迅速地被数字化浪潮所改变,汽车、电商、互联网、人工智能等领域的界限变得模糊。在这样的背景下,车企们纷纷开始打破传统&#xff0c…

软考-系统集成项目管理中级--常见计算题考点汇总

1、决策树和期望货币价值(决策树、表)---风险管理 很简单的题目,如下题目我们不再讲解。相信大家听了基础课都会做如果不会做,建议再听下基础课。 有点难度的题目,请大家先做,如果有疑问,可以听课(课程私信…

Django高级表单处理与验证实战

title: Django高级表单处理与验证实战 date: 2024/5/6 20:47:15 updated: 2024/5/6 20:47:15 categories: 后端开发 tags: Django表单验证逻辑模板渲染安全措施表单测试重定向管理最佳实践 引言: 在Web应用开发中,表单是用户与应用之间进行交互的重要…

Spring IoCDI(2)—IoC详解

目录 一、IoC详解 1、Bean的存储 (1)Controller(控制器存储) 获取bean对象的其他方式 Bean 命名约定 (2)Service(服务存储) (3)Repository&#xff08…

鸿蒙开发-ArkTS语言-容器

鸿蒙开发-UI-交互事件-键鼠事件 鸿蒙开发-UI-交互事件-焦点事件 鸿蒙开发-UI-交互事件-手势事件 鸿蒙开发-UI-web 鸿蒙开发-UI-web-页面 鸿蒙开发-ArkTS语言-基础类库 鸿蒙开发-ArkTS语言-并发 鸿蒙开发-ArkTS语言-并发-案例 文章目录 前言 一、容器类库概述 二、线性容器 1…

如何将视频转换成gif表情包?超简单的方法分享

把视频中的片段截取制作成gif动画表情包是现在网络中常见的制作图片的一种方法。Gif表情包能够调节聊天中的氛围,快速有趣的传递信息。也因为gif动图兼容性高、体积小便于分享所以在现在的网络中非常的收欢迎。接下来,小编就给大家分享一下怎么把视频转g…

Linux字符设备驱动(一) - 框架

字符设备是Linux三大设备之一(另外两种是块设备,网络设备),字符设备就是字节流形式通讯的I/O设备,绝大部分设备都是字符设备,常见的字符设备包括鼠标、键盘、显示器、串口等等,当我们执行ls -l /dev的时候,就能看到大量…

2024.05.06作业

自由发挥应用场景,实现登录界面。 要求:尽量每行代码都有注释。 #include "yuanshen.h"yuanshen::yuanshen(QWidget *parent): QWidget(parent) {//窗口相关设置this->resize(1600,910);this->setFixedSize(1600,910);//窗口标题this-…

管理能力学习笔记九:授权的常见误区和如何有效授权

授权的常见误区 误区一:随意授权 管理者在授权工作时,需要依据下属的能力、经验、意愿问最自己:这项工作适合授权给Ta做吗?如果没有,可以通过哪些方法进行培训呢? 误区二:缺乏信任 心理暗示…

腾讯崛起!2024年最赚钱的电商平台,竟然来自视频号

大家好,我是电商月月 说到卖货平台,这两年“抖音”绝对是所有人心里最赚钱的电商平台 抖音小店的商家利用抖店后台的“精选联盟”引流,不用自己直播,也能靠直播卖货赚的盆满钵满 于是好多平台都效仿抖店的直播卖货形式来获取更…

BGP的选路 :

前提条件 : 丢弃所有不可用的路由信息。 属性的名称 传播范围 默认值 评判标准 PV(优选值) 不传播 0(0-65535) 越大越优 LP(本地优先级) IBGP对等体 之间 100 越大越优 AS_PATH …

中间件研发之Springboot自定义starter

Spring Boot Starter是一种简化Spring Boot应用开发的机制,它可以通过引入一些预定义的依赖和配置,让我们快速地集成某些功能模块,而无需繁琐地编写代码和配置文件。Spring Boot官方提供了很多常用的Starter,例如spring-boot-star…

PMO全面指南:一文读懂PMO的功能、职责、类型、构建

多年来,PMO 的概念在多个行业和类型的组织中越来越受欢迎。一开始,只有大型跨国公司才熟悉它,但后来,许多中小型公司开始采用 PMO 来进行高效的项目管理并实现其战略目标。 根据Statista的数据,目前有80%的组织设有至…

企业网站 | 被攻击时该怎么办?

前言 每天,数以千计的网站被黑客入侵。发生这种情况时,被入侵网站可用于从网络钓鱼页面到SEO垃圾邮件或者其它内容。如果您拥有一个小型网站,很容易相信黑客不会对它感兴趣。不幸的是,通常情况并非如此。 黑客入侵网站的动机与所…
最新文章