1. 始める前に
最近の機械学習の飛躍的進歩として挙げられるのが、大規模言語モデル(LLM)です。LLM を使用すると、テキストの生成、言語の翻訳、質問への回答などが、豊富な情報量に基づいて包括的に行われます。Google の LaMDA や PaLM などの 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 のコードをダウンロードするには:
- この Codelab の GitHub リポジトリに移動します。
- [Code] > [Download zip] をクリックして、この Codelab のすべてのコードをダウンロードします。
- ダウンロードした zip ファイルを解凍して、
examples
ルートフォルダを展開します。これには必要なリソースがすべて含まれています。
3. スターター アプリを実行する
examples/lite/examples/generative_ai
フォルダを Android Studio にインポートします。- Android Emulator を起動し、ナビゲーション メニューで [Run] をクリックします。
アプリを実行して操作する
Android デバイスでアプリが起動するはずです。「Auto-complete」という名前のアプリです。UI は非常にシンプルです。テキスト ボックスになんらかのシードワードを入力して [Generate] をタップするだけです。アプリが LLM に対する推論を実行すると、入力内容に基づいて追加のテキストが生成されます。
ただし現時点でなんらかの単語を入力して [Generate] をタップしても、何も起こりません。まだ LLM が実行されていないためです。
4. オンデバイスのデプロイ用に LLM を準備する
- Colab を開き、TensorFlow Codelabs GitHub リポジトリでホストされているノートブックを実行します。
5. Android アプリを完成させる
GPT-2 モデルを TensorFlow Lite に変換したところで、いよいよアプリにデプロイします。
アプリを実行する
- 前の手順でダウンロードした
autocomplete.tflite
モデルファイルを、Android Studio のapp/src/main/assets/
フォルダにドラッグします。
- ナビゲーション メニューで [Run] をクリックし、アプリが読み込まれるまで待ちます。
- テキスト フィールドになんらかのシードワードを入力して、[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. まとめ
お疲れさまでした。事前トレーニング済みの大規模言語モデルをデバイスで実行することで、一貫性のあるテキストをユーザー入力に基づいて生成するアプリを作成できました。