Docker と Hugging Face の Docker Spaces を使ったジェネレーティブ AI アプリの構築

はじめに

急速に進化する人工知能の世界で、ジェネレーティブ AI モデルの開発とデプロイ能力が重要になってきています。アプリケーションの構築、配送、実行を容易にするオープンソースのプラットフォームであるDocker が、これらの複雑なモデルのデプロイに強力なツールとして登場しています。本記事では、Docker と Hugging Face の Docker Spaces を利用してジェネレーティブ AI アプリケーションを構築およびデプロイする方法を探ります。

YouTubeでこのビデオを見る

開発環境の設定

まず、Python 3.9を使ったバーチャル環境を設定し、FastAPI、requests、transformers、torch、sentence-pieceといった必要なライブラリを含む `requirements.txt` ファイルを作成します。その後、`pip install -r requirements.txt`でこれらのライブラリをインストールします。

ジェネレーティブ AI アプリケーションの開発

次に、必要なライブラリをインポートし、FastAPI アプリインスタンスを作成します。その後、Hugging Face Transformers ライブラリのFlant-T5-smallモデルを使ってテキスト生成パイプラインを設定します。ホームページルートでは “hello world” メッセージを返し、 `/generate` ルートではユーザー入力に基づいてテキスト生成を行います。

アプリケーションのDockerイメージ化

アプリケーションをコンテナ化するために、Dockerfileを作成します。これには、現在のディレクトリの内容のコピー、要件のインストール、ユーザーとワーキングディレクトリの設定などの必要な手順が含まれています。最後に、Dockerコンテナ内でFastAPIアプリを7680ポートで実行します。

Hugging Face Spacesへのデプロイ

Dockerイメージが準備できたら、Hugging Face Spacesで新しいスペースを作成し、Dockerオプションを選択します。その後、`app.py`、Dockerfile、`requirements.txt`ファイルをスペースにアップロードし、変更をコミットして、ビルドプロセスを確認します。

デプロイされたアプリケーションのテスト

アプリケーションがデプロイされたら、ホームページの応答を確認し、`/docs`エンドポイントのSwagger文書を探索し、ユーザー入力に基づいて `/generate` ルートをテストして出力を確認します。

まとめ

本記事では、Docker と Hugging Face の Docker Spaces を使ってジェネレーティブ AI アプリケーションを構築およびデプロイする方法を探りました。これらのツールを活用することで、デプロイプロセスを簡素化し、環境間の一貫性を確保し、コンテナ化による拡張性と柔軟性を活用することができます。ジェネレーティブ AI の需要が高まる中、これらの技術を習得することが開発者やリサーチャーにとって不可欠になっています。

Key Takeaways:

  • Dockerにより、アプリケーションをインフラストラクチャから分離できるため、迅速で一貫したデプロイが可能になります。
  • Hugging FaceのDockerSpacesは、DockerベースのAIアプリケーションをデプロイするための便利なプラットフォームを提供します。
  • DockerとHugging FaceのDockerSpacesを組み合わせることで、ジェネレーティブAIモデルの開発とデプロイを効率化できます。
  • 本記事では、開発環境の設定、ジェネレーティブAIアプリケーションの構築、Dockerによるコンテナ化、Hugging FaceのDockerSpacesへのデプロイまでのプロセスを説明しています。
  • デプロイされたアプリケーションをテストすることで、ジェネレーティブAIモデルが期待どおりに機能し、ユーザーエクスペリエンスが円滑であることを確認できます。
上部へスクロール