Keras と TensorFlow Lite を使用したオンデバイス大規模言語モデル

1. 始める前に

最近の機械学習の飛躍的進歩として挙げられるのが、大規模言語モデル(LLM)です。LLM を使用すると、テキストの生成、言語の翻訳、質問への回答などが、豊富な情報量に基づいて包括的に行われます。Google の LaMDAPaLM などの LLM は、大量のテキストデータを基にトレーニングされ、単語とフレーズ間の統計的なパターンと関係を学習します。それによって LLM は、人間が書いたようなテキストの生成や、非常に正確な翻訳を行うことが可能になります。

LLM は非常に大きなストレージを必要とし、実行するには極めて高い処理能力が求められるため、通常はクラウド上にデプロイされます。モバイル デバイスでは計算能力が限定されることから、オンデバイスの機械学習(ODML)は容易ではありません。ただし、最新の Android デバイスで LLM を小さい規模(GPT-2 など)で実行し、有意義な結果を得ることは可能です。

この Codelab では、以下のようにして LLM を導入したアプリを作成する方法を学びます。

  • KerasNLP を使用して、事前トレーニング済みの LLM(GPT-2)を読み込む
  • KerasNLP を使用して LLM(GPT-2)を微調整する
  • TensorFlow Lite を使用して、Android で LLM の変換、最適化、デプロイを行う

前提条件

  • Keras と TensorFlow Lite に関する中級レベルの知識
  • Android 開発に関する基本的な知識

学習内容

  • KerasNLP を使用して事前トレーニング済みの LLM を読み込み、微調整する方法
  • LLM をクオンタイズして TensorFlow Lite に変換する方法
  • 変換された TensorFlow Lite モデルで推論を実行する方法

必要なもの

  • Colab へのアクセス権
  • Android Studio の最新バージョン
  • 4G 以上の RAM を搭載した最新の Android デバイス

2. セットアップする

この Codelab のコードをダウンロードするには:

  1. この Codelab の GitHub リポジトリに移動します。
  2. [Code] > [Download zip] をクリックして、この Codelab のすべてのコードをダウンロードします。

リポジトリの画像

  1. ダウンロードした zip ファイルを解凍して、examples ルートフォルダを展開します。これには必要なリソースがすべて含まれています。

3. スターター アプリを実行する

  1. examples/lite/examples/generative_ai フォルダを Android Studio にインポートします。
  2. Android Emulator を起動し、ナビゲーション メニューで execute.png [Run] をクリックします。

アプリを実行して操作する

Android デバイスでアプリが起動するはずです。「Auto-complete」という名前のアプリです。UI は非常にシンプルです。テキスト ボックスになんらかのシードワードを入力して [Generate] をタップするだけです。アプリが LLM に対する推論を実行すると、入力内容に基づいて追加のテキストが生成されます。

ただし現時点でなんらかの単語を入力して [Generate] をタップしても、何も起こりません。まだ LLM が実行されていないためです。

スターター アプリのスクリーンショット

4. オンデバイスのデプロイ用に LLM を準備する

5. Android アプリを完成させる

GPT-2 モデルを TensorFlow Lite に変換したところで、いよいよアプリにデプロイします。

アプリを実行する

  1. 前の手順でダウンロードした autocomplete.tflite モデルファイルを、Android Studio の app/src/main/assets/ フォルダにドラッグします。

Android Studio にモデルを追加する

  1. ナビゲーション メニューで execute.png [Run] をクリックし、アプリが読み込まれるまで待ちます。
  2. テキスト フィールドになんらかのシードワードを入力して、[Generate] をタップします。

完成したアプリのスクリーンショット

6. 責任ある AI に関する注意事項

OpenAI GPT-2 の発表で明らかにされたように、GPT-2 モデルには重要な注意点と制限事項があります。実際、LLM については一般にハルシネーション、公平性、バイアスなどの問題の存在が知られています。これは、現実世界のデータに基づいてモデルのトレーニングが行われるため、現実の問題が反映されるのが原因です。

この Codelab は、TensorFlow ツールを使用してアプリに LLM を組み込む方法を示すことのみを目的としたものです。この Codelab で作成されるモデルは教育のみを目的としており、本番環境での使用は想定されていません

LLM を本番環境で使用するには、トレーニング データセットの慎重な選択と、包括的な安全対策が必要です。LLM のコンテキストにおける責任ある AI について詳しくは、Google I/O 2023 で開催された Safe and Responsible Development with Generative Language Models 技術セッションをご覧ください。また責任ある AI ツールキットをお試しください。

7. まとめ

お疲れさまでした。事前トレーニング済みの大規模言語モデルをデバイスで実行することで、一貫性のあるテキストをユーザー入力に基づいて生成するアプリを作成できました。

関連リンク