隨著(zhù)人工智能 (AI),尤其是生成式 AI 的引入,汽車(chē)行業(yè)正迎來(lái)變革性轉變。麥肯錫最近對汽車(chē)和制造業(yè)高管開(kāi)展的一項調查表明,超過(guò) 40% 的受訪(fǎng)者對生成式 AI 研發(fā)的投資額高達 500 萬(wàn)歐元,超過(guò) 10% 受訪(fǎng)者的投資額超過(guò) 2,000 萬(wàn)歐元。
隨著(zhù)行業(yè)向軟件定義汽車(chē) (SDV) 不斷發(fā)展,到 2030 年,汽車(chē)中的代碼行數預計將從每輛車(chē) 1 億行增加至約 3 億行。面向汽車(chē)的生成式 AI 與 SDV 相結合,可共同實(shí)現性能和舒適性方面的車(chē)載用例,以幫助提升駕乘體驗。
本文將介紹一項由 Arm 與亞馬遜云科技 (AWS) 合作開(kāi)發(fā)的車(chē)載生成式 AI 用例及其實(shí)現詳情。
用例介紹
隨著(zhù)汽車(chē)愈發(fā)精密,車(chē)主已經(jīng)能在交車(chē)后持續接收諸如停車(chē)輔助或車(chē)道保持等功能更新,伴隨而來(lái)的挑戰是,如何讓車(chē)主及時(shí)了解新增的更新和新功能?過(guò)往通過(guò)紙質(zhì)或在線(xiàn)手冊等傳統方法的更新方式已證明存在不足,導致車(chē)主無(wú)法充分了解汽車(chē)的潛能。
為了應對這一挑戰,AWS 將生成式 AI、邊緣計算和物聯(lián)網(wǎng) (IoT) 的強大功能相結合,開(kāi)發(fā)了一項車(chē)載生成式 AI 的演示。這項演示所展現的解決方案是由小語(yǔ)言模型 (SLM) 所支持的車(chē)載應用,旨在使駕駛員能夠通過(guò)自然語(yǔ)音交互獲取最新的車(chē)輛信息。該演示應用能夠在部署后離線(xiàn)運行,確保駕駛員在沒(méi)有互聯(lián)網(wǎng)連接的情況下,也能訪(fǎng)問(wèn)有關(guān)車(chē)輛的重要信息。
該解決方案集成了多項先進(jìn)技術(shù),為用戶(hù)打造出更無(wú)縫、更高效的產(chǎn)品體驗。這項演示的應用部署在車(chē)內本地的小語(yǔ)言模型,該模型利用經(jīng) Arm KleidiAI 優(yōu)化的例程對性能進(jìn)行提升。未經(jīng) KleidiAI 優(yōu)化的系統的響應時(shí)間為 8 至 19 秒左右,相比之下,經(jīng) KleidiAI 優(yōu)化的小語(yǔ)言模型的推理響應時(shí)間為 1 至 3 秒。通過(guò)使用 KleidiAI,應用開(kāi)發(fā)時(shí)間縮短了 6 周,而且開(kāi)發(fā)者在開(kāi)發(fā)期間無(wú)需關(guān)注底層軟件的優(yōu)化。
Arm 虛擬硬件 (Arm Virtual Hardware) 支持訪(fǎng)問(wèn)許多 AWS 上的熱門(mén)物聯(lián)網(wǎng)開(kāi)發(fā)套件。當物理設備不可用,或者全球各地的團隊無(wú)法訪(fǎng)問(wèn)物理設備時(shí),在 Arm 虛擬硬件上進(jìn)行開(kāi)發(fā)和測試可節省嵌入式應用的開(kāi)發(fā)時(shí)間。AWS 在汽車(chē)虛擬平臺上成功測試了該演示應用,在演示中,Arm 虛擬硬件提供了樹(shù)莓派設備的虛擬實(shí)例。同樣的 KleidiAI 優(yōu)化也可用于 Arm 虛擬硬件。
這個(gè)在邊緣側設備上運行的生成式 AI 應用所具備的關(guān)鍵特性之一是,它能夠接收 OTA 無(wú)線(xiàn)更新,其中部分更新使用 AWS IoT Greengrass Lite 接收,從而確保始終向駕駛員提供最新信息。AWS IoT Greengrass Lite 在邊緣側設備上僅占用 5 MB 的 RAM,因此具有很高的內存效率。此外,該解決方案包含自動(dòng)質(zhì)量監控和反饋循環(huán),用于持續評估小語(yǔ)言模型響應的相關(guān)性和準確性。其中采用了一個(gè)比較系統,對超出預期質(zhì)量閾值的響應進(jìn)行標記,以進(jìn)行審核。然后,通過(guò) AWS 上的儀表板,以近乎實(shí)時(shí)的速度對收集到的反饋數據進(jìn)行可視化,使整車(chē)廠(chǎng)的質(zhì)保團隊能夠審核和確定需要改進(jìn)的方面,并根據需要發(fā)起更新。
這個(gè)由生成式 AI 提供支持的解決方案,所具備的優(yōu)勢不僅僅在于為駕駛員提供準確的信息。它還體現了 SDV 生命周期管理的范式轉變,實(shí)現了更持續的改進(jìn)周期,整車(chē)廠(chǎng)可以根據用戶(hù)交互來(lái)添加新內容,而小語(yǔ)言模型可以使用通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò )無(wú)縫部署的更新信息進(jìn)行微調。這樣一來(lái),通過(guò)保證最新的車(chē)輛信息,用戶(hù)體驗得以提升,此外整車(chē)廠(chǎng)也有機會(huì )向用戶(hù)介紹和指導新特性或可購買(mǎi)的附加功能。通過(guò)利用生成式 AI、物聯(lián)網(wǎng)和邊緣計算的強大功能,這個(gè)生成式 AI 應用可以起到汽車(chē)用戶(hù)向導的作用,其中展示的方法有助于在 SDV 時(shí)代實(shí)現更具連接性、信息化和適應性的駕駛體驗。
端到端的上層實(shí)現方案
下圖所示的解決方案架構用于對模型進(jìn)行微調、在 Arm 虛擬硬件上測試模型,以及將小語(yǔ)言模型部署到邊緣側設備,并且其中包含反饋收集機制。
圖:基于生成式 AI 的汽車(chē)用戶(hù)向導的解決方案架構圖
上圖中的編號對應以下內容:
1. 模型微調:AWS 演示應用開(kāi)發(fā)團隊選擇 TinyLlama-1.1B-Chat-v1.0 作為其基礎模型,該模型已針對會(huì )話(huà)任務(wù)進(jìn)行了預訓練。為了優(yōu)化駕駛員的汽車(chē)用戶(hù)向導聊天界面,團隊設計了言簡(jiǎn)意賅、重點(diǎn)突出的回復,以便適應駕駛員在行車(chē)時(shí)僅可騰出有限注意力的情況。團隊創(chuàng )建了一個(gè)包含 1,000 組問(wèn)答的自定義數據集,并使用 Amazon SageMaker Studio 進(jìn)行了微調。
2. 存儲:經(jīng)過(guò)調優(yōu)的小語(yǔ)言模型存儲在 Amazon Simple Storage Service (Amazon S3) 中。
3. 初始部署:小語(yǔ)言模型最初部署到基于 Ubuntu 的 Amazon EC2 實(shí)例。
4. 開(kāi)發(fā)和優(yōu)化:團隊在 EC2 實(shí)例上開(kāi)發(fā)并測試了生成式 AI 應用,使用 llama.cpp 進(jìn)行小語(yǔ)言模型量化,并應用了 Q4_0 方案。KleidiAI 優(yōu)化預先集成了 llama.cpp。與此同時(shí),模型還實(shí)現了大幅壓縮,將文件大小從 3.8 GB 減少至 607 MB。
5. 虛擬測試:將應用和小語(yǔ)言模型傳輸到 Arm 虛擬硬件的虛擬樹(shù)莓派環(huán)境進(jìn)行初始測試。
6. 虛擬驗證:在虛擬樹(shù)莓派設備中進(jìn)行全面測試,以確保功能正常。
7. 邊緣側部署:通過(guò)使用 AWS IoT Greengrass Lite,將生成式 AI 應用和小語(yǔ)言模型部署到物理樹(shù)莓派設備,并利用 AWS IoT Core 作業(yè)進(jìn)行部署管理。
8. 部署編排:AWS IoT Core 負責管理部署到邊緣側樹(shù)莓派設備的任務(wù)。
9. 安裝過(guò)程:AWS IoT Greengrass Lite 處理從 Amazon S3 下載的軟件包,并自動(dòng)完成安裝。
10. 用戶(hù)界面:已部署的應用在邊緣側樹(shù)莓派設備上為最終用戶(hù)提供基于語(yǔ)音的交互功能。
11. 質(zhì)量監控:生成式 AI 應用實(shí)現對用戶(hù)交互的質(zhì)量監控。數據通過(guò) AWS IoT Core 收集,并通過(guò) Amazon Kinesis Data Streams 和 Amazon Data Firehose 處理,然后存儲到 Amazon S3。整車(chē)廠(chǎng)可通過(guò) Amazon QuickSight 儀表板來(lái)監控和分析數據,及時(shí)發(fā)現并解決任何小語(yǔ)言模型質(zhì)量問(wèn)題。
接下來(lái)將深入探討 KleidiAI 及該演示采用的量化方案。
Arm KleidiAI
Arm KleidiAI 是專(zhuān)為 AI 框架開(kāi)發(fā)者設計的開(kāi)源庫。它為 Arm CPU 提供經(jīng)過(guò)優(yōu)化的性能關(guān)鍵例程。該開(kāi)源庫最初于 2024 年 5 月推出,現在可為各種數據類(lèi)型的矩陣乘法提供優(yōu)化,包括 32 位浮點(diǎn)、Bfloat16 和 4 位定點(diǎn)等超低精度格式。這些優(yōu)化支持多項 Arm CPU 技術(shù),比如用于 8 位計算的 SDOT 和 i8mm,以及用于 32 位浮點(diǎn)運算的 MLA。
憑借四個(gè) Arm Cortex-A76 核心,樹(shù)莓派 5 演示使用了 KleidiAI 的 SDOT 優(yōu)化,SDOT 是最早為基于 Arm CPU 的 AI 工作負載設計的指令之一,它在 2016 年發(fā)布的 Armv8.2-A 中推出。
SDOT 指令也顯示了 Arm 持續致力于提高 CPU 上的 AI 性能。繼 SDOT 之后,Arm 針對 CPU 上運行 AI 逐步推出了新指令,比如用于更高效 8 位矩陣乘法的 i8mm 和 Bfloat16 支持,以期提高 32 位浮點(diǎn)性能,同時(shí)減半內存使用。
對于使用樹(shù)莓派 5 進(jìn)行的演示,通過(guò)按塊量化方案,利用整數 4 位量化(也稱(chēng)為 llama.cpp 中的 Q4_0)來(lái)加速矩陣乘法,KleidiAI 扮演關(guān)鍵作用。
llama.cpp 中的 Q4_0 量化格式
llama.cpp 中的 Q4_0 矩陣乘法包含以下組成部分:
· 左側 (LHS) 矩陣,以 32 位浮點(diǎn)值的形式存儲激活內容。
· 右側 (RHS) 矩陣,包含 4 位定點(diǎn)格式的權重。在該格式中,量化尺度應用于由 32 個(gè)連續整數 4 位值構成的數據塊,并使用 16 位浮點(diǎn)值進(jìn)行編碼。
因此,當提到 4 位整數矩陣乘法時(shí),它特指用于權重的格式,如下圖所示:
在這個(gè)階段,LHS 和 RHS 矩陣均不是 8 位格式,KleidiAI 如何利用專(zhuān)為 8 位整數點(diǎn)積設計的 SDOT 指令?這兩個(gè)輸入矩陣都必須轉換為 8 位整數值。
對于 LHS 矩陣,在矩陣乘法例程之前,還需要一個(gè)額外的步驟:動(dòng)態(tài)量化為 8 位定點(diǎn)格式。該過(guò)程使用按塊量化方案將 LHS 矩陣動(dòng)態(tài)量化為 8 位,其中,量化尺度應用于由 32 個(gè)連續 8 位整數值構成的數據塊,并以 16 位浮點(diǎn)值的形式存儲,這與 4 位量化方法類(lèi)似。
動(dòng)態(tài)量化可最大限度降低準確性下降的風(fēng)險,因為量化尺度因子是在推理時(shí)根據每個(gè)數據塊中的最小值和最大值計算得出的。與該方法形成對比的是,靜態(tài)量化的尺度因子是預先確定的,保持不變。
對于 RHS 矩陣,在矩陣乘法例程之前,無(wú)需額外步驟。事實(shí)上,4 位量化充當壓縮格式,而實(shí)際計算是以 8 位進(jìn)行的。因此,在將 4 位值傳遞給點(diǎn)積指令之前,首先將其轉換為 8 位。從 4 位轉換為 8 位的計算成本并不高,因為只需進(jìn)行簡(jiǎn)單的移位/掩碼運算即可。
既然轉換效率如此高,為什么不直接使用 8 位,省去轉換的麻煩?
使用 4 位量化有兩個(gè)關(guān)鍵優(yōu)勢:
· 縮小模型尺寸:由于 4 位值所需的內存只有 8 位值的一半,因此這對可用 RAM 有限的平臺尤其有益。
· 提升文本生成性能:文本生成過(guò)程依賴(lài)于一系列矩陣向量運算,這些運算通常受內存限制。也就是說(shuō),性能受限于內存和處理器之間的數據傳輸速度,而不是處理器的計算能力。由于內存帶寬是一個(gè)限制因素,縮小數據大小可最大限度減少內存流量,從而顯著(zhù)提高性能。
如何結合使用 KleidiAI 與 llama.cpp?
非常簡(jiǎn)單,KleidiAI 已集成到 llama.cpp 中。因此,開(kāi)發(fā)者不需要額外的依賴(lài)項就能充分發(fā)揮 Armv8.2 及更新架構版本的 Arm CPU 性能。
兩者的集成意味著(zhù),在移動(dòng)設備、嵌入式計算平臺和基于 Arm 架構處理器的服務(wù)器上運行 llama.cpp 的開(kāi)發(fā)者,現在可以體驗到更好的性能。
除了 llama.cpp,還有其他選擇嗎?
對于在 Arm CPU 上運行大語(yǔ)言模型,雖然 llama.cpp 是一個(gè)很好的選擇,但開(kāi)發(fā)者也可以使用其他采用了 KleidiAI 優(yōu)化的高性能生成式 AI 框架。例如(按首字母順序排列):ExecuTorch、MediaPipe、MNN 和 PyTorch。只需選擇最新版本的框架即可。
因此,如果開(kāi)發(fā)者正考慮在 Arm CPU 上部署生成式 AI 模型,探索以上框架有助于實(shí)現性能和效率的優(yōu)化。
總結
SDV 和生成式 AI 的融合,正在共同開(kāi)創(chuàng )一個(gè)新的汽車(chē)創(chuàng )新時(shí)代,使得未來(lái)的汽車(chē)變得更加智能化,更加以用戶(hù)為中心。文中介紹的車(chē)載生成式 AI 應用演示由 Arm KleidiAI 進(jìn)行優(yōu)化并由 AWS 所提供的服務(wù)進(jìn)行支持,展示了新興技術(shù)如何幫助解決汽車(chē)行業(yè)的實(shí)際挑戰。該解決方案可實(shí)現 1 至 3 秒的響應時(shí)間并將開(kāi)發(fā)時(shí)間縮短數周,證明更高效且離線(xiàn)可用的生成式 AI 應用不僅能夠實(shí)現,而且非常適合車(chē)載部署。
汽車(chē)技術(shù)的未來(lái)在于打造無(wú)縫融合邊緣計算、物聯(lián)網(wǎng)功能和 AI 的解決方案。隨著(zhù)汽車(chē)不斷演變且軟件越來(lái)越復雜,潛在解決方案(比如本文介紹的解決方案)將成為彌合先進(jìn)汽車(chē)功能與用戶(hù)理解間差距的關(guān)鍵。