智慧型應用程式

Gemini Nano 和 Gemma 4 如何驅動裝置端智慧功能

喇叭

  • Sara Smoot

    工程主管 Gemma

關於

講座簡介

Gemma 4 可直接在 Android 裝置上提供強大的多模態 AI 功能。本課程將探討 Gemma 如何演變成專為效率打造的模型系列,並介紹邊緣最佳化的 E2B 和 E4B 模型可在裝置上執行的功能,包括視覺和音訊理解,以及代理函式呼叫。我們會介紹這項效率背後的架構,包括每層嵌入 (PLE),並說明 Gemma 和 Gemini Nano 如何透過 AICore 協同合作。您將瞭解量化感知訓練 (QAT) 如何在 1.1 至 3.5 GB 的 RAM 占用空間內,保留模型功能,以及多詞元預測 (MTP) 如何將解碼速度提升 1.5 至 3 倍,提供即時回應體驗。

摘要

  • Gemma 4 模型採用 Apache 2 授權,在 E2B/E4B 上提供 128K 詞元的脈絡長度,擴充裝置端多模態功能。
  • 多詞元預測草稿模型可將解碼延遲時間縮短 40%,並節省 30% 至 40% 的能源。這些模型會共用基礎模型的 KV 快取,避免重新生成預填內容。
  • 量化感知訓練會使用指定的 2 位元量化,將自訂行動量化檢查點壓縮至 1 GB 以下。
  • Android 應用程式可以透過 AICore 整合模型,做為 Gemini Nano 4 使用,或與 LiteRT 搭配使用,進行自訂微調。

資源

Gemini Notebook

主題

  • gemini-nano
  • gemma-4
  • on-device-ai
  • mobile-ml
  • aicore
  • litert
  • quantization

轉錄稿

Gemma 模型簡介與演進

  • Sara Smoot

    大家好,歡迎參加這場講座。

  • 我是 Sara,負責 Gemma 模型工程團隊。

  • 今天我想和大家分享我們的模型。

  • 我會說明功能,以及我們如何思考行動裝置的設計。

  • 我會介紹我們在模型中加入的技術,讓模型在行動裝置上有效率地運作。

  • 我會說明如何存取該功能,以及我們如何與 AICore 整合。

  • 最後,我會展示一些示範,讓大家瞭解模型的功能和用途。

  • 因此,為了瞭解未來的發展,我們需要先瞭解過去的發展。

  • 我們在 2024 年推出 Gemma 1。

  • 我們推出 20 億和 70 億參數的模型,僅支援文字,與當時的其他模型相比,規模非常小。

  • 繼 Gemma 1 之後,我們推出了 Gemma 2,並新增了一些功能。

  • 我們推出了程式設計。

  • 我們也推出大型模型 27B,大幅擴充 Gemma 系列的功能。

  • 不久後,Gemma 3 也正式推出。

  • 我們再次新增更多功能、多模態,以及較小的模型 (2.7 億個參數模型),因為我們發現較小的模型確實有很多用途,而且我們正努力協助盡可能啟用更多線上行動用途。

  • 因此,每次發布新版本時,我們的功能都會提升,這是刻意為之。

  • 我們正在為單一裝置硬體設計,包括手機、筆電、GPU,我們的目標不是打造更大的模型,雖然我們確實提升到 12B 到 27B,但我們的目標是在每次疊代中,將更多功能融入相同的空間,因為我們希望保留在裝置上,保留在本地。

  • 因此,我們透過提升效率來達成這個目標。

  • 接下來,我會說明我們為 Gemma 4 做了哪些工作,以及如何完成。

  • 我們推出了 E2B (稍後會說明「E」代表什麼)、E4B 和 12B 統合模型 (稍後會說明原因),以及 MoE 模型。

  • 這一切都是為了證明效率,並讓開發人員在建構應用程式和內容時享有更多彈性。

  • 接下來,我們來仔細看看這些功能。您可以在這裡看到我們陸續新增的功能。

  • 我想特別指出幾點,首先是脈絡長度。

  • 我們也大幅提升了脈絡長度,比先前的 Gemma 版本更長。

  • Gemma 4 的脈絡長度高達 128K。

  • 較大的模型則可達 256。

  • 請注意,ML Kit 會限制脈絡長度,因此請務必先確認預算,再決定是否要以 128k 推出。

  • 不過,這應該足以讓您閱讀長篇文件、進行一些擴充推理、呼叫函式,以及使用多模態功能、視覺和音訊。

  • 影片是我們從 Gemma 3n 開始新增的功能,並在 Gemma 4 中進一步強化。

  • 因此,我們現在支援多種語言。

  • 我們仍在訓練多種語言,因此您可以使用內建語言和預先訓練的語言。

  • 此外,我們很高興宣布,這一切都將採用全新的 Apache 2 授權,讓您在建構內容時享有更多彈性,同時減少阻礙。

  • 建構及下載模型也更順暢。

多模態功能和基準

  • Sara Smoot

    好,那麼視覺,我們如何運用視覺?

  • Gemma 4 的視覺模型特別採用可變顯示比例。

  • 這項功能會擷取圖片,並保留模型的實際顯示比例,而不是將圖片壓縮成奇怪的正方形。

  • 也就是說,文字和物件都不會失真。

  • 這項技術能大幅提升模型的能力。

  • 形狀保持不變,OCR 透過這個可變顯示比例大幅改善。

  • 視覺功能還能讀取圖表、試算表和圖形。

  • 這項功能還能翻譯視覺線索,因此你可以拍下文字,系統就能為你翻譯。

  • 還能分析現實世界。

  • 它能查看圖片,瞭解物件的位置和內容。

  • 這項功能用途廣泛。

  • Gemma 模型還有另一個鮮為人知的功能,就是可以設定視覺詞元預算。

  • 所以,現在,我的意思是檢查並查看 ML Toolkit 中的內容,但您的範圍很大。

  • 如果想將更多運算能力和能源用於高解析度圖片理解,可以進行設定。

  • 如果這不是您想實際運用的用途,可以大幅減少圖片權杖預算,並回收大量運算能力,用於文字應用程式的模型運算週期。

  • 音訊對我們來說是相對較新的模式。

  • 我們在 Gemma 3n 中首次推出這項功能。

  • 現在,我們將全面採用這項技術來開發 Gemma 4。

  • 音訊功能僅適用於我們最小的模型:E2B、E4B 和 12B 模型。

  • 系統會完全根據音訊檔案轉錄。

  • 可翻譯語音。

  • 支援超過 35 種語言,開箱即用。

  • 我們也預先訓練了超過 140 種語言,因此如果想使用 35 種語言以外的語言,可以微調模型,讓模型支援原本不支援的語言。

  • 我們新增了代理推論功能。

  • 這也是 Gemma 4 的新功能。

  • 會規劃。

  • 可執行多步驟工作。

  • 它會使用工具。

  • 精準遵循指示。

  • 會傳回結構化 JSON。

  • 這項模型能執行代理式模型的所有功能。

  • 請務必使用正確的對話範本。如果未使用 ML Toolkit,而是自行處理,請務必留意對話範本。

  • 對話範本很難處理。

  • 請小心處理。

  • 如果您使用機器學習工具包,系統會自動完成所有作業。

  • 最後,Gemma 仍能提供出色的文字理解能力。

  • 現在,我們能運用更長的脈絡,分析程式碼、長篇文件和翻譯。

  • 事實上,Android Studio 現在支援在離線模式下使用 Gemma 4 的程式設計功能。

  • 因此,如果您想離線使用 Android Studio,系統會使用 Gemma 4 執行程式設計工作。

  • 重點是,E2B 和 E4B 的體積夠小,可以在手機上順利執行。

  • 因此,這項服務雖然體積小,但功能強大。

  • 這其實是非常困難的工程挑戰,因此 Gemma 團隊對此感到非常自豪。

  • 以下列舉幾個例子,說明這項功能。

  • 左側顯示模型能找到筆電,並傳回筆電的位置座標。

  • 接著,應用程式就能繪製指標,顯示筆電的位置。

  • 中間的模型可以辨識物件,並在物件周圍繪製定界框。

  • 這項技術有一些有趣的應用,例如物件偵測和物件避障。

  • 這項功能非常實用。

  • 右側則顯示模型如何讀取文字。

  • 因此,這句話的意思是「小心,有貓」。

  • 它也能理解圖片中的內容,看到這隻貓擺出非常有趣的姿勢,並翻譯和指出下方的文字「Something may happen」是笑點。

  • 我覺得這點滿可愛的。

  • 因此,指向、物件偵測、OCR 和翻譯,都不需要特殊的視覺管道。

  • 好,我們來看看評估數據。

  • 展示能力固然重要,但許多人會看這些,我認為這裡可以看到模型的實力。

  • 如果看最後兩欄,E2B 在推論、程式設計和代理方面的表現,都優於 Gemma 3 27B 這個大得多的模型。

  • 請看 LiveCodeBench。

  • Gemma 4 的分數為 44,Gemma 3 27B 則為 29。

  • AIME 也高出許多。

  • Tau2 是代理式評估,分數也高出許多,展現強大實力。

  • 如果再增加幾個參數,E4B 模型在每項基準測試中的表現,都明顯優於 27B 模型。

  • 因此,從 Gemma 3 到 Gemma 4,我們在相同數量的參數中,加入了更多功能。

裝置端硬體和模型架構

  • Sara Smoot

    該怎麼做呢?

  • 如何在不擴大模型規模的情況下提升模型能力,是一項艱鉅的挑戰。

  • 如果只看硬體,手機的記憶體比電腦少得多。

  • 我是指 12 到 16 GB,而伺服器可能會有 80 GB 左右。

  • 頻寬也少得多:50 到 80 GB,而伺服器則可達數 TB。

  • 此外,電力也嚴重受限。

  • 因此,在執行模型時,我們必須牢記所有這些因素。

  • 接下來要介紹的每種技術,都針對這些限制,協助模型更適合在行動硬體上運作。

  • 首先,我們不會為每個大小都建立一個架構。

  • 每種模型大小都有各自的架構。

  • E2B 和 E4B 具備一些特殊元素,這是我接下來要介紹的重點。不過,12B 模型沒有視覺編碼器,這點也值得注意。

  • 因此,我們在這個模型中移除了視覺編碼器,簡化部署作業,並盡可能減少模型所需的參數數量。

  • 這項功能通常適用於筆電硬體。

  • 大型模型則能展現最強大的功能。

  • 這些模型分為全密集和混合專家模型。

  • 專家混合模型也能在筆電上執行,我們之所以建構這項模型,是因為專家架構可降低延遲。

  • 因此,在接下來的演講中,我將著重介紹行動模型,也就是 E2B 和 E4B,並說明我們如何讓這些模型在手機上順暢運作。

  • 這就是「E」的由來,也就是逐層嵌入。

  • 這項技術很有趣,是我們加入模型中的創新技術。

  • 從模型的運作方式來看,模型需要更多參數才能變得更聰明。

  • 我們正在努力提升參數效率,但一般來說,如果想讓模型更出色,就需要更多參數。

  • PLE 的做法是:「好,我們需要更多參數。」

  • 不過,我們不會直接在模型中加入更多參數,而是使用額外的嵌入表格。

  • 系統會為每個層讀取這個嵌入表格。

  • 因此,一旦知道模型需要哪些權杖,您就可以提取特定輸入序列所需的每層嵌入,然後只將這些嵌入載入模型。

  • 因此,雖然參數數量本身相當大,但它能提供有效的 20 億參數模型。

  • 因此,我們稱之為 20 億個參數,因為只有這 20 億個參數會載入記憶體。

  • 嵌入表通常儲存在快閃記憶體中,而非 RAM。

  • 因此,您確實限制了頻寬,因為您不必傳輸那麼多參數,但您仍能獲得更大模型的完整模型功能。

  • 而且在裝置上占用的 RAM 也較少。

  • 我們接著新增了草稿模型。

  • 我們用於 Gemma 的草稿模型是多詞元預測模型。

  • 這是一種推測解碼。

  • 這項技術可讓模型在每次傳遞時,預測比一般自動迴歸模型更多的詞元。

  • 因此,一般自迴歸模型一次只會處理一個詞元,每個詞元都必須經過整個模型。

  • MTP 草稿模型會一次預測三或四個詞元,然後我們使用主要模型來驗證這些詞元。

  • 如果這些權杖獲得接受,就會被使用,然後我們通常可以每次獲得兩、三、四個權杖,而不是一次只獲得一個權杖。

  • 這是常見的做法。

  • Drafter 模型已推出。

  • Gemma 的特別之處在於,我們共用基礎模型的 KV 快取。

  • 因此,對於 E2B,我們會執行完整的預先填充,建立快取,然後草稿模型會使用該 KV 快取。

  • 因此,對於一千個詞元的提示,您實際上可以節省約 130 毫秒的時間,因為您不必為草稿模型重新生成預填內容。

  • 因此,我們的草稿模型比其他草稿模型快 30 到 40 倍。

  • 從數據中可以看到,使用草稿模型時,速度有所提升。

  • 與大多數草稿模型相比,我們的接受率高出 40% 到 60%。

  • 使用草稿模型後,解碼延遲時間降低了 40%,能源消耗也減少了 30% 到 40%。

  • 因此,您可以獲得更快速的回應、更長的電池續航力,而且完全不需要變更程式碼。

  • 這項工具相當簡單,且支援完善。

量化技術和最佳化

  • Sara Smoot

    我們接下來的創新技術是量化。

  • 量化通常也不是新技術,但我們對行動模型特別謹慎,確保量化能與行動硬體完美搭配。

  • 我們在設計 QAT 模型時,會考量幾個因素。

  • 首先,我們會進行 QAT,也就是量化感知訓練。

  • 也就是說,在訓練時,我們會考量並確認要進行量化。

  • 這有助於模型瞭解參數會分桶,並維持品質。

  • 同時維持品質,通常能將模型縮減到原本的一小部分。

  • 因此,如果從 16 位元模型轉換為 4 位元模型,並保留所有品質,我們就能大幅節省記憶體。

  • 因此,E2B 有兩種不同的量化方式。

  • 我們有 Q4_0 格式。

  • 這種量化方式更為一般用途。

  • 這項設定可自訂。

  • 這項功能與其他量化程式庫搭配使用時,效果非常好。

  • 您可以嘗試各種量化方式,找出最適合您用途的做法。

  • 我們還有一種非常特殊的量化方式,稱為行動量化,這種量化方式非常積極,我們也做了許多研究,致力於將其最佳化。

  • 在大多數執行階段中,這項功能並未獲得支援,但在 ML Kit 和 Android Studio 中,您可以使用這項功能。

  • 你可以在該處使用。

  • 我們內建了一些創新技術,例如使用靜態、活化量化。

  • 因此,在進行量化時,如果模型採用動態範圍活化,通常需要即時計算範圍,然後再進行量化。

  • 我們已為您完成靜態範圍量化,因此您不必預先計算範圍,可節省時間。

  • 我們也採用了通道量化。

  • 我們以通道方式建構及壓縮模型,非常適合大多數行動硬體。

  • 我們已指定 2 位元量化。

  • 因此,2 位元量化通常會造成相當大的損失。

  • PTQ 相當難執行。

  • 我們也進行了研究,對模型有足夠的瞭解,知道哪些參數可以壓縮到 2 位元,並透過量化感知訓練取得良好成效。

  • 這能節省大量儲存空間,同時保留幾乎所有品質。

  • 因此,我們特別的量化模型大約不到 1 GB,比我們現有的 4 位元量化模型還要小。

  • 我們在自訂量化中內建的另一項功能,是嵌入和 KV 快取量化。

  • 這兩項工作都有許多技巧。

  • 我們做過研究,發現這種做法非常適合我們的模型。

  • 我們將這些內容整合到這些檢查點中。

  • 因此,這一切都會大幅減少使用中的記憶體。

  • 這樣一來,您就不必來回移動參數,可節省大量頻寬。

  • 此外,你還能管理及保留長篇對話等內容,不必擔心空間不足。

系統整合與安全架構

  • Sara Smoot

    好的,我們透過 AICore 整合。

  • 因此,AICore 搭載的是 Gemini Nano 4 模型。

  • Gemini Nano 4 是透過 AICore 建構及執行的 Gemma。

  • AICore 可為您提供一些實用功能。

  • 這是最省事的做法。實際上,我會很快介紹另一種做法。

  • 另一種是透過 LiteRT,這種做法更偏向自訂,需要手動操作。

  • 如果採用這種做法,模型會與應用程式綁定。

  • 不會使用裝置端代管的共用模型。

  • 因此,您必須注意記憶體。

  • 你必須注意耗電量。

  • 您必須更實際地操作手機上的資源,以及管理資源的方式。

  • 但能讓您完全掌控。

  • 您可以搭配 LiteRT 使用微調功能,取得更多自訂選項。

  • 如果透過 AICore,您可以使用機器學習工具包 API,這是最省事的做法。

  • 使用這項功能時,您會獲得我提到的所有功能,每層嵌入都會妥善處理,而且執行階段支援不將參數和嵌入參數存放在 RAM 中。

  • 系統已內建 MTP,因此會自動運作。

  • 同時也使用行動裝置量化模型。

  • 並在專為託管及搭配量化模型而設計的執行階段中運作。

  • 因此,它實際上可以視需要以 2 位元精確度執行和執行操作,從而節省成本,從而提高效率。

  • 如果想深入瞭解,可以參加另外兩場已舉辦或即將舉辦的講座。

  • David 的 ML Kit 課程涵蓋 Gemini Nano 4 路徑、如何透過 ML Kit 使用模型,而 Chintan 和 Fergus 的 LiteRT 課程則會介紹如何使用 LiteRT,以及如何使用 LiteRT 進行開發。

  • 這就是 Gemma 的要求流程。

  • API 介面會處理一些輸入內容,這些都是內建功能。

  • 輸入內容處理作業的一部分是安全信號。

  • AICore 內建一些安全防護機制。

  • 我們在模型中加入許多安全機制,

  • 為行動應用程式多添一層安全防護。

  • 這項功能會先經過功能設定,再透過裝置端執行階段執行。

  • 輸出內容時,也會再次檢查安全性。

  • 檢查輸出信號,確保輸出內容安全。

  • 這也是模型內建機制之外的額外安全防護。

  • 此外,它也會執行更新,並在應用程式之間共用。

  • 因此,如果您要建構多個應用程式,或不想管理套裝模型,這就是絕佳的做法,而且您將能直接使用許多內建功能。

本機裝置示範

  • Sara Smoot

    好,現在就開始示範。

  • 這是語音助理。

  • 我會用筆電示範。

  • 請注意,這項功能完全在本機上運作,也就是在裝置上執行。

  • 使用 VAD 串聯。

  • 先經過 STT,再進入 Gemma,最後經過 TTS,也就是文字轉語音模型。

  • 這項功能會串流,並在 E2B 模型上執行。

  • 這是在筆電上執行的模型,但與在手機上執行的模型完全相同。

  • 這些操作都可以在手機上完成。

  • 這個示範是使用 LiteRT 建構而成。

  • 應該也能使用 ML Kit 建構。

  • 請留意延遲時間,因為沒有伺服器來回,並觀察如何處理中斷。

  • Gemma,請簡單介紹一下自己。

  • 我是 Gemma 4,由 Google DeepMind 開發的大型語言模型。

  • 我會處理文字和圖片,提供資訊並完成工作。

  • 酷!

  • 可以簡單介紹一下莎士比亞嗎?

  • 威廉莎士比亞是英國劇作家和詩人,公認是英語文學史上最偉大的作家。

  • 等等。

  • 你知道嗎?

  • 我真的很想瞭解太陽系。

  • 可以跟我說明一下嗎?

  • 太陽系由太陽和所有受其重力束縛的天體組成,包括八大行星、矮行星、衛星、小行星和彗星。

  • 酷喔

  • 你可以說明黑洞的原理嗎?

  • 當大質量恆星因自身重力而塌陷時,就會形成黑洞,產生重力極強的時空區域,任何東西 (甚至是光) 都無法逃脫。

  • 太酷了!

  • 感謝您!

  • 不客氣。

  • 還有其他問題需要解答嗎?

  • 現在我們來做個小測驗

  • 語音助理。

  • 好,接下來

  • 這會是使用影片功能的本機助理。

  • 這項功能完全在離線狀態下運作,為了證明這點,我們在露營時進行了示範,當時應該是在荒野中。

  • 請注意,這項功能是以 E4B 模型為基礎。

  • 自然對話

  • 我們要教它如何做事。

  • 它會在背景使用工具呼叫,並能存取手機上的不同內容。

  • 而且相當有趣。

  • Hey Gemma,現在有網路嗎?

  • 不,我們目前沒有網際網路連線。

  • 這則警告代表什麼意思?

  • 這是西班牙文。

  • 那個標誌是警告美洲獅棲息地。

  • 並建議你,美洲獅是當地環境的一部分,如果遇到,請務必小心。

  • 這個函式的導數為何?

  • x 平方加 7x 加 10 的導數是 2x 加 7。

  • 真有趣。

  • 你好。

  • 嗨,Cindy。

  • Gemma,今晚的團體健行是幾點?

  • 你排定在下午 6:00 參加團體健行活動。

  • 商業智慧。

  • 這是美洲獅嗎?

  • 不,那是狗。

  • 好孩子

資源與後續步驟

  • Sara Smoot

    好,開始建構吧。

  • 這些是上方的連結,實際上是檢查點的連結。

  • 如果想直接查看檢查點和模型程式碼,這些資源都已開放使用。

  • 您可以使用機器學習技術,例如 Gemma、Gemini Nano 4、ML Kit 連結。

  • 檢查點位於 Hugging Face,程式碼則在 Transformers 程式碼集。

  • 你可以查看我們完成的內容。

  • 您也可以從 Kaggle 取得檢查點。

  • 再次提醒您,如果想進一步瞭解 ML Kit,請觀看 David 的 ML Kit 簡報。

  • 稍後還有 Chintan 和 Fergus 的 LiteRT 簡報。

  • 如果您想瞭解如何透過 LiteRT 在應用程式中存取及使用模型。

  • 感謝您!

  • 我很期待看到各位打造的成果。