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

Post-Training Quantization, PTQ

Post-Training Quantization(PTQ)模型训练完成后,对其参数(权重 & 激活值)进行量化 的方法,目的是 减少存储占用 & 提高推理速度,同时尽可能保持模型精度

相比于 量化感知训练(Quantization-Aware Training, QAT),PTQ 不需要重新训练模型,而是 直接对训练好的模型进行量化转换,适用于 推理优化

为什么要用 PTQ?

现代深度学习模型(如 Transformer、CNN)通常采用 FP32(32-bit 浮点数) 存储权重和计算数据,这会带来以下问题:

  1. 存储占用大 💾 → 如 LLaMA 7B(FP32 模型)占用约 28GB 显存,难以在消费级 GPU 上运行。
  2. 计算速度慢 🐢 → 浮点计算(FP32)较慢,使用整数运算(INT8、INT4)可以加速推理。
  3. 硬件受限 ⚡ → 移动设备(手机、树莓派)或嵌入式系统无法运行 FP32 模型。

✨ PTQ 通过将 FP32 转换为 INT8、INT4 等低精度格式,能有效 减少模型大小 & 提高推理速度,适用于 部署阶段

PTQ 量化流程

PTQ 主要包括以下步骤:

1️⃣ 训练完成(Pretrained Model)

  • 先用 FP32 训练出模型,得到高精度模型

2️⃣ 统计激活分布(Calibration)

  • 选择 一部分校准数据(Calibration Data)来分析 激活值的分布情况
  • 例如,计算 ReLU、GELU 等激活函数输出的 最大值 & 最小值

3️⃣ 量化权重(Weight Quantization)

  • 线性量化(Linear Quantization)
    • 计算 缩放因子(scale)零点(zero-point)
    • 量化公式:

4️⃣ 量化激活值(Activation Quantization)

  • 使用 动态或静态量化 方法,将 FP32 激活值转换为 INT8 或更低精度。

5️⃣ 推理(Inference with Quantized Model)

  • 用量化后的权重 & 激活值 替换原 FP32 模型,在 CPU/GPU/TPU 上进行高效推理

PTQ 量化类型


http://www.kler.cn/a/592173.html

相关文章:

  • nginx性能优化有哪些方式?
  • Bash 脚本基础
  • numpy学习笔记15:模拟100次随机游走,观察平均行为
  • C++ 语法之函数和函数指针
  • 合约编译部署基本流程
  • Spring(8)——MyBatis入门(2)
  • pycharm运行OpenCV项目踩坑记录
  • 3D开发工具HOOPS SDK:赋能CAM软件开发的利器
  • 以太网安全管理实验——ARP欺骗
  • Deepseek本地部署及本地知识库搭建(保姆级截图)
  • VIVO手机如何实现证件照换底色?证件照换底色技巧分享
  • 【RabbitMQ】RabbitMQ的基本架构是什么?包括哪些核心组件?
  • NIC数据包的接收与发送
  • 【STL】string类用法介绍及部分接口的模拟实现
  • pnpm创建vite
  • 蓝桥杯第13届真题2
  • C++项目:高并发内存池_上
  • 【云原生之kubernetes实战】在k8s环境中高效部署minio对象存储(详细教程)
  • pytorch 笔记:张量索引的维度扩展规则
  • python二级每日十题