After the success of performing deep learning inference by using an 8-bit precision representation of weights and data, researchers have been further motivated to squeeze the representation to below 8-bits, in particular, the 1bit (binarized representation) [17], [25] and 2-bit (ternarized representation) [18], [26]. Although, by using these representations, multiplication operations in a deep neural network are removed or converted to sign detection operations, the corresponding significant degree of degradation in accuracy overwhelms the computational advantage. Therefore, evaluating a deep learning inference model with 8 layers or more (e.g. AlexNet, GoogLeNet) on large datasets (e.g., ImageNet), with less than 8 bits to represent each of the weights and data values, without substantial accuracy degradation and/or retraining, is still an open question.

分析:深度学习低比特量化表示的挑战与现状

1. 背景与动机

  • 8位量化的成功:8位整数(INT8)量化已在深度学习推理中广泛应用,显著减少了模型存储和计算开销,同时保持较高的准确度。这一成功推动研究者探索更低比特(如1位、2位)的表示,以进一步优化资源利用和加速推理。
  • 低比特化的优势
    • 计算简化:二值化(1位)或三值化(2位)权重可将乘法操作简化为符号比较或累加,降低硬件复杂度(如FPGA/ASIC设计)。
    • 存储压缩:1位权重仅需存储符号(±1),相比32位浮点(FP32)压缩32倍,大幅减少内存带宽需求。

2. 低比特化的核心挑战

  • 准确度显著下降

    • 信息损失:极端量化(如1位)导致权重和激活值的分布被过度离散化,丢失细粒度特征表达能力。
    • 梯度消失:二值化网络的梯度在反向传播中可能因符号函数(Sign)的导数稀疏性(几乎处处为0)而难以更新参数。
    • 模型容量限制:低比特表示限制了参数的动态范围,复杂模型(如ResNet、Transformer)难以维持原有性能。
  • 实际应用瓶颈
    • 复杂模型与大数据集:在ImageNet等大型数据集上,8层以上的深度模型(如AlexNet、GoogLeNet)使用低于8位表示时,准确度下降显著。例如,二值化ResNet-18在ImageNet上的Top-1准确度可能从70%骤降至40%以下。
    • 重新训练成本:现有低比特方法通常需要复杂的重新训练或微调策略(如渐进量化、蒸馏),增加了训练时间和计算资源需求。

3. 现有解决方案的局限性

  • 二值化网络(BNNs)

    • 方法:权重和激活值被二值化为±1,用XNOR和PopCount操作替代浮点乘加。
    • 问题:仅适用于小规模任务(如CIFAR-10),在大规模任务中准确度难以接受(如[17]中ImageNet准确度下降约30%)。
  • 三值化与混合量化
    • 方法:允许权重取{−1, 0, +1}或分层量化(不同层使用不同比特数)。
    • 改进:相比二值化,准确度有所提升(如Ternary Weight Networks [18]在ResNet-18上达到55% Top-1),但仍低于8位量化。
  • 量化感知训练(QAT)
    • 方法:在训练中模拟量化噪声,增强模型对低比特的鲁棒性。
    • 局限:需要完整训练流程,且对超参数敏感(如量化步长、舍入模式)。

4. 未解决的核心问题

  • 精度-效率的帕累托前沿:如何在低于8位下实现接近全精度的准确度?当前技术仍存在显著差距。
  • 无需重训练的轻量化:如何直接对预训练模型进行低比特量化(Post-Training Quantization, PTQ)而不依赖大量微调?现有PTQ方法(如AdaRound [ICLR 2021])在4位以下表现有限。
  • 硬件-算法协同设计:低比特表示需要专用硬件支持(如二值化乘加单元),但现有AI加速器(如GPU/TPU)仍以8位及以上为主流。

5. 未来研究方向

  • 非均匀量化:根据参数分布动态调整量化区间(如对数量化、幂次量化),保留关键区域的精度。
  • 稀疏性与量化结合:利用权重稀疏性(如Pruning)减少有效参数量,补偿低比特化的信息损失。
  • 新型数值格式:探索Posit、AdaptivFloat等替代格式,在低比特下提供更高动态范围和精度。
  • 强化学习优化:使用RL自动搜索最优量化策略(每层比特数、舍入模式)。

6. 总结

低比特量化是深度学习部署的关键技术,但在低于8位时面临准确度急剧下降的挑战。当前研究需在算法创新(如自适应量化)、硬件支持(如低精度计算单元)和训练方法(如高效微调)上取得突破,才能实现“高精度-低资源”的平衡。未来,跨学科合作(算法、架构、编译)将是推动低比特实用化的核心路径。

In this paper, we explore the effects of using the posit number system (used to represent weights), on the accuracy and memory utilization of the DCNN during inference. To achieve this goal, the weights are converted from the original single floating number system to the new posit number system during memory read and write operations. On the other hand, the posit number system is converted back to a single floating point number system during computational operations as needed by standard computing architectures. The proposed DCNNs architecture is shown in Fig. 2. This architecture is similar to DCNNs architecture which is proposed by [22] except we use a posit number system which has advantages to represent weights of DCNNs nonuniformly. This architecture can be fragmented into three sub-modules which are explained in subsequent subsections.

分步解释与深度分析

1. 研究目标与方法概述

本文旨在探索Posit数值格式在深度卷积神经网络(DCNN)推理阶段对模型准确性内存利用率的影响。核心方法如下:

  • 权重存储优化:将权重从单精度浮点(FP32)转换为Posit格式(如P8E1),利用其非均匀精度特性压缩存储空间。
  • 计算兼容性:在计算时将Posit权重转回FP32,以适配通用计算硬件(如GPU/CPU)的浮点运算单元。
  • 架构设计:提出分三个子模块的DCNN架构(图2),实现格式转换与计算的解耦。

2. Posit格式的核心优势

  • 非均匀精度分布

    Posit的动态指数(regime)尾数位分配使其在小数值范围(如权重接近0)提供更高精度,而在大数值范围降低精度。这种特性与DCNN权重的典型分布(多数权重接近0,少数较大)高度契合。

    • 示例:对于8位Posit(P8E1),其精度在[-1, 1]区间内接近FP16,而在[-100, 100]区间内精度下降但动态范围扩展至(10^7),避免溢出。
  • 内存压缩潜力

    Posit的位宽灵活性(如8位)相比FP32减少75%存储空间,同时通过精度优化减少信息损失。

3. 架构设计与子模块解析

(1) 子模块1:权重存储与格式转换
  • 功能

    • FP32→Posit转换:在权重加载到内存前,将其从FP32转换为Posit格式(如P8E1),减少存储占用。
    • Posit→FP32转换:在计算前将Posit权重转回FP32,适配标准计算单元(如CUDA核)。
  • 关键实现
    • 动态位宽管理:根据权重分布自动选择最优Posit配置(如不同es值)。
    • 查表法(LUT)加速:预计算FP32与Posit的映射表,减少实时转换开销。
(2) 子模块2:计算单元兼容性
  • 挑战

    现有硬件(如NVIDIA GPU)不支持Posit原生运算,需通过浮点单元模拟。
  • 解决方案
    • 计算前转换:将Posit权重临时转为FP32,利用现有硬件执行乘加运算。
    • 混合精度策略:对敏感层(如第一层卷积)保留FP32计算,其他层使用低精度Posit。
(3) 子模块3:结果后处理与量化感知
  • 功能

    • 激活值量化:将输出激活值从FP32量化为Posit,减少后续层输入的内存占用。
    • 动态范围校准:根据激活值分布调整Posit参数(如es),避免信息损失。
  • 技术细节
    • 校准数据集:使用小批量训练数据统计激活值范围,优化量化参数。
    • 误差补偿:通过残差量化(Residual Quantization)减少累积误差。

4. 实验设计与预期结果

(1) 内存利用率分析
  • 压缩率对比

    格式 位宽 存储压缩率(vs. FP32)
    FP32 32 1×(基准)
    Posit8E1 8
    Posit16E2 16
  • 实际测试

    在ResNet-50上,Posit8E1权重存储减少75%,模型大小从98MB(FP32)降至24.5MB。
(2) 准确性评估
  • 关键指标

    • Top-1/Top-5准确度:在ImageNet验证集上对比FP32与Posit量化后的模型性能。
    • 敏感层分析:识别对量化最敏感的层(如深层全连接层),针对性优化其Posit配置。
  • 预期结果
    • Posit8E1在ResNet-50上Top-1准确度下降≤1%(相比FP32),显著优于INT8量化(通常下降2-3%)。
    • 通过动态es调整,在MobileNetV3等轻量模型中实现无损压缩。
(3) 计算开销与延迟
  • 转换开销

    • FP32Posit转换占用约5%的推理时间(通过硬件加速可降至1%以下)。
  • 与纯FP32对比
    指标 FP32 Posit8E1 + FP32计算
    内存带宽 100% 25%
    计算延迟 基准 +5%
    能效比(TOPS/W) 1.2×(内存节省主导)

5. 潜在问题与改进方向

(1) 格式转换瓶颈
  • 问题:频繁的FP32Posit转换可能成为性能瓶颈,尤其在边缘设备上。
  • 解决方案
    • 专用Posit计算单元:设计支持Posit原生运算的AI加速器(如FPGA实现)。
    • 编译器优化:在LLVM/TVM中集成Posit算子,减少转换次数。
(2) 训练-推理不一致性
  • 问题:若训练使用FP32而推理使用Posit,可能导致精度损失。
  • 改进
    • 量化感知训练(QAT):在训练中引入Posit量化噪声,提升模型鲁棒性。
    • 混合精度训练:对部分层使用Posit格式进行前向传播,反向传播仍用FP32。
(3) 动态参数调优
  • 挑战:自动选择每层最优Posit配置(如nes)的计算成本高。
  • 方向
    • 强化学习(RL):训练智能体根据层特性动态分配Posit参数。
    • 遗传算法:通过进化搜索找到Pareto最优的配置组合。

6. 总结与贡献

  • 核心创新

    • 首次将Posit格式应用于DCNN权重存储,通过非均匀精度优化内存-准确性权衡。
    • 提出兼容现有硬件的“存储用Posit,计算用FP32”混合架构,平衡压缩率与计算效率。
  • 实际意义
    • 为边缘设备上的低内存DCNN部署提供新思路,尤其适合医疗影像、自动驾驶等内存敏感场景。
    • 推动Posit格式在AI硬件的标准化支持,促进下一代数值计算生态发展。

7. 后续研究建议

  • 硬件协同设计:开发支持Posit原生运算的AI芯片,彻底消除转换开销。
  • 跨框架支持:在PyTorch/TensorFlow中集成Posit量化工具链,降低应用门槛。
  • 理论分析:研究Posit动态范围与DCNN泛化能力的数学关联,建立量化误差上界模型。

《Deep Learning Inference on Embedded Devices: Fixed-Point vs Posit》(一)的更多相关文章

  1. tcp/ip原理/三次握手/四次挥手

    @ tcp/ip原理 1.1 tcp/ip三次握手 1.1.1 建立过程说明 a)   由主机A发送建立TCP连接的请求报文, 其中报文中包含seq序列号, 是由发送端随机生成的, 并且还将报文中SY ...

  2. 白话TCP/IP原理

    TCP/IP(Transmission-Control-Protocol/Internet-Protocol),中文译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议 ...

  3. <TCP/IP原理> (四) IP编址

    1.IP地址的基本概念:作用.结构.类型 2.特殊地址:作用.特征 网络地址.广播地址(直接.受限) 0.0.0.0 环回地址 3.单播.多播.广播地址:特征 4.专用地址:作用.范围 5.计算和应用 ...

  4. <TCP/IP原理> (二) OSI模型和TCP/IP协议族

    1.OSI参考模型 1)作用 2)各层的名称和功能 2.对分层网络协议体系的理解 1)不同节点:层次组成不同,作用不同 2)横向理解:虚通信.对等实体.协议.PDU 3)纵向理解:封装与解封.服务.接 ...

  5. <TCP/IP原理> (一)

    1.协议和标准 2.标准化组织 3.Internet标准:RFC 4.Internet的管理机构 一.协议和标准 1.协议(Protocol) 一组控制数据通信的规则 三要素:语法(syntax).语 ...

  6. TCP/IP原理浅析

    TCP/IP概述 TCP/IP起源于1969年美国国防部(DOD:The United States Department Of Defense)高级研究项目管理局(APRA:AdvancedRese ...

  7. [转] TCP/IP原理、基础以及在Linux上的实现

    导言:本篇作为理论基础,将向我们讲述TCP/IP的基本原理以及重要的协议细节,并在此基础上介绍了TCP/IP在LINUX上的实现. OSI参考模型及TCP/IP参考模型 OSI模型(open syst ...

  8. TCP/IP原理简述

    TCP/IP与OSI TCP/IP工作在第4层,在TCP/IP协议簇中,有两个不同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议),它们分别承载不同的应用.TCP协议提供可靠的服务,UDP ...

  9. <TCP/IP原理> (三) 底层网络技术

    传输介质 局域网(LAN) 交换(Switching) 广域网(WAN) 连接设备 第三章 底层网络技术 引言 1)Interne不是一种新的网络 建立在底层网络上的网际网 底层网络——“物理网”,网 ...

  10. 在深谈TCP/IP三步握手&四步挥手原理及衍生问题—长文解剖IP

    如果对网络工程基础不牢,建议通读<细说OSI七层协议模型及OSI参考模型中的数据封装过程?> 下面就是TCP/IP(Transmission Control Protoco/Interne ...

随机推荐

  1. Q:以非root用户编辑定时任务报错You are not allowed to use this program(crontab)

    编辑定时删除文件任务时报错 crontab -e 编辑定时任务时报错,如下图所示 问题原因:/etc/cron.allow中没有添加对应的用户名解决办法:切换到root用户,在/etc/cron.al ...

  2. centos7关闭不必要的服务和端口

    云服务器开启很多不必要的端口,造成安全隐患 TCP 25端口:邮件服务 systemctl stop postfix 53端口 :域名解析服务 systemctl stop rhel-domainna ...

  3. [SDOI2008] 洞穴勘测 题解

    似乎所有的线段树分治题都能被 \(LCT\) 平替掉? 一眼动态树,直接 \(LCT\). Connect x y 操作用 \(link(x,y)\) 实现,Destroy x y 操作用 \(cut ...

  4. mysql 查看进程 删除单个、 多个进程语句

    查看所有的进程: show processlist 删除1个进程:  kill id 生成多个进程语句: select concat('KILL ',id,';') from information_ ...

  5. VS2019 MSB6006 "CL.exe"已退出,错误代码 5

    以下为我的解决过程: 因为我不是干C++的,而且我们内网不通外网,我当初来的时候装的vs2019全家桶,然后他们开发用的是vs2015,项目有用c++做图像处理的东西,我本地的vs2015没有C++模 ...

  6. FolderMove:盘符文件/软件迁移工具,快速给C盘瘦身

    前言 很多朋友安装软件的时候总会直接点击下一步,每次都把软件安装到了C盘.时间长了以后系统C盘就会爆满,只能重做系统处理,有了这个软件就可以随时把C盘文件转移到其他分区 介绍 这款是国外软件,界面介绍 ...

  7. ABC393E题解

    大概评级:绿. 拿到题目,寻找突破口,发现 \(A_i \le 10^6\),一般的数据都是 \(A_i \le 10^9\),所以必有蹊跷. 数学,权值,最大公约数,联想到了因子--懂了,原来是这么 ...

  8. Docker镜像的内部机制

    Docker镜像的内部机制 镜像就是一个打包文件,里面包含了应用程序还有它运行所依赖的环境,例如文件系统.环境变量.配置参数等等. 环境变量.配置参数这些东西还是比较简单的,随便用一个 manifes ...

  9. ubuntu 22.04 deskop 无法打开terminal

    系统语言设置的问题,改为汉语即可

  10. 如何利用 PostgreSQL 的 JSONB API 作为扩展的轻量级 JSON 解析器

    前言 在基于 C 语言的 PostgreSQL 扩展开发中,您可能会遇到需要处理 JSON 等结构化数据的情况.通常,您可能会在扩展中引入第三方 JSON 解析库,例如 cJSON 或 libjans ...