使用 Keras 和 TensorFlow Lite 在裝置上的大型語言模型

1. 事前準備

大型語言模型 (LLM) 是近年來最令人期待的機器學習重大突破。能用來生成文字、翻譯語言,以及透過詳盡且豐富的資訊回答問題。Google LaMDAPaLM 等 LLM 是以大量文字資料訓練而成,因此能學習字詞和詞組之間的統計模式和關聯。如此一來,生成式 AI 就能生成與人工撰寫內容相似的文字,並精確翻譯語言。

LLM 的容量很大,一般會耗用大量運算能力。因此,大型語言模型通常會部署於雲端,而且行動裝置的運算能力有限,因此對裝置端機器學習 (ODML) 而言相當困難。不過,您可以在新型 Android 裝置上執行較小規模的 LLM (例如 GPT-2),仍可獲得出色的成果。

以下示範如何在 Google Pixel 7 Pro 上執行 Google PaLM 模型的版本,參數上限為 15 億個參數,但又不會加快播放速度。

Pixel 7 Pro 的 PaLM

在本程式碼研究室中,您將學到一些技巧和工具,瞭解如何建構採用 LLM 技術的應用程式 (以 GPT-2 做為範例模型),包括:

  • KerasNLP 要載入預先訓練的 LLM
  • 使用 KerasNLP
  • 運用 TensorFlow Lite 在 Android 上轉換、最佳化及部署 LLM

必要條件

  • 具備 Keras 和 TensorFlow Lite 的中級知識
  • 對 Android 開發作業有基本瞭解

課程內容

  • 如何使用 KerasNLP 載入預先訓練的 LLM 並進行微調
  • 如何量化 LLM 並轉換為 TensorFlow Lite
  • 如何對轉換後的 TensorFlow Lite 模型執行推論

軟硬體需求

2. 做好準備

如要下載本程式碼研究室的程式碼:

  1. 前往本程式碼研究室的 GitHub 存放區
  2. 按一下「程式碼」>下載 ZIP 檔案即可下載這個程式碼研究室的所有程式碼。

存放區映像檔

  1. 解壓縮下載的 ZIP 檔案,將含有所有必要資源的 examples 根資料夾解壓縮。

3. 執行範例應用程式

  1. examples/lite/examples/generative_ai/android 資料夾匯入 Android Studio。
  2. 啟動 Android Emulator,然後按一下導覽選單中的 execute.png「Run」

執行並探索應用程式

應用程式應該會在您的 Android 裝置上啟動。這個應用程式稱為「自動完成」。使用者介面非常簡單:您可以在文字方塊中輸入一些字根,然後輕觸「產生」;之後,應用程式就會透過 LLM 執行推論,並根據你的輸入內容生成其他文字。

目前,如果您在輸入一些字詞後輕觸「產生」,系統不會執行任何動作。因為尚未執行 LLM。

範例應用程式的螢幕截圖

4. 準備用於裝置端部署的 LLM

5. 完成 Android 應用程式

您已將 GPT-2 模型轉換為 TensorFlow Lite,最後可以在應用程式中部署。

執行應用程式

  1. 將從最後一個步驟下載的 autocomplete.tflite 模型檔案拖曳至 Android Studio 中的 app/src/main/assets/ 資料夾。

將模型新增至 Android Studio

  1. 按一下導覽選單中的「execute.png,然後等待應用程式載入。
  2. 在文字欄位中輸入一些字根,然後輕觸「產生」

完成的應用程式螢幕截圖

6. 負責任的 AI 技術注意事項

如同先前的 OpenAI GPT-2 公告所述,GPT-2 模型有值得注意的注意事項和限制。事實上,現今大型語言模型 (LLM) 通常有一些眾所周知的難題,例如幻覺、令人反感的輸出內容、公平性和偏誤。這是因為這些模型是根據實際資料進行訓練,因此能反映實際問題。

本程式碼研究室僅用於示範如何使用 TensorFlow 工具,建立採用 LLM 技術的應用程式。本程式碼研究室中產生的模型僅供教育用途,不得用於正式環境。

使用大型語言模型製作大型語言模型時,必須謹慎選擇訓練資料集,並採取完善的安全防護措施。如要進一步瞭解如何搭配大型語言模型使用負責任的 AI 技術,請務必觀看 2023 年 Google I/O 大會的安全與負責任開發語言模型技術講座,以及瞭解 Responsible AI 工具包

7. 結語

恭喜!您建構了一個應用程式,透過純粹的裝置上執行預先訓練的大型語言模型,根據使用者輸入內容產生一致性文字!

瞭解詳情