机器学习中的新数学,加速AI训练离不开数字表示方式和基本计算的变革

简介: 机器学习中的新数学,加速AI训练离不开数字表示方式和基本计算的变革


机器之心编译机器之心编辑部

本文详介绍了英伟达的每向量缩放量化方案、新的数字格式 Posits 以及如何降低 RISC-V 的数学风险。



近年来 AI 领域的发展令人震惊,但为完成这些壮举而训练神经网络的成本也异常巨大。以大规模语言模型 GPT-3 和艺术生成器 DALL-E 2 为例,它们需要在高性能 GPU 集群上训练数月时间,耗资数百万美元,消耗百万亿计的基本计算。


同时,处理单元的训练能力一直在快速增长,仅 2021 年就翻了一番。为了保持这一趋势,研究人员正在深入研究最基础的计算构建块,即计算机表示数字的方式。


在上个月举办的第 29 届 IEEE 计算机算术研讨会(IEEE Symposium on Computer Arithmetic)的一场 Keynote 演讲中,英伟达首席科学家、高级研究副总裁 Bill Dally 表示,「过去 10 年,单个芯片的训练性能提升了 1000 倍,其中很大部分要归功于数字表示。」


在朝着更高效 AI 训练前进的过程中,首先「牺牲」的是 32-bit 浮点数表示,俗称标准精度。为了全面追求速度、能效以及芯片面积和内存的更好利用,机器学习研究人员一直努力通过更少 bit 表示的数字来获得相同的训练水平。对于试图取代 32-bit 格式的竞争者来说,这个领域依然很开放,无论是在数字表示本身还是完成基础运算的方式上。


英伟达每向量缩放量化方案(VSQ)


我们知道,图像生成神器 DALL-E 在英伟达 A100 GPU 集群上接受了标准 32-bit 数字和低精度 16-bit 数字的组合训练。Hopper GPU 更是支持了更小的 8-bit 浮点数。最近,英伟达在一项研究中开发了一个原型芯片,通过使用 8-bit 和 4-bit 数字的组合更进一步推动了这一趋势。



论文地址:https://ieeexplore.ieee.org/document/9830277


尽管使用了更低精确的数字,但该芯片努力保持计算准确率,至少在训练过程中的推理部分是这样。推理是在经过充分训练的模型上执行以获得输出,但在训练期间也会重复进行。Bill Dally 表示,「我们最终以 4-bit 精度得到 8-bit 结果。」


英伟达的每向量缩放方案比 INT4 等标准格式更好地表示机器学习中需要的数字。


得益于这种方案,英伟达能够在没有显著准确率损失的情况下减少数字大小。基本理念是这样的:一个 4-bit 数字只能精确表示 16 个值。因此,每个数字都会四舍五入到这 16 个值的其中一个。这种舍入导致的准确率损失被称为量化误差。


但是,你可以添加一个缩放因子在数轴上将 16 个值均匀地压缩在一起或将它们拉得更远,从而减少或增加量化误差。


所以诀窍在于压缩或扩展这 16 个值,这样它们就能与你在神经网络中实际需要表示的数字范围形成最佳匹配。这种缩放对于不同的数据集也是不同的。通过为神经网络模型中每个包含 64 个数字的集合微调这种缩放参数,英伟达的研究者能够最大限度地减少量化误差。他们还发现,计算缩放因子的开销也可以忽略不计。但随着 8-bit 表示减少至 4-bit,能效翻了一番。


实验芯片仍在开发当中,英伟达工程师也在努力研究如何在整个训练流程而不是仅在推理中利用这些原理。Dally 表示,如果成功,结合了 4-bit 计算、VSQ 和其他效率改进的芯片可以在每瓦特运算次数上达到 Hopper GPU 的 10 倍。


一种新的数字格式——Posits


早在 2017 年,美国计算机科学家 John Gustafson 和 J. Craig Venter 研究所助理研究员 Isaac Yonemoto 开发出了一种全新的数字表示方式—— posit。



论文地址:http://www.johngustafson.net/pdfs/BeatingFloatingPoint.pdf


现在,马德里康普顿斯大学的一组研究人员开发了首个在硬件中实现 posit 标准的处理器内核,并表示与使用标准浮点数的计算相比,基本计算任务的准确率最高可以提升四个量级。



论文地址:https://ieeexplore.ieee.org/document/9817027/references#references


posits 的优势在于它们沿着数轴分布来精确表示数字。在数轴的中间,大约在 1 和–1 附近,存在比浮点更多的 posit 表示。在两端,对于大的负数和正数,posit 准确率比浮点下降得更优雅。


Gustafson 表示,「posits 更适合计算中数字的自然分布。其实,浮点运算中有大量的 bit 模式,不过没有人使用过。这是一种浪费。」


Posits 在 1 和 -1 附近提升了准确率,这要得益于它们的表示中存在一个额外的组件。浮点数由三部分组成:一个符号位(0 表示正,1 表示负)、几个尾数(分数)位以表示二进制小数点之后的内容以及定义指数(2^exp)的其余位。


Posits 保留了浮点数的所有组件,但添加了一个额外的「regime」部分,即指数的指数。这个 regime 的奇妙之处在于它的 bit 长度可以变化。对于小数,regime 可能只需要 2 个 bit,为尾数提供更高精度。这允许在 1 和 - 1 附近的最佳位置实现更高的准确率。


通过添加一个额外的可变长度机制,在零附近的数字将具有更好的准确率,神经网络中使用的大多数数字都在该位置。


借助在 FPGA 上合成的新硬件实现,Complutense 团队能够比较使用 32 位浮点数和 32 位 posits 完成计算的效果。他们通过将其与使用更准确但计算成本更高的 64 位浮点格式的结果进行比较来评估准确率。posits 在矩阵乘法的准确率方面惊人地提升了四个数量级。他们还发现,提高精度并没有以计算时间为代价,只是稍微增加了芯片的面积和功耗。

降低 RISC-V 的数学风险


一个来自瑞士和意大利的研究团队曾开发一种减少 bit 的方案,适用于使用开源 RISC-V 指令集架构的处理器, 并推进了新处理器的开发。该团队对 RISC-V 指令集的扩展包括一个有效的计算版本,它混合了较低和较高精度的数字表示。凭借改进的混合精度数学,他们在训练神经网络所涉及的基本计算中获得了两倍的加速。


降低精度在基本操作期间不仅会因 bit 减少导致精度损失,还会产生连锁反应。将两个低精度数字相乘可能会导致数字太小或太大而无法表示给定的 bit 长度——分别称为下溢和上溢;另外,将一个大的低精度数和一个小的低精度数相加时,会发生 swamping 现象,导致较小的数字完全丢失。

混合精度对于改善上溢、下溢和 swamping 问题具有重要作用,其中使用低精度输入执行计算并产生更高精度的输出,在舍入到较低精度之前完成一批数学运算。


点积是人工智能计算的一个基本组成部分,它通常通过一系列称为融合乘加单元 (FMA) 的组件在硬件中实现。它们一次性执行操作 d = a*b + c,最后只进行四舍五入。为了获得混合精度的好处,输入 a 和 b 是低精度(例如 8 bits),而 c 和输出 d 是高精度(例如 16 bits)。

IEEE Fellow Luca Benini 等人认为:与其一次只做一个 FMA 操作,不如同时做两个并在最后将它们加在一起。这不仅可以防止由于两个 FMA 之间的舍入而造成的损失,而且还可以更好地利用内存,因为这样就不需要有内存寄存器等待前一个 FMA 完成。


Luca Benini 领导的小组设计并模拟了并行混合精度点积单元,发现向量的点积计算时间几乎减少了一半,并且输出精度提高了。他们目前正在构建新的硬件架构,以证明模拟的预测。


更多详细内容请参阅原文链接:https://spectrum.ieee.org/number-representation


相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
1月前
|
机器学习/深度学习 人工智能 安全
探索AI的未来:从机器学习到深度学习
【10月更文挑战第28天】本文将带你走进AI的世界,从机器学习的基本概念到深度学习的复杂应用,我们将一起探索AI的未来。你将了解到AI如何改变我们的生活,以及它在未来可能带来的影响。无论你是AI专家还是初学者,这篇文章都将为你提供新的视角和思考。让我们一起探索AI的奥秘,看看它将如何塑造我们的未来。
74 3
|
24天前
|
人工智能 JSON 算法
Qwen2.5-Coder 系列模型在 PAI-QuickStart 的训练、评测、压缩及部署实践
阿里云的人工智能平台 PAI,作为一站式、 AI Native 的大模型与 AIGC 工程平台,为开发者和企业客户提供了 Qwen2.5-Coder 系列模型的全链路最佳实践。本文以Qwen2.5-Coder-32B为例,详细介绍在 PAI-QuickStart 完成 Qwen2.5-Coder 的训练、评测和快速部署。
Qwen2.5-Coder 系列模型在 PAI-QuickStart 的训练、评测、压缩及部署实践
|
9天前
|
人工智能 数据挖掘
AI长脑子了?LLM惊现人类脑叶结构并有数学代码分区,MIT大牛新作震惊学界!
麻省理工学院的一项新研究揭示了大型语言模型(LLM)内部概念空间的几何结构,与人脑类似。研究通过分析稀疏自编码器生成的高维向量,发现了概念空间在原子、大脑和星系三个层次上的独特结构,为理解LLM的内部机制提供了新视角。论文地址:https://arxiv.org/abs/2410.19750
50 12
|
1月前
|
人工智能 边缘计算 JSON
DistilQwen2 蒸馏小模型在 PAI-QuickStart 的训练、评测、压缩及部署实践
本文详细介绍在 PAI 平台使用 DistilQwen2 蒸馏小模型的全链路最佳实践。
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
机器学习之解释性AI与可解释性机器学习
随着人工智能技术的广泛应用,机器学习模型越来越多地被用于决策过程。然而,这些模型,尤其是深度学习模型,通常被视为“黑箱”,难以理解其背后的决策逻辑。解释性AI(Explainable AI, XAI)和可解释性机器学习(Interpretable Machine Learning, IML)旨在解决这个问题,使模型的决策过程透明、可信。
52 2
|
1月前
|
机器学习/深度学习 数据采集 人工智能
揭秘AI:机器学习的魔法与代码
【10月更文挑战第33天】本文将带你走进AI的世界,了解机器学习的原理和应用。我们将通过Python代码示例,展示如何实现一个简单的线性回归模型。无论你是AI新手还是有经验的开发者,这篇文章都会给你带来新的启示。让我们一起探索AI的奥秘吧!
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI的奥秘:机器学习入门指南
【10月更文挑战第30天】本篇文章是一份初学者友好的机器学习入门指南,旨在帮助读者理解并开始实践机器学习。我们将介绍机器学习的基本概念,包括监督学习、无监督学习和强化学习等。我们还将提供一些实用的代码示例,以帮助读者更好地理解和应用这些概念。无论你是编程新手,还是有一定经验的开发者,这篇文章都将为你提供一个清晰的机器学习入门路径。
39 2
|
29天前
|
机器学习/深度学习 人工智能 自动驾驶
揭秘AI:机器学习如何改变我们的世界
在这篇文章中,我们将深入探讨机器学习如何改变我们的世界。从自动驾驶汽车到智能医疗诊断,机器学习正在逐步渗透到我们生活的每一个角落。我们将通过实例和代码示例,揭示机器学习的工作原理,以及它如何影响我们的生活。无论你是科技爱好者,还是对人工智能充满好奇的普通读者,这篇文章都将为你打开一扇新的大门,带你走进机器学习的世界。
28 0
|
1月前
|
机器学习/深度学习 数据采集 人工智能
自动化测试的未来:AI与机器学习的融合之路
【10月更文挑战第41天】随着技术的快速发展,软件测试领域正经历一场由人工智能和机器学习驱动的革命。本文将探讨这一趋势如何改变测试流程、提高测试效率以及未来可能带来的挑战和机遇。我们将通过具体案例分析,揭示AI和ML在自动化测试中的应用现状及其潜力。
40 0
|
机器学习/深度学习 人工智能 开发工具
打造AI训练基础平台!Unity推出Machine Learning Agents
但在未来,人工智能游戏选手或许将会面临新的对手:另一个人工智能。今天,全球最大的3D游戏引擎Unity宣布发布Unity Machine Learning Agents,通过将其游戏引擎与TensorFlow等机器学习框架相连接
1682 0
下一篇
DataWorks