随着人工智能(AI),尤其是生成式AI的引入,汽车行业正迎来变革性转变。麦肯锡最近对汽车和制造业高管开展的一项调查表明,超过40%的受访者对生成式AI研发的投资额高达500万欧元,超过10%受访者的投资额超过2,000万欧元。
随着行业向软件定义汽车(SDV)不断发展,到2030年,汽车中的代码行数预计将从每辆车1亿行增加至约3亿行。面向汽车的生成式AI与SDV相结合,可共同实现性能和舒适性方面的车载用例,以帮助提升驾乘体验。
本文将介绍一项由Arm与亚马逊云科技(AWS)合作开发的车载生成式AI用例及其实现详情。
用例介绍
随着汽车愈发精密,车主已经能在交车后持续接收诸如停车辅助或车道保持等功能更新,伴随而来的挑战是,如何让车主及时了解新增的更新和新功能?过往通过纸质或在线手册等传统方法的更新方式已证明存在不足,导致车主无法充分了解汽车的潜能。
为了应对这一挑战,AWS将生成式AI、边缘计算和物联网(IoT)的强大功能相结合,开发了一项车载生成式AI的演示。这项演示所展现的解决方案是由小语言模型(SLM)所支持的车载应用,旨在使驾驶员能够通过自然语音交互获取比较新的车辆信息。该演示应用能够在部署后离线运行,确保驾驶员在没有互联网连接的情况下,也能访问有关车辆的重要信息。
该解决方案集成了多项先进技术,为用户打造出更无缝、更有效的产品体验。这项演示的应用部署在车内本地的小语言模型,该模型利用经Arm KleidiAI优化的例程对性能进行提升。未经KleidiAI优化的系统的响应时间为8至19秒左右,相比之下,经KleidiAI优化的小语言模型的推理响应时间为1至3秒。通过使用KleidiAI,应用开发时间缩短了6周,而且开发者在开发期间无需关注底层软件的优化。
Arm虚拟硬件(Arm Virtual Hardware)支持访问许多AWS上的热门物联网开发套件。当物理设备不可用,或者全球各地的团队无法访问物理设备时,在Arm虚拟硬件上进行开发和测试可节省嵌入式应用的开发时间。AWS在汽车虚拟平台上成功测试了该演示应用,在演示中,Arm虚拟硬件提供了树莓派设备的虚拟实例。同样的KleidiAI优化也可用于Arm虚拟硬件。
这个在边缘侧设备上运行的生成式AI应用所具备的关键特性之一是,它能够接收OTA无线更新,其中部分更新使用AWS IoT Greengrass Lite接收,从而确保始终向驾驶员提供比较新信息。AWS IoT Greengrass Lite在边缘侧设备上仅占用5 MB的RAM,因此具有很高的内存效率。此外,该解决方案包含自动质量监控和反馈循环,用于持续评估小语言模型响应的相关性和准确性。其中采用了一个比较系统,对超出预期质量阈值的响应进行标记,以进行审核。然后,通过AWS上的仪表板,以近乎实时的速度对收集到的反馈数据进行可视化,使整车厂的质保团队能够审核和确定需要改进的方面,并根据需要发起更新。
这个由生成式AI提供支持的解决方案,所具备的优势不仅仅在于为驾驶员提供准确的信息。它还体现了SDV生命周期管理的范式转变,实现了更持续的改进周期,整车厂可以根据用户交互来添加新内容,而小语言模型可以使用通过无线网络无缝部署的更新信息进行微调。这样一来,通过保证比较新的车辆信息,用户体验得以提升,此外整车厂也有机会向用户介绍和指导新特性或可购买的附加功能。通过利用生成式AI、物联网和边缘计算的强大功能,这个生成式AI应用可以起到汽车用户向导的作用,其中展示的方法有助于在SDV时代实现更具连接性、信息化和适应性的驾驶体验。
端到端的上层实现方案
下图所示的解决方案架构用于对模型进行微调、在Arm虚拟硬件上测试模型,以及将小语言模型部署到边缘侧设备,并且其中包含反馈收集机制。
图:基于生成式AI的汽车用户向导的解决方案架构图
上图中的编号对应以下内容:
1.模型微调:AWS演示应用开发团队选择TinyLlama-1.1B-Chat-v1.0作为其基础模型,该模型已针对会话任务进行了预训练。为了优化驾驶员的汽车用户向导聊天界面,团队设计了言简意赅、重点突出的回复,以便适应驾驶员在行车时仅可腾出有限注意力的情况。团队创建了一个包含1,000组问答的自定义数据集,并使用Amazon SageMaker Studio进行了微调。
2.存储:经过调优的小语言模型存储在Amazon Simple Storage Service (Amazon S3)中。
3.初始部署:小语言模型最初部署到基于Ubuntu的Amazon EC2实例。
4.开发和优化:团队在EC2实例上开发并测试了生成式AI应用,使用llama.cpp进行小语言模型量化,并应用了Q4_0方案。KleidiAI优化预先集成了llama.cpp。与此同时,模型还实现了大幅压缩,将文件大小从3.8 GB减少至607 MB。
5.虚拟测试:将应用和小语言模型传输到Arm虚拟硬件的虚拟树莓派环境进行初始测试。
6.虚拟验证:在虚拟树莓派设备中进行全面测试,以确保功能正常。
7.边缘侧部署:通过使用AWS IoT Greengrass Lite,将生成式AI应用和小语言模型部署到物理树莓派设备,并利用AWS IoT Core作业进行部署管理。
8.部署编排:AWS IoT Core负责管理部署到边缘侧树莓派设备的任务。
9.安装过程:AWS IoT Greengrass Lite处理从Amazon S3下载的软件包,并自动完成安装。
10.用户界面:已部署的应用在边缘侧树莓派设备上为最终用户提供基于语音的交互功能。
11.质量监控:生成式AI应用实现对用户交互的质量监控。数据通过AWS IoT Core收集,并通过Amazon Kinesis Data Streams和Amazon Data Firehose处理,然后存储到Amazon S3。整车厂可通过Amazon QuickSight仪表板来监控和分析数据,及时发现并解决任何小语言模型质量问题。
接下来将深入探讨KleidiAI及该演示采用的量化方案。
Arm KleidiAI
Arm KleidiAI是专为AI框架开发者设计的开源库。它为Arm CPU提供经过优化的性能关键例程。该开源库最初于2024年5月推出,现在可为各种数据类型的矩阵乘法提供优化,包括32位浮点、Bfloat16和4位定点等超低精度格式。这些优化支持多项Arm CPU技术,比如用于8位计算的SDOT和i8mm,以及用于32位浮点运算的MLA。
凭借四个Arm Cortex-A76核心,树莓派5演示使用了KleidiAI的SDOT优化,SDOT是最早为基于Arm CPU的AI工作负载设计的指令之一,它在2016年发布的Armv8.2-A中推出。
SDOT指令也显示了Arm持续致力于提高CPU上的AI性能。继SDOT之后,Arm针对CPU上运行AI逐步推出了新指令,比如用于更有效8位矩阵乘法的i8mm和Bfloat16支持,以期提高32位浮点性能,同时减半内存使用。
对于使用树莓派5进行的演示,通过按块量化方案,利用整数4位量化(也称为llama.cpp中的Q4_0)来加速矩阵乘法,KleidiAI扮演关键作用。
llama.cpp中的Q4_0量化格式
llama.cpp中的Q4_0矩阵乘法包含以下组成部分:
·左侧(LHS)矩阵,以32位浮点值的形式存储激活内容。
·右侧(RHS)矩阵,包含4位定点格式的权重。在该格式中,量化尺度应用于由32个连续整数4位值构成的数据块,并使用16位浮点值进行编码。
因此,当提到4位整数矩阵乘法时,它特指用于权重的格式,如下图所示:
在这个阶段,LHS和RHS矩阵均不是8位格式,KleidiAI如何利用专为8位整数点积设计的SDOT指令?这两个输入矩阵都必须转换为8位整数值。
对于LHS矩阵,在矩阵乘法例程之前,还需要一个额外的步骤:动态量化为8位定点格式。该过程使用按块量化方案将LHS矩阵动态量化为8位,其中,量化尺度应用于由32个连续8位整数值构成的数据块,并以16位浮点值的形式存储,这与4位量化方法类似。
动态量化可比较大限度降低准确性下降的风险,因为量化尺度因子是在推理时根据每个数据块中的最小值和比较大值计算得出的。与该方法形成对比的是,静态量化的尺度因子是预先确定的,保持不变。
对于RHS矩阵,在矩阵乘法例程之前,无需额外步骤。事实上,4位量化充当压缩格式,而实际计算是以8位进行的。因此,在将4位值传递给点积指令之前,首先将其转换为8位。从4位转换为8位的计算成本并不高,因为只需进行简单的移位/掩码运算即可。
既然转换效率如此高,为什么不直接使用8位,省去转换的麻烦?
使用4位量化有两个关键优势:
·缩小模型尺寸:由于4位值所需的内存只有8位值的一半,因此这对可用RAM有限的平台尤其有益。
·提升文本生成性能:文本生成过程依赖于一系列矩阵向量运算,这些运算通常受内存限制。也就是说,性能受限于内存和处理器之间的数据传输速度,而不是处理器的计算能力。由于内存带宽是一个限制因素,缩小数据大小可比较大限度减少内存流量,从而显著提高性能。
如何结合使用KleidiAI与llama.cpp?
非常简单,KleidiAI已集成到llama.cpp中。因此,开发者不需要额外的依赖项就能充分发挥Armv8.2及更新架构版本的Arm CPU性能。
两者的集成意味着,在移动设备、嵌入式计算平台和基于Arm架构处理器的服务器上运行llama.cpp的开发者,现在可以体验到更好的性能。
除了llama.cpp,还有其他选择吗?
对于在Arm CPU上运行大语言模型,虽然llama.cpp是一个很好的选择,但开发者也可以使用其他采用了KleidiAI优化的高性能生成式AI框架。例如(按首字母顺序排列):ExecuTorch、MediaPipe、MNN和PyTorch。只需选择比较新版本的框架即可。
因此,如果开发者正考虑在Arm CPU上部署生成式AI模型,探索以上框架有助于实现性能和效率的优化。
总结
SDV和生成式AI的融合,正在共同开创一个新的汽车创新时代,使得未来的汽车变得更加智能化,更加以用户为中心。文中介绍的车载生成式AI应用演示由Arm KleidiAI进行优化并由AWS所提供的服务进行支持,展示了新兴技术如何帮助解决汽车行业的实际挑战。该解决方案可实现1至3秒的响应时间并将开发时间缩短数周,证明更有效且离线可用的生成式AI应用不仅能够实现,而且非常适合车载部署。
汽车技术的未来在于打造无缝融合边缘计算、物联网功能和AI的解决方案。随着汽车不断演变且软件越来越复杂,潜在解决方案(比如本文介绍的解决方案)将成为弥合先进汽车功能与用户理解间差距的关键。
(推广)