Gemma 3 1B 是 Gemma 系列開放權重模型中的新型號,為在移動端和網頁上分發小型語言模型(SLMs)提供了可能性。在生產環境中部署 SLM 時,模型需要足夠小以便快速下載,運行速度需足夠快以吸引用戶注意,並支持各種最終用戶設備。
Gemma 3 1B 僅有 529MB 的大小,通過 Google AI Edge 的 LLM 推理,運行速度可達 2585 tok/sec,使得處理一頁內容的時間少於一秒。將 Gemma 3 1B 集成到應用中後,開發者可以使用自然語言來驅動應用程序或從應用數據或上下文中生成內容,所有功能均可完全自定義和微調。
Gemma 3 的應用場景
在應用中使用全設備的 Gemma 3 1B 模型,開發者可以充分利用 AI Edge 的優勢:
1. 離線可用性:使應用在 WiFi 或移動數據不可用時仍能正常運行。
2. 成本:無需雲端費用,支持免費或增值應用。
3. 延遲:某些功能需要比伺服器調用更快的響應。
4. 隱私:對無法離開設備或端到端加密的數據進行智能處理。
Gemma 1B 極具靈活性,甚至可以針對特定領域和用例進行微調。以下是一些 Gemma 1B 的熱門應用場景:
1. 數據標題:將應用數據轉化為引人入勝且可分享的描述,例如,睡眠數據 -> “您睡得很好,持續 7 小時,但在凌晨 2 點到 4 點之間醒來 5 次”。
2. 遊戲內對話:根據當前遊戲狀態創建 NPC 對話。
3. 智能回覆:在消息交流中為用戶提供智能的對話建議回應。
4. 文檔問答:利用 Gemma 3 和我們的新 AI Edge RAG SDK 來處理長文檔並回答用戶問題。
如何開始使用 Gemma 3
步驟 1:加載示範應用
從 GitHub 下載 Google AI Edge 的預建示範應用並推送到本地 Android 設備。為了獲得最佳性能,建議使用至少 4GB 記憶體的設備。
“`bash
$ wget https://github.com/google-ai-edge/mediapipe-samples/releases/download/v0.1.3/llm_inference_v0.1.3-debug.apk
$ adb install llm_inference_v0.1.3-debug.apk
“`
或者,您可以按照我們的指導從源代碼構建應用。
步驟 2:選擇 CPU 或 GPU
Gemma 3 模型文件提供了出色的部署靈活性,可以無縫運行在設備的 CPU 或移動 GPU 上。啟動應用時,您可以選擇使用 CPU 或 GPU,或通過返回模型選擇對話框在模型和後端之間切換。
步驟 3:從 Hugging Face 下載模型
在示範應用的模型選擇畫面中,選擇您的模型。應用會引導您登錄 Hugging Face 並接受 Gemma 使用條款。Gemma 3 1B 將從 LiteRT Hugging Face 社區組織直接下載,並在您的設備上進行優化(這只需幾秒鐘!)。
步驟 4:運行模型
現在可以開始使用 Gemma 3 了!Gemma 3 由 Google AI Edge 的 LLM 推理 API 支持,旨在高效進行設備端處理。您可以通過與模型對話進行互動,或者給它其他文本處理任務。例如,試試以下操作:
1. 從博客文章(如這篇)或文章中複製幾段文字。
2. 切換到 LLM 示範應用。
3. 將複製的文本粘貼到輸入框中。
4. 輸入 “為這段內容創建一個社交媒體帖子,保持簡短,少於 50 個單詞” 然後按下回車鍵。
步驟 5:自定義 Gemma 3(可選)
Gemma 系列開放權重模型的一大優勢是社區生產的微調版本。按照這個 Colab 來了解如何使用自己的數據創建自己的 Gemma 3 1B 版本,進行量化,並在自己的應用中運行於移動設備(CPU 和 GPU)。
性能測試
這裡的示範和測量是針對通過量化感知訓練(QAT)進行 int4 參數量化的 Gemma 3 1B 模型,該訓練提供了顯著的存儲節省和提高的解碼吞吐量。測試的 Gemma 3 模型支持多個預填長度,包括 32、128、512 和 1024,並使用 2048 的上下文長度。
測量是在 Android Samsung Galaxy S24 Ultra 上進行的,cpufreq 管理器設置為性能模式。觀察到的性能可能因手機硬件和當前活動水平而異。
測量也在 2023 年的 MacBook Pro(Apple M3 Pro 芯片)上進行。觀察到的性能可能因計算機的硬件和當前活動水平而異。
優化技術
上述性能結果是通過大量優化努力實現的,這些優化旨在在開放權重模型中運行良好,包括 Gemma。以下是一些顯著提升性能並實現新功能的關鍵特徵:
1. 量化:對 Gemma 應用量化感知訓練,使用 4 位整數通道方案進行權重量化,以保持最佳性能、模型質量和大小。此外,我們還在執行期間將激活動態量化為 int8,以最佳利用 CPU 能力。
2. 更新 KV 緩存佈局:KV 緩存用於存儲來自先前步驟的鍵值對,以便生成後續標記。對 KV 緩存的讀寫操作頻繁,因此這些操作的效率至關重要。這些操作通過引入 KV 緩存佈局進行優化,以減少額外的轉置和重塑,這項優化使 Gemma 模型在 CPU 上的延遲改善了約 25%,在 GPU 上改善了約 20%。
3. 改善加載時間:為了充分利用 CPU 和 GPU 處理,我們使用專門的張量佈局。生成這些優化的權重佈局可能需要時間、電力和大量內存。在第一次模型加載時,權重以其優化格式緩存到磁碟,隨後的加載從緩存中讀取。如果進一步優化了張量佈局,現有緩存將自動失效,並在下次模型加載時將新格式存儲到磁碟。
4. GPU 權重共享:LLM 推理過程分為預填充和解碼兩個階段。這兩個階段通常為其各自模型使用不同的資源。為了顯著減少 LLM 的內存佔用,兩個階段可以共享相同的權重。雖然這項技術並不全新,但這是第一次在 LiteRT Runtime 和 GPU 委託中以易於重用的方式實現。對於支持此功能的操作,GPU 委託會檢查權重是否已存在於 GPU 記憶體中,可以重用。
在 Gemma 3 的開發過程中,重點是提供卓越的性能,同時構建開放權重模型的可重用基礎設施。計劃在 2025 年利用這項工作支持更廣泛的第三方模型。隨著進一步的性能優化和進一步減少內存使用的重點,我們將繼續使模型在更廣泛的設備上變得更加可訪問。想要跟上最新進展,請在 GitHub 上為 ai_edge_torch 設置通知。
【教學】如何在香港申請 Google Gemini 及訂閱 Google Gemini Advanced /
【說明】4 個方法,讓你的 iPhone / Android 在香港無需 VPN 就能用 ChatGPT