大语言模型LLM权重4bit向量量化(Vector Quantization)/查找表量化基本原理

参考

https://apple.github.io/coremltools/docs-guides/source/opt-palettization-overview.html

https://apple.github.io/coremltools/docs-guides/source/opt-palettization-algos.html

Apple Intelligence Foundation Language Models

苹果向量量化:

DKM: Differentiable K-Means Clustering Layer for Neural Network Compression

eDKM: An Efficient and Accurate Train-time Weight Clustering for Large Language Models

高通向量量化: 

GPTVQ: The Blessing of Dimensionality for LLM Quantization

向量量化基础

针对大语言模型权重的4bit量化,除了常规的广泛使用的group-wise均匀量化,如GPTQ, AWQ等等,苹果提出了一种称为Palettization的lookup table (LUT)查找表量化技术,高通也提出了新的一种向量量化技术,其实这两种技术原理基本上大体是相同的。

首先,均匀量化就不多说了,基于一个仿射变换来映射量化后的整数值和非量化的浮点数值,一般采用r=(q-z)*s,可以参考深度学习模型量化基础_深度学习 量化-CSDN博客

常规的查找表量化则是一种非均匀量化,比如同样的4bit量化为0-15的整数,查找表LUT可以建立这0-15的每个整数到他们分别对应的一个浮点数的对应关系。这个对应关系可以是任意采样方式的,因此为非均匀量化。

Vector Quantization (VQ)向量量化,其实第一性原理也挺简单的:相对于上面所描述的标量量化把一个标量的浮点映射到其对应的一个整数。而向量量化则是要把一个浮点的d维向量映射为一个n bit的标量整数。具体实现通常采用聚类算法,在d维空间中进行聚类为k=2^n个类别,每个聚类中心采用一个整数表示,从而建立一个整数到聚类中心d维向量的查找表。量化阶段根据输入的d维向量到每个聚类中心的距离分配其对应的量化值,而反量化则根据每个量化后的整数,根据查找表恢复聚类中心的d维向量,这显然是一个非均匀有损量化。具体细节如何获得每个聚类中心则是另一个核心技术点。

Product quantization:把一个大D维的向量均匀split为多个更短的d维向量,每个d维向量采用VQ量化。Vector Quantization和Product quantization本身是从其他领域引入到大语言模型量化,麻烦读者查询相关的资料进行进一步了解。

高通GPTVQ的Vector Quantization量化LLM权重

假设每2个元素一起作为一个向量,每个元素4bit,那么2个元素一起量化就有4x2=8bit的budget,那么LUT查找表大小将为2^8=256大小。而维度更高,LUT粒度更小。但是LUT大小将剧烈增长:

we use bits per dimension (b) to indicate the number of index bits stored for each individual weight. This means that, for VQ with dimension d, the total number of index bits is d × b, and the number of centroids in a codebook is k = 2^(d×b).

可以看到高通的这个方法基本上只能用于2维向量量化,更高维度意味着急剧增长的查找表大小。

苹果的方法

Palettization, also referred to as weight clustering, compresses a model by clustering the model’s float weights, and creating a lookup table (LUT) of centroids, and then storing the original weight values with indices pointing to the entries in the LUT.

Weights with similar values are grouped together and represented using the value of the cluster centroid they belong to, as shown in the following figure. The original weight matrix is converted to an index table in which each element points to the corresponding cluster center.

N={1,2,3,4,6,8} are supported, where N is the number of bits used for palettization.

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

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

相关文章

c/c++ 指针数组

顾名思义就是元素为指针的数组,如定义一个 char *类型的指针数组: char *strName[] {"123","456","789","abc","def" }; 如果是这样初始化的指针数组,c编译是会抛出警告信息的&#xff…

vue2+ueditor集成秀米编辑器

一、百度富文本编辑器 1.首先下载 百度富文本编辑器 下载地址:GitHub - fex-team/ueditor: rich text 富文本编辑器 2.把下载好的文件整理好 放在图片目录下 3. 安装插件vue-ueditor-wrap npm install vue-ueditor-wrap 4.在你所需要展示的页面 引入vue-uedito…

设计模式-单例模式工厂模式

3.1 单例模式 1.概念 用类来实现单例。由于某种需要,要保证一个类在程序的生命周期中只有一个实例,并且提供该实例的全局访问方法。 2.结构三要素 1)私有的静态对象属性private static instance,它的类型就是当前类的对象,静态…

EMC技术

目录 EMC 天线效应 公式 措施 EMC测试 展频技术 如何展频 OTA测试 EMC 三大要素:干扰源、传输介质、敏感设备。 EMI:Electromagnetic Interference,电磁干扰。 EMS:Electro Magnetic Susceptibility,电磁抗扰…

Centos7安装RabbitMQ

文章目录 Centos7安装RabbitMQ第一步、安装任何软件包之前,建议使用以下命令更新软件包和存储库第二步、Erlang在默认的YUM存储库中不可用,因此您将需要安装EPEL存储库第三步、RabbitMQ是基于Erlang(面向高并发的语言)语言开发&am…

语音测试(一)ffmpeg视频转音频

视频转音频 下载ffmpeg工具进入bin目录cmd进入控制台输入命令 ffmpeg.exe -i ./视频.mp4 ./音频.wav命令说明 ffmpeg -i input.mp4 output.mkv FFmpeg 可能会尝试自动选择合适的编码器对视频和音频进行重新编码,以便适应 MKV 格式的要求ffmpeg -i input.mp4 -c c…

Python | Leetcode Python题解之第390题消除游戏

题目&#xff1a; 题解&#xff1a; class Solution:def lastRemaining(self, n: int) -> int:a1 1k, cnt, step 0, n, 1while cnt > 1:if k % 2 0: # 正向a1 stepelse: # 反向if cnt % 2:a1 stepk 1cnt >> 1step << 1return a1

心觉:如何用一颗心改变世界和自己

关于如何开发自己的潜意识开发的底层逻辑和注意事项 我这里就不赘述了&#xff0c;可以看我前面的文章 今天主要讲一下&#xff0c;如何让我们祈祷的作用发挥到极致 这里提到了祈祷&#xff0c;其实就是正念 把自己的梦想&#xff0c;目标&#xff0c;愿望通过积极的语言 …

数据预处理与协同过滤推荐算法——从数据清洗到个性化电影推荐

推荐系统在现代应用中占据了重要地位&#xff0c;尤其在电影、音乐等个性化内容推荐中广泛使用。本文将介绍如何使用数据预处理、特征工程以及多种推荐算法&#xff08;包括协同过滤、基于内容的推荐、混合推荐等&#xff09;来实现电影推荐系统。通过Pandas、Scikit-learn、Te…

探索PDF的奥秘:pdfrw库的神奇之旅

文章目录 探索PDF的奥秘&#xff1a;pdfrw库的神奇之旅背景&#xff1a;为何选择pdfrw&#xff1f;pdfrw是什么&#xff1f;如何安装pdfrw&#xff1f;五个简单的库函数使用方法场景应用&#xff1a;pdfrw在实际工作中的应用常见问题与解决方案总结 探索PDF的奥秘&#xff1a;p…

Linux平台屏幕|摄像头采集并实现RTMP推送两种技术方案探究

技术背景 随着国产化操作系统的推进&#xff0c;市场对国产化操作系统下的生态构建&#xff0c;需求越来越迫切&#xff0c;特别是音视频这块&#xff0c;今天我们讨论的是如何在linux平台实现屏幕|摄像头采集&#xff0c;并推送至RTMP服务。 我们知道&#xff0c;Linux平台&…

C语言程序设计 笔记代码梳理 重制版

前言 第1章 C语言的流程 1.C程序经历的六个阶段 编辑(Edit)预处理(Preprocess)编译(Compile)汇编(Assemble)链接(Link)执行(Execute) 2.C语言编写代码到运行 都是先编译&#xff0c;后链接&#xff0c;最后运行。&#xff08;.c ---> .obj --->.exe&#xff09;这个过…

RockyLinux8.9上yum安装redis6

我百思不得其解的一个问题 我想在RockyLinux8.9上安装redis6&#xff0c;通过yum list | grep redis看到的redis版本只有redis5 appstream-official仓库是我新加的&#xff0c;这里先不管 于是我通过浏览器访问appstream仓库https://dl.rockylinux.org/vault/rocky/8.9/AppSt…

【个人笔记】VCS工具与命令

Title&#xff1a;VCS工具学习 一 介绍 是什么&#xff1f; VCS (Verilog Compiler Simulator) 是synopsys的verilog 仿真软件&#xff0c;竞品有Mentor公司的Modelsim、Cadence公司的NC-Verilog、Verilog—XL. VCS能够 分析、编译 HDL的design code&#xff0c;同时内置了 仿…

基于yolov8的西红柿检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的西红柿检测系统是一种利用深度学习技术的创新应用&#xff0c;旨在通过自动化和智能化手段提高西红柿成熟度检测的准确性和效率。该系统采用YOLOv8算法&#xff0c;该算法是深度学习领域中的先进目标检测模型&#xff0c;具备实时检测和多目标识别的…

HCIA--实验五:静态路由综合实验

静态路由综合实验 一、实验内容&#xff1a; 1.需求/目的&#xff1a; 在ensp模拟器中使用四个路由器&#xff0c;并且在路由器上创建loopback接口&#xff0c;相当于连接了一台主机&#xff0c;通过配置静态路由的方式实现全网通。 二、实验过程 1.道具&#xff1a; 4个…

ubuntu16.04下qt5.7.1添加对openssl的支持

文章目录 前言一、编译安装openssl二、编译qt5.7.1三、配置qtcreator开发环境四、demo 前言 最近工作中要求客户端和服务端通过ssl加密通信,其中客户端是qt编程,服务端是linux编程.我的开发环境是ubuntu16.04;运行环境是debian9.13,是基于gnu的linux操作系统,64位arm架构. 一…

Android 15 正式发布到 AOSP ,来了解下新特性和适配需求

其实在年初的时候就整理过《2024 &#xff0c;Android 15 预览版来了》 和《提前窥探 Android 15 的新功能与适配》的相关内容&#xff0c;而随着时间进度推进&#xff0c;近日谷歌也正式发布了 Android 15 的正式版&#xff0c;虽然没什么「大亮点」&#xff0c;但是作为开发者…

STM32

&#xff08;以下操作环境为Keil5和proteus8.9&#xff09; 八种输入输出模式及他们的工作模式 分析如下 总线&#xff1a;总线提供了数据在不同组件&#xff08;如处理器、内存、输入输出设备等&#xff09;之间传输的路径&#xff0c;使数据能够快速、准确地在系统内流动。 …

【卡码网C++基础课 18.开房门】

目录 题目描述与分析一、map的基本介绍二、map的使用三、代码编写四、范围for循环 题目描述与分析 题目描述&#xff1a; 假设你手里有一串钥匙&#xff0c;这串钥匙上每把钥匙都有一个编号&#xff0c;对应着一个房门的编号。现给你一个房门编号&#xff0c;你需要判断是否能…