Ultra-Low Precision 4-bit Training of Deep Neural Networks

news/2025/1/7 21:33:22/文章来源:https://www.cnblogs.com/MTandHJ/p/18658418

目录
  • 主要内容
    • Radix-4 FP4 format
    • GradScale
    • Two-Phase Rounding (TPR)

Sun X., Wang N., Chen C., Ni J., Agrawal A., Cui X., Venkataramani S. and Maghraoui K. E. and Srinivasan V. Ultra-low precision 4-bit training of deep neural networks. NeurIPS, 2020.

本文提出了一种特殊的 FP4 格式以及 Grad Scale 机制来实现 4-bit 量化.

主要内容

Radix-4 FP4 format

  • 4-bit 的训练是很难的 (实际上 8-bit 的目前也才刚刚有了成色), 作者认为一大难点是这种情况下所能表示的数值范围过于有限了. 所以, 作者不采用常用的 [sign, exponent, mantissa] = [1, 2, 1] 的格式, 而是使用 [sign, exponent, mantissa] = [1, 3, 0] 的格式. radix-4 FP4 可以表示 (如果我没理解错):

    \[4^{-3}, 4^{-2}, \cdots, 4^2, 4^3, \\ -4^{-3}, -4^{-2}, \cdots, -4^2, -4^3. \]

  • 然后 rounding 规则为:

    \[round(x) = \left \{\begin{array}{ll} 4^{n-1} & x \le 4^n / 1.6, \\ 4^{n} & x > 4^n / 1.6. \\\end{array} \right. \]

    注意到, \((4^n + 4^{n-1}) / 2 = 4^n / 1.6\).

GradScale

  • FP16 的训练, 通常需要先将 loss scale 到最大表示范围处, 以尽可能用尽所有的资源, 然后梯度再 1 / scale 回去.

  • FP4 仅通过一次 scale 是远远不够的. 所以作者给每一层都设置了可学习的 scale 参数 \(scale_{i, L}\). 它的更新方式如下:

  • 即如果梯度的最大值已经落在 \((Max / 2, Max]\) 这个合理区间内, 则不需要调整. 如果梯度的最大值落在 \([0, Max / 2]\) 这个 underflow 区间内, 则需要增大 \(scale_{i, L}\) (更新方式是 \(\times 2\)). 如果梯度的最大值落在 \((Max, +\infty)\), 此时 overflow, 需要减小 \(scale_{i, L}\) (更新方式是 \(/ 2\)).

Two-Phase Rounding (TPR)

  • 作者还提出了两种 rounding 方式, 分别用于梯度回传中 \(dL / dx, dL/dW\). 说实话, 我没看明白为什么这种做法能够保留更多信息?

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

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

相关文章

征程 6X release版本内核模块安全加载

1.概述 征程 6X 系统在 release 编译时支持内核模块签名验证,仅加载使用正确密钥进行数字签名的内核模块。禁止加载未签名的内核模块或使用错误密钥签名的内核模块,客户需要替换成自己的 key 进行签名。 模块签名启用后,Linux 内核将仅加载使用正确密钥进行数字签名的内核模…

有奖活动:pick 你最爱的 AI 项目!拿社区年度大奖!

🎄 R 友们,一年一度的春节又这么水灵灵的快到来了!🙋 陈运营给大家准备了四重好礼,快!往!下!看!⬆️ RTE 开发者社区功能再次升级!新增小助手推荐、私信功能,还有神秘功能马上上线~等你来体验!🎁 更重要的是!我们给大家准备的丰~厚~礼~包~已就位,快来 p…

BIND域名解析服务器搭建

dns介绍: dns域名解析服务,管理和解析域名与ip地址对应关系的技术 正向解析:域名解析为ip地址;反向解析:ip地址解析为域名 dns域名解析服务采用类似目录树层次结构记录域名与ip对应关系,采用分布式数据结构存储三种类型服务器: 主服务器:在特定区域内具有唯一性,负责维…

JS-20 字符串

字符串就是零个或多个排在一起的字符,放在单引号或双引号之中 zifuchan "zifuchuan" 单引号字符串的内部,可以使用双引号。双引号字符串的内部,可以使用单引号 key="value" "Its a long zifuchuan" 如果要在单引号字符串的内部,使用单引号,…

【Leetcode_Hot100】二叉树

二叉树 94. 二叉树的中序遍历 104. 二叉树的最大深度 226. 翻转二叉树 101. 对称二叉树 543. 二叉树的直径 102. 二叉树的层序遍历 108. 将有序数组转换为二叉搜索树 98. 验证二叉搜索树 230. 二叉搜索树中第 K 小的元素 199. 二叉树的右视图 114. 二叉树展开为链表 105. 从前序…

tcp_wrappers模块实现服务访问控制

介绍: 1、对有状态连接的特定服务进行安全检测并实现访问控制,所以只能用于tcp服务 2、判断进程是否接收tcp_wrappers的控制,取决于程序在编译时是否添加了libwrap库 3、类似防火墙的功能,但需要程序支持;对于一些访问控制可简单配置即可实现查询程序是否tcpwrap模块 存放…

linux PAM可插拔认证模块介绍

PAM(Pluggable Authentication Modules ) 介绍 通过提供一些动态链接库和一套统一的API,将系统提供的服务 和该服务的认证方式分开 使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系统中添加新的认证手段流程图说明:1、…

大三上加分细则

1、做液压项目 2、恋爱成功 3、通过软考中级

Head First 设计模式(中文版)PDF、EPUB免费下载

《Head First设计模式》(中文版)共有14章,每章都介绍了几个设计模式,完整地涵盖了四人组版本全部23个设计模式。前言先介绍这本书的用法;第1章到第11章陆续介绍的设计模式为Strategy、Observer、Decorator、Abstract Factory、Factory Method、Singleton,Command、Adapter、…

Java从入门到精通(第6版)PDF、EPUB免费下载

《Java从入门到精通(第6版)(软件开发视频大讲堂)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细讲解了使用Java语言进行程序开发需要掌握的知识。全书分为23章,内容包括初识Java,熟悉Eclipse开发工具,Java语言基础,流程控制,数组,类和对象,继承、多…

rust学习十五.5、引用循环和内存泄露

这个章节主要是为了引出弱引用这个奇怪的概念。 说实在,这个没有什么太好写的,因为内容比较晦涩难懂!在其它语言中,也常常存在所谓循环引用问题,和大部分问题一样,在其它语言中这些基本上都不是问题。但是在rust中,这是一个致命的问题。例如有a,b两个点,a指向b,b指向a…

腾讯云轻量服务器搭建彩虹聚合 DNS 聚合管理系统教程

彩虹聚合 DNS 管理系统具备诸多实用功能,其中包括 SSL 证书申请与自动部署功能,它能够从多个渠道申请 SSL 证书,像 Lets Encrypt 等,并自动将证书部署到各式各样的面板、云服务商以及服务器等环境中,同时还支持 CNAME 代理功能,为域名管理和安全访问提供了有力保障。 一、…