在现代人工智能(AI)训练过程中,海量的计算需求已经成为制约性能提升的瓶颈。例如,训练 OpenAI 的 GPT-3 模型需要 数以亿计的操作,并耗费约 500 万美元 的计算时间。工程师们发现,通过改变数字在计算机中的表示方式,可以大幅减轻这种负担。本文将深入介绍一种名为 posits 的新型数字表示法,以及它如何通过硬件实现带来惊人的精度提升。
一、背景:浮点数与计算瓶颈
当前几乎所有计算机都使用 浮点数 来表示实数。但实数有无穷多个,而硬件只能用有限位数(如 32 位或 64 位)来近似表示,这就导致许多数字必须 四舍五入,造成精度损失。尤其在训练深度神经网络时,大量乘法累加操作会不断累积误差,最终影响模型质量。
小提示:浮点数由三部分组成:符号位(0 正 1 负)、尾数(表示小数部分)、指数(表示 2 的幂次)。这种结构在靠近 1 和 -1 的区域精度有限,而神经网络中的权重参数恰好集中在这个区域。
二、Posits:一种更聪明的数字表示
早在 2017 年,当时在 A*STAR 计算资源中心 和 新加坡国立大学 联合任命的 John Gustafson,以及当时在 Interplanetary Robot and Electric Brain Co. 任职的 Isaac Yonemoto 共同开发了一种新的数字表示方式,称为 posits。它被提议作为对标准浮点算术处理器的改进。
2.1 Posits 的核心优势:regime 部件
Posits 保留了浮点数的所有组成部分(符号、尾数、指数),但额外添加了一个 “regime” 部分——即指数的指数。其关键特性在于:regime 的位长可以动态变化。对于很小的数字,regime 可能只占用两个位,从而为尾数留出更多空间,显著提升精度。
这种分布方式使得 posits 在数轴的中间(约 1 和 -1 附近)拥有比浮点数更多的表示位置,而在数轴两端(大正数和大负数)精度下降得更加平缓。正如 Gustafson 所说:“它更适合计算中数字的自然分布。浮点算术中有大量的位模式从来没有人使用过,那是浪费。”

常见问题:为什么 posits 在 1 和 -1 附近精度更高?
因为神经网络中的权重通常是归一化参数(范围接近 [-1,1]),posits 通过可变长 regime 自动为这些常用数字分配更多尾数位,从而减少舍入误差。
三、硬件实现:首个 posit 处理器内核
来自 马德里康普顿斯大学 的研究团队(ArTeCS 小组)开发了 第一个在硬件中实现 posit 标准 的处理器内核。他们在 IEEE 计算机算术研讨会 上展示了成果:
- 在 矩阵乘法(神经网络训练的核心操作)中,使用 32 位 posits 比使用 32 位浮点数 精度提高了四个数量级。
- 提升精度 没有增加计算时间,只是略微增加了芯片面积和功耗。
该团队通过在 现场可编程门阵列 (FPGA) 中合成硬件实现,将 32 位浮点数和 32 位 posits 并排比较,并以更准确但计算成本更高的 64 位浮点格式作为基准。结果证实了 posits 的优越性。
小提示:Posits 还提供一种名为 quire 的特殊寄存器,专门用于高效执行累加步骤,避免多次截断带来的精度损失。而传统浮点数无法做到这一点。
四、行业动向与挑战
Complutense 团队并非唯一挑战数字表示极限的团队。就在同一周,英伟达、Arm 和英特尔 就使用 8 位浮点数(而非通常的 32 位或 16 位)用于机器学习应用达成了一项规范。使用更小、更不精确的格式能提升效率和内存利用率,但代价是计算准确性——而 posits 则试图在精度和效率之间取得更好平衡。
4.1 对大型 AI 模型的潜在影响
尽管数值精度的提升已获证实,但 posits 是否真能加速像 GPT-3 这样的大型 AI 训练仍有待观察。康普顿斯大学的研究生研究员 Da vid Mallasén Quintana 表示:“假设可能会加快训练速度,因为你不会在途中丢失太多信息,但这些是我们不知道的事情。有些人已经在软件中进行了尝试,但我们现在也想在硬件中尝试。”
4.2 全球采用情况
许多其他团队也在开发自己的硬件实现以促进 posits 的使用。Gustafson 评论说:“它正在做我希望它做的事情——它正在疯狂地被采用。位置编号格式引起了轰动,有数十个团体,包括公司和大学,都在使用它。”
常见问题:目前 posits 能否直接替代浮点数?
不能。现有软件和硬件生态系统都是为浮点数设计的。虽然软件模拟 posits 可行,但格式转换会带来额外开销。只有像 Complutense 这样实现原生硬件支持,才能真正发挥 posits 的优势。未来若被主流芯片厂商采用,情况可能改变。
总之,posits 通过巧妙的数字表示方式,在不增加位宽的前提下显著提升了计算精度,尤其适合神经网络这样的应用场景。虽然从理论到大规模实用仍需时日,但它为后摩尔时代提升计算性能提供了一条切实可行的新路径。
