天天看點

蘋果為什麼要用小模型?

作者:新智元

編輯:alan

【新智元導讀】WWDC 2024上,蘋果推出了Apple Intelligence,向大家展示了如何開發、訓練出功能強大、快速且節能的模型,如何根據特定使用者需求進行微調,以及如何評估模型的性能。

在WWDC 2024上,蘋果重新定義了AI——Apple Intelligence。

這是一款深度內建到iOS 18、iPadOS 18和macOS Sequoia中的個人智能系統。

與其他科技大廠不同的是,「蘋果牌」AI并沒有奉行「越大越好」的宗旨。

蘋果為什麼要用小模型?

相反,蘋果的态度更加務實,優先考慮使用者體驗,更強調AI模型的定制化。

将生成式AI無縫融入作業系統,——從某種意義上來說,這是一種非常「蘋果」的做法。

Apple Intelligence由多個功能強大的生成模型組成,這些模型專門用于使用者的日常任務,可以即時适應使用者目前的活動。

蘋果為什麼要用小模型?

Apple Intelligence内置的基礎模型針對使用者體驗進行了微調,例如編寫和優化文本、摘要、确定通知的優先級、為對話建立有趣的圖像,以及簡化跨App的互動。

蘋果傾向于利用裝置端的小模型搞定這些事情,當然使用者也可以選擇使用ChatGPT等第三方的服務,但這時資料方面的責任就跟蘋果沒有關系了。

蘋果着重介紹了其中兩個模型:一個約30億參數的裝置端語言模型,以及一個更大的基于伺服器的語言模型(可通過私有雲計算在蘋果伺服器上運作)。

Keep Small

蘋果為什麼要用小模型?

蘋果基礎模型概覽

預訓練

蘋果的基礎模型是在AXLearn架構上訓練的。

蘋果為什麼要用小模型?

AXLearn是蘋果在2023年釋出的一個開源項目,它建立在JAX和XLA之上,使蘋果能夠在各種訓練硬體和雲平台上以高效率和可擴充性訓練模型,包括TPU、雲端和本地GPU。

蘋果結合使用資料并行、張量并行、序列并行和完全分片資料并行 (FSDP)來沿資料、模型和序列長度等多個次元擴充訓練。

蘋果使用網絡爬蟲AppleBot來收集公開可用的資料,——如果Web釋出者不希望自己的内容被Apple Intelligence用于訓練,蘋果也提供了各種粒度的控制方案。

蘋果為什麼要用小模型?

蘋果表示,在訓練基礎模型時,從不使用使用者的私人個人資料或使用者互動,并且蘋果應用過濾器來删除網際網路上公開的個人身份資訊(比如社會保險和信用卡号)。

除了過濾之外,蘋果還通過資料提取、重複資料删除和基于模型的分類器的應用,以識别高品質的文檔。

後處理

衆所周知,資料品質對于模型的成功至關重要。

蘋果在訓練管道中使用混合資料政策,結合人工注釋和合成資料,并執行徹底的資料管理和過濾程式。

蘋果在後處理階段開發了兩種新穎的算法:

1. 拒絕抽樣微調算法(rejection sampling fine-tuning algorithm);

2. 基于人類回報的強化學習(RLHF)算法,采用鏡像下降政策優化和留一法優勢估計器(leave-one-out advantage estimator)。

蘋果為什麼要用小模型?

這兩種算法可以顯著提高模型的指令遵循品質。

優化

除了確定生成模型具有強大功能外,蘋果還使用了一系列創新技術在裝置上和私有雲上對其進行優化,以提高速度和效率。

裝置端模型和伺服器模型都使用分組查詢注意力(grouped-query-attention),來優化其推理性能。

蘋果為什麼要用小模型?

蘋果使用共享的輸入和輸出詞彙表,來降低記憶體需求和推理成本,保證了共享嵌入張量的映射沒有重複。

裝置端模型使用49K的詞彙大小,而伺服器模型使用100K的詞彙大小。

對于裝置端推理,蘋果使用low-bit palletization,來滿足必要的記憶體、功耗和性能要求。

蘋果為什麼要用小模型?

為了保持模型品質,蘋果開發了一個使用LoRA擴充卡的新架構,混合使用2比特和4比特的配置政策(平均每個權重3.5比特),以實作與未壓縮模型相同的精度。

此外,蘋果還使用互動式模型延遲和功耗分析工具Talaria來更好地指導每個操作的比特率選擇。

蘋果為什麼要用小模型?

利用激活量化和嵌入量化,可以在蘋果的神經引擎上實作高效的鍵值緩存(KV cache)更新。

通過上面的這些優化,iPhone 15 Pro能夠達到約0.6毫秒的延遲,以及每秒30個token的生成速率。

擴充卡

蘋果的基礎模型針對使用者的日常活動進行了微調,可以動态地專注于手頭的任務。

做法是将小型神經網絡作為子產品(擴充卡,adapter),插入到預訓練模型的各個層中,以實作針對特定任務的微調。

蘋果為什麼要用小模型?

此外,蘋果調整了注意力矩陣、注意力投影矩陣和前饋網絡中的全連接配接層,以适應Transformer架構的的解碼層。

通過僅微調擴充卡層,基本預訓練模型的原始參數保持不變,進而保留模型的一般知識,同時又能支援特定任務。

Apple Intelligence包含一組廣泛的擴充卡,這是擴充基礎模型功能的有效方法。

蘋果為什麼要用小模型?

蘋果使用16位表示擴充卡參數的值,對于30億個參數的裝置模型,16級擴充卡的參數通常需要10兆位元組。

擴充卡模型可以動态加載、臨時緩存在記憶體中并進行交換,保證了作業系統的響應能力。

性能評估

因為使用者體驗是最高優先級,是以在對模型進行基準測試時,蘋果專注于人工評估。

摘要

蘋果的訓練資料基于從更大的伺服器模型生成的合成摘要,并通過拒絕抽樣政策進行過濾,僅保留高品質的摘要。

為了評估特定于産品的摘要,這裡使用一組750個響應,針對每個用例進行了仔細抽樣。

評估資料集涵蓋了蘋果的産品功能在生産中可能面臨的各種輸入,包括不同内容類型和長度的單個文檔和堆疊文檔的分層組合。

另外,評估摘要功能也要考慮到一些固有風險,比如,模型偶爾會忽略掉一些重要的細節。

蘋果為什麼要用小模型?

根據評分者在五個次元上的打分,摘要被分類為好、中、差。

實驗結果表明,與同類模型相比,帶有擴充卡的模型可以生成更好的摘要。

并且在超過99%的針對性對抗性示例中,摘要擴充卡并沒有放大敏感内容。

基礎功能

對于裝置端和伺服器模型的一般功能,蘋果利用一套全面的真實世界提示來評估通用模型的功能。

這些提示在不同的難度級别上各不相同,涵蓋頭腦風暴、分類、封閉式問答、編碼、提取、數學推理、開放式問答、重寫、安全、總結和寫作等主要類别。

将蘋果的模型與開源模型(Phi-3、Gemma、Mistral、DBRX)和類似規模的商業模型(GPT-3.5-Turbo、GPT-4-Turbo)進行比較。

蘋果為什麼要用小模型?

實驗表明,與大多數競品相比,蘋果的模型更受人工評分師的青睐。

蘋果的3B裝置端模型性能優于Phi-3-mini、Mistral-7B和Gemma-7B等大型模型;而蘋果的伺服器模型也要優于DBRX-Instruct、Mixtral-8x22B和GPT-3.5-Turbo,同時效率更高。

安全性

蘋果使用一組不同的對抗性提示來測試模型在有害内容、敏感主題和事實性方面的表現。

測量每個模型的違規率,同樣采用人工評估:

蘋果為什麼要用小模型?
蘋果為什麼要用小模型?

上圖顯示了在安全提示方面與競品的PK。人工評分員發現蘋果的回答更安全、更有幫助。

指令遵循

為了進一步評估模型,蘋果還使用指令跟蹤評估(IFEval)基準測試來比較同類模型的能力。

蘋果為什麼要用小模型?

結果表明,蘋果的裝置端和伺服器模型都比同等規模的開源和商業模型更好地遵循詳細說明。

最後是根據内部總結和作文基準評估模型的寫作能力,包括各種寫作說明,這些結果不涉及用于特定功能的擴充卡。

蘋果為什麼要用小模型?

參考資料:

https://machinelearning.apple.com/research/introducing-apple-foundation-models

繼續閱讀