Training Deep Neural Networks with 8-bit Floating Point Numbers
概
本文提出了一种 8-bit 的训练方式.
主要内容
-
本文想要实现 8-bit 的训练, 作者认为主要挑战是两个向量的点击 (各元素相乘再相加) 的过程会产生严重的 swamping 问题, 导致 smaller number 会被直接裁剪掉.
-
于是本文的做法是, 乘法依旧在 8-bit 上做, 然后 accumulation 过程在加法上实现. 主要通过两个手段实现这一目的:
- Chunk-based Accumulation: 两个长向量的点积分解为数个 chunk 的点积再相加的过程, 这个好处是每个 chunk 的点积不会产生很严重的 swamping 问题的, 然后会产生严重 swamping 情况的问题因为实际上使用的 FP16 格式进行, 所以能够规避;
- Stochastic Rounding: 随机 rounding 是一种有效的规避 swamping 的方法. 特别地, 这里采用的 floating point stochastic rounding: 对于一个浮点数 ( 分别表示 (符号, 指数, 尾数))
其中 .
注: 浮点数表示个数包括 (sign, exponent, mantissa), 本文所讨论的 FP8 为 (1, 5, 2) 格式, FP16 为 (1, 6, 9) 格式.
分类:
Neural Networks
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2020-01-05 MCMC using Hamiltonian dynamics