從蘋果智能看端上大模型應(yīng)用
原創(chuàng)將生成式人工智能集成到邊緣設(shè)備本身就是一個(gè)重大挑戰(zhàn),我們需要在智能手機(jī)和計(jì)算機(jī)有限的計(jì)算能力和內(nèi)存范圍內(nèi)高效地運(yùn)行高級模型。確保這些模型運(yùn)行迅速,而不會耗盡電池壽命或使設(shè)備過熱,端上的局限增加了大模型應(yīng)用的復(fù)雜性。此外,保護(hù)用戶隱私至關(guān)重要,需要 AI 在不依賴云服務(wù)器的情況下在本地處理數(shù)據(jù)。
今年,蘋果已經(jīng)通過引入蘋果智能來應(yīng)對這些挑戰(zhàn)。這個(gè)新系統(tǒng)將復(fù)雜的人工智能直接帶到設(shè)備上,同時(shí)保持高隱私標(biāo)準(zhǔn)。透過蘋果智能, 我們或許可以進(jìn)一步探索端上大模型應(yīng)用的實(shí)現(xiàn)路徑。
1.蘋果智能的核心特征
蘋果智能的核心特征是為蘋果設(shè)備賦能了高生產(chǎn)力的能力工具,并且提升了Siri 的AI 能力。
1.1 提高生產(chǎn)力的人工智能工具
像 iPhone、 iPad 和 Mac 這樣的蘋果設(shè)備現(xiàn)在配備了一系列以人工智能為動力的工具,旨在提高生產(chǎn)力和創(chuàng)造力。例如:
- 寫作與溝通: 蘋果的預(yù)測性文本功能已經(jīng)進(jìn)化到可以更好地理解上下文,并提供更準(zhǔn)確的建議。這使得寫電子郵件或信息更快,更直觀。此外,人工智能與通信應(yīng)用程序集成,根據(jù)收到的信息建議回應(yīng),節(jié)省時(shí)間,并提高了溝通的質(zhì)量。
- 圖像創(chuàng)建和編輯: 照片應(yīng)用程序使用先進(jìn)的機(jī)器學(xué)習(xí)來智能組織照片和建議編輯。對于創(chuàng)作者來說,像照片和視頻中的實(shí)時(shí)文本這樣的功能使用人工智能來檢測圖像中的文本,允許用戶像輸入文本一樣與文本進(jìn)行交互。這對于快速提取信息而無需手動輸入數(shù)據(jù)特別有用。
1.2 讓 Siri 具備先進(jìn)的人工智能能力
Siri 的人工智能能力得到了重大提升,使其比以往更加智能化和多功能化。這些改進(jìn)旨在使 Siri 成為各種蘋果設(shè)備上更積極主動、更有幫助的助手。
- 豐富的語言理解能力: Siri 理解和處理自然語言的能力得到了顯著的提高。這種改進(jìn)使 Siri 能夠處理更復(fù)雜的查詢,并提供更準(zhǔn)確的響應(yīng),模仿用戶之間更自然的對話流程。
- 屏幕感知: Siri 現(xiàn)在能夠根據(jù)屏幕上顯示的內(nèi)容來理解上下文。這個(gè)特性允許用戶提出與當(dāng)前正在查看的內(nèi)容相關(guān)的請求,而無需過于具體,從而使交互更加順暢和直觀。
- 跨應(yīng)用程序行動: 也許最重要的更新之一是 Siri 增強(qiáng)了在多個(gè)應(yīng)用程序間執(zhí)行操作的能力。例如,可以讓 Siri 通過一個(gè)拼車應(yīng)用程序預(yù)訂車程,然后通過一個(gè)消息應(yīng)用程序?qū)㈩A(yù)計(jì)到達(dá)時(shí)間發(fā)送給一個(gè)朋友,所有這些都是通過語音命令。
這種跨不同平臺和服務(wù)的集成水平簡化了復(fù)雜的任務(wù),使 Siri 成為多任務(wù)處理的強(qiáng)大工具。
2. 蘋果智能背后的技術(shù)創(chuàng)新
蘋果在其設(shè)備上對人工智能能力的戰(zhàn)略部署,得到了確保性能和用戶隱私得到優(yōu)化的重大技術(shù)創(chuàng)新的支持。這些進(jìn)步在其雙模型結(jié)構(gòu)、新的后訓(xùn)練算法的應(yīng)用以及提高效率和準(zhǔn)確性的各種優(yōu)化技術(shù)方面尤為明顯。
2.1 雙模型架構(gòu): 平衡在設(shè)備和基于服務(wù)器的處理
蘋果采用了一種稱為雙模型架構(gòu)的復(fù)雜方法,以最大限度地提高人工智能應(yīng)用的性能和效率。這個(gè)架構(gòu)巧妙地將任務(wù)劃分為設(shè)備上處理和基于服務(wù)器的資源,利用每個(gè)環(huán)境的優(yōu)勢:
- 端上處理: 這是為需要立即響應(yīng)或涉及必須保留在設(shè)備上的敏感數(shù)據(jù)的任務(wù)設(shè)計(jì)的。設(shè)備上的模型是一個(gè)約30億參數(shù)的語言模型,經(jīng)過微調(diào)可以有效地執(zhí)行任務(wù)。這個(gè)模型擅長于書寫和提煉文本,匯總通知,創(chuàng)建圖像,以及其他任務(wù),確??焖俸拓?fù)責(zé)任的人工智能交互
- 基于服務(wù)器的處理: 更復(fù)雜或者時(shí)間敏感性更低的任務(wù)在云中處理,蘋果可以在云中使用更強(qiáng)大的計(jì)算資源。這種設(shè)置用于 Siri 基于深度學(xué)習(xí)的語音識別等任務(wù),在這些任務(wù)中,可以快速分析大量數(shù)據(jù)集,以便更有效地理解和預(yù)測用戶查詢。
這兩個(gè)處理之間的協(xié)同作用使蘋果能夠優(yōu)化性能和電池壽命,同時(shí)保持強(qiáng)大的數(shù)據(jù)隱私保護(hù)。
2.2 新穎的后訓(xùn)練算法
在最初的模型訓(xùn)練之后,蘋果已經(jīng)實(shí)施了后訓(xùn)練算法,以增強(qiáng)其 AI 模型的指令跟蹤能力。這些算法提高了模型更精確地理解和執(zhí)行用戶命令的能力,顯著改善了用戶體驗(yàn)。
Teacher Committee拒絕抽樣微調(diào)算法(Rejection Sampling Fine-Tuning Algorithm )
在后訓(xùn)練階段采用的創(chuàng)新算法之一是拒絕采樣微調(diào)算法,這種技術(shù)利用多個(gè)專家模型(Teacher)的見解來監(jiān)督人工智能的微調(diào)。這個(gè)committee 確保人工智能只采用最有效的行為和反應(yīng),提高了它準(zhǔn)確和有效地遵循指令的能力。這導(dǎo)致了一個(gè)完善的學(xué)習(xí)過程,通過強(qiáng)化預(yù)期的結(jié)果來提高性能。
人工反饋的強(qiáng)化學(xué)習(xí)算法(RLHF)
另一個(gè)基石來自RLHF。這種技術(shù)將人類的洞察力集成到人工智能訓(xùn)練循環(huán)中,利用最小下降策略優(yōu)化并采用留一法優(yōu)勢估計(jì)器。通過這種方法,人工智能直接從人工反饋中學(xué)習(xí),不斷地調(diào)整和完善自己的響應(yīng)。這不僅提高了人工智能的準(zhǔn)確性,而且確保其產(chǎn)出具有上下文相關(guān)性并真正有用。RLHF 算法有助于人工智能的輸出與人類偏好保持一致,使每個(gè)交互更加直觀和有效。
糾錯算法
這些算法的目的是從識別部署后的錯誤中學(xué)習(xí)。通過不斷分析交互,模型自我改進(jìn),隨著時(shí)間的推移,對用戶查詢提供越來越準(zhǔn)確的響應(yīng)。
2.3 邊緣器件的優(yōu)化技術(shù)
為了確保人工智能模型在硬件有限的邊緣設(shè)備上表現(xiàn)良好,蘋果開發(fā)了幾種優(yōu)化技術(shù),提高了效率和準(zhǔn)確性:
- Low-Bit Palletization: 這項(xiàng)技術(shù)包括減少人工智能模型所使用的數(shù)據(jù)的位寬度。通過將數(shù)據(jù)轉(zhuǎn)換成低位格式,所需的內(nèi)存量減少,從而顯著加快計(jì)算速度,同時(shí)保持準(zhǔn)確性。這對于處理能力或電池壽命有限的設(shè)備尤其重要。
- 共享嵌入張量: 蘋果使用共享嵌入張量來減少人工智能模型不同部分相似數(shù)據(jù)的重復(fù)。通過共享嵌入,模型可以通過重用相似類型數(shù)據(jù)的學(xué)習(xí)表示來更有效地運(yùn)行。這不僅減少了模型的內(nèi)存占用,而且加快了邊緣設(shè)備上的處理時(shí)間。
這些技術(shù)策略是蘋果致力于平衡性能、效率和隱私的更廣泛承諾的一部分。通過不斷推進(jìn)這些領(lǐng)域,蘋果確保其設(shè)備不僅功能強(qiáng)大、智能化,而且在數(shù)據(jù)完整性和安全性方面得到用戶的信任。
此外,蘋果還特別強(qiáng)調(diào)了用戶隱私。蘋果的方法圍繞著專利技術(shù)展開,這些技術(shù)可以在不損害隱私的前提下增強(qiáng)用戶體驗(yàn)。通過采用雙模型架構(gòu),蘋果公司利用其 M 系列芯片的功能,確保面部識別和個(gè)人數(shù)據(jù)處理等敏感操作完全在設(shè)備上進(jìn)行。這種方法不僅可以通過減少延遲來提高性能,而且還可以通過最小化數(shù)據(jù)公開來增強(qiáng)用戶的信任。
蘋果的戰(zhàn)略還包括與其他合作伙伴整合,例如 OpenAI, 允許用戶直接從他們的設(shè)備訪問 ChatGPT。這種集成可以作為第三方設(shè)備上的AI應(yīng)用生態(tài),增強(qiáng)用戶體驗(yàn),并擴(kuò)大蘋果的生態(tài)系統(tǒng)。這個(gè)策略不僅僅是為了提高蘋果設(shè)備的性能,也是為了確保你對你的數(shù)據(jù)處理方式感到安全和自信。
通過蘋果智能可以看到,在智能手機(jī)、物聯(lián)網(wǎng)設(shè)備和嵌入式系統(tǒng)等邊緣設(shè)備上部署 LLM 應(yīng)用程序可以帶來顯著的好處,包括減少延遲、增強(qiáng)隱私和離線功能等。那么, 在端設(shè)備上部署大模型應(yīng)用有什么一般方法么?
3. 端設(shè)備的AI 應(yīng)用考量
端設(shè)備是在生成數(shù)據(jù)的位置執(zhí)行數(shù)據(jù)處理的硬件設(shè)備,例如智能手機(jī)、物聯(lián)網(wǎng)設(shè)備和嵌入式系統(tǒng)。與云計(jì)算相比,邊緣計(jì)算提供了幾個(gè)優(yōu)勢,例如減少延遲、增強(qiáng)隱私以及離線操作的能力。然而,在邊緣設(shè)備上部署應(yīng)用程序存在挑戰(zhàn),包括有限的計(jì)算資源和功耗限制。
在部署設(shè)備上的 AI 應(yīng)用程序之前,可能需要考慮以下兩個(gè)因素:
- 應(yīng)用用例和需求: 理解 LLM 應(yīng)用的特定用例及其性能需求。這有助于選擇合適的模型和優(yōu)化技術(shù)。
- 數(shù)據(jù)隱私和安全: 確保部署符合數(shù)據(jù)隱私和安全規(guī)則,特別是在處理邊緣設(shè)備上的敏感信息時(shí)。
為邊緣部署選擇正確的語言模型需要平衡性能和資源限制,以下是需要考慮的關(guān)鍵因素:
- 模型大小和復(fù)雜度: 較小的模型通常更適合于邊緣設(shè)備。這些設(shè)備的計(jì)算能力有限,所以一個(gè)更輕的模型確保更順利的操作。選擇那些在尺寸和性能之間取得平衡的型號,使它們在不犧牲太多精確性的情況下有效率。
- 性能要求: 選擇的模型必須滿足應(yīng)用程序的準(zhǔn)確性和響應(yīng)性需求,這意味著它應(yīng)該能夠迅速交付精確的結(jié)果。雖然邊緣設(shè)備可能無法處理最大的模型,但是要確保所選的 LLM 足夠有效,以便在目標(biāo)設(shè)備上有效運(yùn)行。優(yōu)先考慮為速度和資源使用而優(yōu)化的模型,同時(shí)不影響產(chǎn)出質(zhì)量。
總之,用于設(shè)備上 AI 部署的正確語言模型應(yīng)該緊湊而強(qiáng)大,并且適合應(yīng)用程序的特定性能需求。平衡這些因素是成功部署的關(guān)鍵。
4. 端設(shè)備上的模型優(yōu)化技術(shù)
對有效地在端上部署大模型應(yīng)用而言,大模型優(yōu)化技術(shù)舉足輕重。
1. 量化
量化降低了模型權(quán)重的精度。通過使用較低的精度(例如,將32位浮點(diǎn)數(shù)轉(zhuǎn)換為8位整數(shù)) ,內(nèi)存使用和計(jì)算需求顯著降低。這種減少導(dǎo)致了更快的推斷和更低的功耗,使量子化成為在邊緣設(shè)備上部署 LLM 的流行技術(shù)。
2. 裁剪
裁剪涉及刪除模型中多余或不太重要的神經(jīng)元和連接。通過消除這些部分,模型的大小減少,導(dǎo)致更快的推理時(shí)間和更低的資源消耗。修剪有助于維護(hù)模型性能,同時(shí)提高邊緣部署的效率和可管理性。
3. 知識蒸餾
在這種技術(shù)中,一個(gè)較小的模型(學(xué)生)被訓(xùn)練來模仿一個(gè)更大、更復(fù)雜的模型(老師)的行為。學(xué)生模型學(xué)習(xí)復(fù)制教師模型的輸出,保留大部分原始的準(zhǔn)確性,同時(shí)更有效率。這種方法允許在邊緣設(shè)備上部署緊湊、高性能的模型。
4. LoRA和 QLoRA
LoRA(解讀LoRA)及其變體 QLoRA 是為了在保持性能的同時(shí)對模型進(jìn)行自適應(yīng)和壓縮而設(shè)計(jì)的技術(shù)。LoRA 包括將模型的權(quán)矩陣分解為低維矩陣,減少參數(shù)的數(shù)量而不顯著影響精度。QLoRA 進(jìn)一步量化這些低維矩陣,提高效率。這些方法支持在資源受限的邊緣設(shè)備上部署健壯的模型。
圖片
5. 端設(shè)備的軟硬件要求
端上的大模型應(yīng)用需要特定的硬件和軟件能力,以確保順利和有效的操作。
5.1 硬件要求
要順利地在設(shè)備上運(yùn)行 AI 應(yīng)用程序,需要確保硬件符合某些標(biāo)準(zhǔn):
- 計(jì)算能力: 設(shè)備應(yīng)該有一個(gè)強(qiáng)大的處理器,有多個(gè)核,以處理 LLM 推理的需求。具有專門 AI 加速器的設(shè)備,如 GPU 或 NPU,是非常有益的。
- 內(nèi)存: 足夠的 RAM 是至關(guān)重要的,因?yàn)?LLM 需要大量的內(nèi)存來加載和處理數(shù)據(jù)。內(nèi)存有限的設(shè)備可能很難運(yùn)行更大的模型。
- 存儲: 需要足夠的存儲容量來存儲模型和任何相關(guān)數(shù)據(jù)。閃存或 SSD 更適合于更快的讀寫速度。
5.2 軟件工具和框架
正確的軟件工具和框架對于在設(shè)備上部署 AI 至關(guān)重要。這些工具有助于模型優(yōu)化、部署和推理。主要工具和框架包括:
- TensorFlow Lite: 為移動和邊緣設(shè)備設(shè)計(jì)的 TensorFlow 的輕量級版本。它對模型的大小和延遲進(jìn)行了優(yōu)化,使其適合于資源受限的環(huán)境。
- ONNX 運(yùn)行時(shí): 一個(gè)開源運(yùn)行時(shí),允許在多個(gè)平臺上有效地運(yùn)行在各種框架中訓(xùn)練的模型。它支持廣泛地優(yōu)化,以提高邊緣設(shè)備的性能。
- PyTorch Mobile: 專為移動和嵌入式設(shè)備定制的 PyTorch 版本。它提供了優(yōu)化和部署模型的工具,確保它們在邊緣高效運(yùn)行。
- AI SDK: 許多硬件制造商提供專門的 SDK 用于在他們的設(shè)備上部署人工智能模型。這些 SDK 針對硬件進(jìn)行了優(yōu)化,并為模型部署和管理提供了額外的工具。
6. 端上的大模型應(yīng)用部署策略
從AI工程師的角度來看,在端設(shè)備上部署大模型帶來了獨(dú)特的挑戰(zhàn)和機(jī)遇。有效的部署策略對于確保最佳性能、資源管理和用戶體驗(yàn)至關(guān)重要,可能有三種主要策略: 端上推理、混合推理和模型分區(qū)。
6.1 端上推理
端上推理涉及到直接在邊緣設(shè)備上運(yùn)行整個(gè) LLM。這種方法提供了幾個(gè)重要的優(yōu)勢,特別是在 LLM 應(yīng)用程序的延遲、隱私和脫機(jī)能力方面。
端上推理消除了與遠(yuǎn)程服務(wù)器交互所需要的響應(yīng)時(shí)間。這對于諸如語音助手和交互式用戶界面等實(shí)時(shí)應(yīng)用程序至關(guān)重要。通過在本地運(yùn)行模型,應(yīng)用程序可以在沒有 Internet 連接的情況下運(yùn)行。這對于遠(yuǎn)程地區(qū)或連接不可靠的場景非常重要。同時(shí),減少了傳輸過程中數(shù)據(jù)泄露的風(fēng)險(xiǎn)。這對于醫(yī)療保健或金融服務(wù)等敏感應(yīng)用程序尤其重要。
與云服務(wù)相比,端設(shè)備通常具有有限的計(jì)算能力、內(nèi)存和存儲空間。工程師必須優(yōu)化模型以適應(yīng)這些約束條件,同時(shí)不顯著影響性能。密集的計(jì)算可以快速耗盡電池壽命,特別是在便攜式設(shè)備上。
平衡性能和能源效率至關(guān)重要,諸如量化、裁剪和蒸餾等技術(shù)對于減少模型的大小和計(jì)算需求是必不可少的。利用類似 TensorFlow Lite 或 PyTorch Mobile 這樣的框架,這些框架針對移動和嵌入式設(shè)備進(jìn)行了優(yōu)化,可以顯著提高性能。
6.2 混合推理
混合推理利用端資源和云資源來平衡性能和資源約束。該策略包括在邊緣設(shè)備上運(yùn)行模型的一部分,以及在云服務(wù)器上運(yùn)行模型的一部分。通過將資源密集型計(jì)算卸載到云中,混合推理減輕了邊緣設(shè)備的負(fù)擔(dān),從而能夠部署更復(fù)雜的模型??梢愿鶕?jù)需求動態(tài)擴(kuò)展云資源,為不同的工作負(fù)載提供靈活性和健壯性。即時(shí)的、對延遲敏感的任務(wù)可以在本地處理,而更復(fù)雜的處理可以由云處理。
混合推理的性能取決于網(wǎng)絡(luò)連接的質(zhì)量和可靠性。網(wǎng)絡(luò)延遲或中斷會影響用戶體驗(yàn)。把數(shù)據(jù)傳送到云端會構(gòu)成私隱風(fēng)險(xiǎn),要確保數(shù)據(jù)傳輸和儲存的安全。
工程師需要從策略上對模型進(jìn)行分割,確定哪些部分應(yīng)該在邊緣運(yùn)行,哪些部分應(yīng)該在云中運(yùn)行。最小化邊緣和云之間傳輸?shù)臄?shù)據(jù)量,以減少延遲和帶寬使用。數(shù)據(jù)壓縮和智能緩存等技術(shù)可能是有益的。需要實(shí)現(xiàn)降級機(jī)制,以優(yōu)雅地處理網(wǎng)絡(luò)故障,確保應(yīng)用程序在連接丟失時(shí)仍能正常工作。
6.3 模型分區(qū)
模型分區(qū)涉及到將 LLM 分割成更小的、可管理的段,這些段可以分布在多個(gè)設(shè)備或環(huán)境中。這種方法可以提高效率和可伸縮性。通過將模型分布在不同的設(shè)備上,平衡了計(jì)算負(fù)載,使得在資源受限的邊緣設(shè)備上運(yùn)行更復(fù)雜的模型成為可能。模型的不同部分可以獨(dú)立優(yōu)化,允許基于每個(gè)設(shè)備的能力進(jìn)行定制優(yōu)化。模型分區(qū)促進(jìn)了可伸縮性,支持跨不同硬件配置部署大型模型。
對模型進(jìn)行分區(qū)需要仔細(xì)的規(guī)劃和工程設(shè)計(jì),以確保各部分之間的無縫集成和通信。不同模型段之間的通信會引入延遲。工程師必須優(yōu)化段間通信以盡量減少這種開銷。確保模型段之間的一致性和同步對于維護(hù)整個(gè)模型的性能和準(zhǔn)確性變得非常重要。
一般地,需要確定模型中的邏輯點(diǎn),在這些邏輯點(diǎn)中可以對模型進(jìn)行分區(qū),而不會造成顯著的性能損失。這可能涉及根據(jù)計(jì)算需求分離不同的層或組件。使用有效的通信協(xié)議,以盡量減少延遲,并確??煽康臄?shù)據(jù)傳輸之間的模型段。根據(jù)每個(gè)設(shè)備的能力優(yōu)化資源分配,確保每個(gè)段有效運(yùn)行。
6.4 實(shí)現(xiàn)端上大模型的一般步驟
在端設(shè)備上部署大模型應(yīng)用的一般步驟如下:
- 準(zhǔn)備開發(fā)環(huán)境: 為開發(fā)建立必要的工具和框架。
- 優(yōu)化模型: 應(yīng)用優(yōu)化技術(shù)使模型適合邊緣部署。
- 與邊緣設(shè)備軟件集成: 確保模型可以與設(shè)備的軟件和硬件交互。
- 測試和驗(yàn)證: 在邊緣設(shè)備上對模型進(jìn)行徹底測試,以確保其滿足性能和準(zhǔn)確性要求。
- 部署和監(jiān)視: 將模型部署到端設(shè)備并監(jiān)視其性能,根據(jù)需要進(jìn)行調(diào)整。
7. 一句話小結(jié)
端上的 AI 應(yīng)用可以通過提供快速、高效和私有 AI 功能來顯著提高用戶體驗(yàn),利用優(yōu)化技術(shù)和部署策略,我們可以嘗試在端上成功地實(shí)現(xiàn)大模型應(yīng)用,蘋果智能為我們提供了有益的參考。