高通云人工智能100使用微缩放(Mx)格式将大语言模型推理的速度提高了大约2倍
发表于 2024-01-17 16:28:17

2024年1月94日星期二下午02:12时 | 发布人:科林·维里尔

骁龙及高通品牌产品均属于高通技术公司和/或其子公司产品。

由微缩放格式(Mx)联盟定义的MxFP已经在亚马逊网络服务弹性计算云的DL2q实例中启用,并在若干大语言模型上进行了评估。

大语言模型的挑战

在对大语言模型(LLM)进行推理时,生成令牌(除了第一个令牌)所需要的DRAM内存带宽远远超过所需要的计算。生成的每一个后续令牌都需要从DRAM内存中读取所有模型权重值。此外,及时处理以及所有先前生成令牌的记忆状态(KV缓存)均必须从DRAM内存中读取。由于这个原因,该类工作负载属于在随后的令牌生成阶段受到严重限制的内存带宽。可用的内存带宽越多,生成速度就越快。

除了带宽之外,内存容量也是部署大语言模型的一个限制因素。在该类模型中,最大的模型有数千亿个参数,很容易超过推理加速器的容量。通常情况下,该类大模型分布在若干加速卡上,以确保每个加速卡均拥有一部分的模型权值。KV缓存的存储同样需要更多的DRAM内存容量。容量需求随着模型大小(d_model)、上下文长度和批处理大小而呈线性增加。

大语言模型推理的第三个性能限制元素是通信带宽。由于该类工作负载分散在许多加速卡上,因此在执行每个令牌推理的每个解码器模块时,必须在各个加速卡之间将中间激活广播几次。所要通信的数据大小与模型大小(d_model和解码器模块的数量)、批处理大小和序列长度成正比。在及时处理过程中,如果需要进行许多令牌数据的通信,则通信影响尤其重要。在这种情况下,与DRAM内存访问的通信比例要高得多。

以上三种性能约束因素均可以通过数据压缩技术解决。权值压缩可以减少读取权值所需要的带宽。还可以减少DRAM内存中的权值占用。激活压缩可以减少需要通过卡间链路进行通信的实际数据量。

微缩放格式

今年早些时候,超微半导体、安谋、英特尔、Meta、微软、英伟达和高通技术公司成立了微缩放格式(MX)联盟,其目标是为人工智能训练和推理创建下一代6位和4位数据类型并实现其标准化。确保8位以下格式运行的关键赋能技术(称为“微缩放”)建立在多年的设计空间探索和研究的基础上。微缩放格式增强了现有8位格式(例如:FP8和INT8)的稳健性和易用性,从而降低了在更广泛的范围采用单数字位训练和推理的障碍。

最初的微缩放格式规范引入了四种具体的浮点和整数型数据格式(MXFP8、MXFP6、MXFP4和MXINT8),该等数据格式与当前的人工智能堆栈兼容,可以在整个硬件和软件范围内灵活实施,并在硬件层次实现细粒度微缩放。广泛的研究表明,针对多种不同的实际情况,很容易部署微缩放格式,例如大语言模型、计算机视觉、和推荐系统。微缩放技术同样可以在6位和4位精度下实现大语言模型的预训练,而无需对传统训练方法进行任何修改。

微缩放的其中一个主要目的是允许供应商为推理和训练加速器构建功率和面积效率更高的硬件。这是一个长期目标;但是,该项标准和相关数据科学的一个短期优点在于,权值和激活可以在训练后“直接投射”(压缩/量化)到该类格式中,从而解决上述问题。

高通云人工智能100和微缩放格式

高通云人工智能100推理加速器可提供灵活的编程,从而能够适应广泛的新工作负载和新加速技术。最近实现的一项技术是使用MXFP6作为权值压缩格式。当用户选择该编译选项时,编译器将在离线编译阶段自动将FP32或FP16的权值压缩为MXFP6格式。以这种形式进行压缩可以节省61%的权值大小,从而减少对于DRAM内存容量的压力。

在推理运行时,高通云人工智能100使用其矢量引擎和经过优化的解压缩内核在软件中执行即时解压缩。解压缩可以与权值获取和计算并行执行,因此大部分的占用均被隐藏。同样,还可以节省高达61%的DRAM内存带宽。在解压缩后,在FP16精度下进行计算。可以接受使用FP16,因为大语言模型仍然受到DRAM内存的限制,因此计算并非一个瓶颈。使用FP16,还可以确保保留更高精度的激活,从而克服了量化所造成的精度损失。

尽管目前尚不可用,但已计划使用MXINT8对需要通过卡间链接通信的激活进行压缩和解压缩。由于MXINT8所具有的特性,通常可以将FP16“直接投射”到MXINT8,并且不会损失工作负载的总体精度(参看引述的白皮书)。在链路带宽受到限制的情况下,通过减少传输延迟可以克服在软件中压缩和解压缩的占用。预期该特性能够针对大模型和大提示显著改进到第一个令牌的时间延迟。

实验结果

如使用MXFP6进行权值压缩,则可确保高通云人工智能100能够获得降低精度(例如:FP8或INT8)带来的所有益处,同时不需要特殊硬件,不会损失工作负载精度,也不需要修改训练程序。MXFP6对用户完全透明。

附表1显示了高通云人工智能100标准卡上各种工作负载的实验结果,并提供了使用MXFP6权值时吞吐量的改进情况。对于13B模型,如果没有提供MXFP6,网络就不会适配;但是,如果提供了MXFP6,模型就会适配并获得性能改进带来的益处。

附表1 – 高通云人工智能100标准吞吐量改进情况

模型

BS

PL

GL

CL

FP16(令牌/秒)

MXFP6(令牌/秒)

MXFP6FP16

增益率 %

gpt-j-6b

1

1024

1024

2048

8.08

13.9

72.03

opt-2.7b

1

1024

1024

2048

15.44

27.72

79.53

opt-13b

1

1024

1024

2048

n/a

6.98

n/a

附表2显示了在高通云人工智能AI 100超卡上针对各种工作负荷的实验结果。提供了使用MXFP6权值时吞吐量的改进情况。

附表2 – 高通云人工智能100超卡吞吐量改进情况

模型

BS

PL

GL

CL

FP16(令牌/秒)

MXFP6(令牌/秒)

MXFP6FP16

增益率 %

opt-6.7b

1

1024

1024

2048

19.49

41.29

111.85

Llama2-7b

1

1024

1024

2048

26.49

43.78

65.27

xgen-7b

1

1024

1024

2048

26.5

43.46

64

gpt-j-6b

1

1024

1024

2048

31.14

50.99

63.74

opt-2.7b

1

1024

1024

2048

64.17

104.25

62.46

高通云人工智能软件1.12版本中提供了MXFP6权值压缩功能,并在亚马逊网络服务弹性计算云的DL2q实例中运行。如上下文的长度为2K,则MxFP最高可以实现每秒79%的令牌增加,并确保OPT-13B等模型能够适配DLq2实例中的单个卡。每个DL2q实例均可以运行8个OPT-13B实例。

访问高通云人工智能100开发者中心,以了解更多信息并下载软件开发工具包。

骁龙与高通品牌产品均属于高通技术公司和/或其子公司产品。

相关博客:

随时随地训练,部署在亚马逊网络服务云人工智能100实例上

针对大语言模型的节能加速 – 高通云人工智能软件开发工具包

相关标签:

在所发布内容中表达的观点仅为原作者的个人观点,并不代表高通公司或其子公司(以下简称为“高通”)的观点。所提供的内容仅供参考之用,而并不意味着高通公司或任何其他方的赞同或表述。本网站同样可以提供非高通公司网站和资源的链接或参考。高通公司对于可能通过本网站引用、访问、或链接的任何非高通公司网站或第三方资源并没有做出任何类型的任何声明、保证、或其他承诺。 

CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
微博关注
【免责声明:CSDN本栏目发布信息,目的在于传播更多信息,丰富网络文化,稿件仅代表作者个人观点,与CSDN无关。其原创性以及文中陈述文字和文字内容未经本网证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本网不做任何保证或者承诺,请读者仅作参考,并请自行核实相关内容。您若对该稿件有任何怀疑或质疑,请立即与CSDN联系,我们将迅速给您回应并做处理。】