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