当前位置: 首页 > article >正文

大模型量化算法之LLM.int8()

LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale
发表于 NIPS 2022

在这里插入图片描述

核心思想:

将大多数的 regular Value 用正常的 INT8 量化(vector-wise)
而针对少数的 outliers,绝对值非常大,一般以 channel 的形式出现,分离出来、保留 fp16 精度

具体做法:

  1. Vector-wise quantization
    X f 16 X_{f16} Xf16 的每一行赋予一个不同的 缩放常数 c x f 16 c_{xf16} cxf16,为 W f 16 W_{f16} Wf16 的 每一列 赋予一个 缩放常数 c w c_w cw
    C f 16 ≈ 1 c x f 16 ⊗ c w f 16 C i 32 = S ⋅ C i 32 = S ⋅ A i 8 B i 8 = S ⋅ Q ( A f 16 ) Q ( B f 16 ) C_{f_{16}}\approx \frac{1}{c_{xf16} \otimes c_{wf16} }C_{i32} = S\cdot C_{i32} = S\cdot A_{i8}B_{i8}=S\cdot Q(A_{f16})Q(B_{f16}) Cf16cxf16cwf161Ci32=SCi32=SAi8Bi8=SQ(Af16)Q(Bf16)
  2. Outliers
    通过阈值确定, 文中取阈值 α = 6.0 \alpha=6.0 α=6.0

outliers 出现在特定的 特征、隐藏 维度 h 中

outliers occur systematically for almost all sequence dimensions s but are limited to specific feature/hidden dimensions h

有 outliers 出现的 channel 的数量 不超过 7

实现结果

在这里插入图片描述
C4数据集上的 困惑度 表现

在这里插入图片描述
模型压缩率的展现(相同的实验平台下可以跑更大规模的LLM)


http://www.kler.cn/news/353204.html

相关文章:

  • Java函数式DoubleBinaryOperator接口介绍、应用场景和示例代码
  • 3.STM32之蜂鸣器
  • flex常用固定搭配
  • 【Origin科技绘图】最新Origin2024中文版软件安装教程
  • 推荐一个开源非线性视频编辑器:Kdenlive
  • 10. 异常处理器
  • C语言——链表
  • (31)oracle数据泵导出
  • 使用Python语言结合OpenCV库来处理视频流和条形码/二维码的识别
  • docker逃逸方法汇总与简要分析
  • 【Sceneform-EQR】使用安卓设备的传感器实现3Dof的VR效果
  • atop命令详解
  • 服务器和中转机在网络安全方面
  • 打开网页 - 隐私设置限制浏览私密连接
  • Leetcode—1115. 交替打印 FooBar【中等】(多线程)
  • 代码随想录打卡Day 长度最小的子数组209 螺旋矩阵2 59
  • JavaWeb环境下Spring Boot在线考试系统的优化策略
  • Prometheus运维监控平台之服务发现配置、标签及监控规则编写(二)
  • 【Redis】CentOS 7 环境搭建 redis 最新版 7.4 分布式集群完整版详解
  • YOLO11改进 | 注意力机制 | 添加GAM注意力机制 【完整代码】
  • Frequency-Adaptive Dilated Convolution for Semantic Segmentation
  • 大数据面试题整理——Yarn
  • 【K8S系列】Kubernetes pod节点Pending或CrashLoopBackOff 问题及解决方案详解【已解决】
  • 浏览器安装Vue开发者工具
  • 面向对象编程关系:组合Composition和聚合Aggregation
  • 吴恩达深度学习笔记(5)