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

使用 Keras 和 TensorFlow Lite 在裝置端執行大型語言模型

程式碼研究室簡介

subject上次更新時間:8月 29, 2024
account_circle作者:Wei Wei

1. 事前準備

最近最令人振奮的機器學習突破之一,就是大型語言模型 (LLM)。可用於生成文字、翻譯語言,以及提供實用解答。Google LaMDAPaLM 等大型語言模型 (LLM) 經過大量文字資料訓練,可學習字詞和片語之間的統計模式和關係。因此能夠生成類似人類撰寫的文字,並準確翻譯語言。

LLM 儲存空間非常龐大,執行時通常會耗用大量運算效能,因此通常會部署在雲端,且由於行動裝置的運算效能有限,因此很難用於裝置端機器學習 (ODML)。不過,您可以在現代 Android 裝置上執行較小規模的 LLM (例如 GPT-2),並獲得令人驚豔的結果。

以下是 Google Pixel 7 Pro 執行 15 億個參數的 Google PaLM 模型版本示範,未加快播放速度。

Pixel 7 Pro 上的 PaLM

在本程式碼研究室中,您將學習相關技術和工具,使用以下項目建構 LLM 輔助應用程式 (以 GPT-2 做為範例模型):

  • KerasNLP 載入預先訓練的 LLM
  • 使用 KerasNLP 微調 LLM
  • TensorFlow Lite,用於在 Android 上轉換、最佳化及部署大型語言模型

必要條件

  • 具備 Keras 和 TensorFlow Lite 的中階知識
  • 具備 Android 開發的基本知識

課程內容

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

軟硬體需求

2. 做好準備

如要下載本程式碼研究室的程式碼,請按照下列步驟操作:

  1. 前往本程式碼研究室的 GitHub 存放區
  2. 依序點選「Code」>「Download zip」,下載這個程式碼研究室的所有程式碼。

存放區圖片

  1. 將下載的 ZIP 檔案解壓縮,解壓縮後會產生 examples 根資料夾,內含所有需要的資源。

3. 執行範例應用程式

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

執行並探索應用程式

Android 裝置上應會啟動應用程式。這個應用程式名為「Auto-complete」。使用者介面相當簡單:在文字方塊中輸入一些種子字詞,然後輕觸「生成」,應用程式就會對 LLM 執行推論,並根據您的輸入內容生成其他文字。

目前輸入文字後輕觸「生成」,不會有任何反應。這是因為目前尚未執行 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 為基礎的應用程式。本程式碼研究室產生的模型僅供教學之用,適用於實際工作環境。

如要在實際工作環境中使用 LLM,必須慎選訓練資料集,並採取全面的安全防護措施。如要進一步瞭解 LLM 領域的負責任 AI,請務必觀看 2023 年 Google I/O 大會的安全且負責任的生成式語言模型開發技術研討會,並參閱負責任的 AI 工具包

7. 結論

恭喜!您已建構應用程式,可完全在裝置上執行預先訓練的大型語言模型,根據使用者輸入內容生成連貫的文字!

瞭解詳情