私たちは、最先端のテクノロジーに関する発表が毎週行われるエキサイティングな時代に生きています。 OpenAI は、最先端のテキストから画像へのモデル DALLE 2 をリリースしました。
自然言語の記述からリアルなグラフィックスを生成できる新しい AI システムに早期にアクセスできる人はごくわずかでした。 まだ一般公開されていません。
その後、安定性 AI が 安定拡散 モデル、DALLE2 のオープン ソース バリアントです。 この打ち上げはすべてを変えました。 インターネット全体の人々が迅速な結果を発表し、現実的な芸術に驚いていました。
安定拡散とは?
安定拡散 は、テキストから画像を作成し、テキストに応じて画像を変更し、低解像度または低詳細の画像に詳細を埋め込むことができる機械学習モデルです。
数十億枚の写真でトレーニングされており、同等の結果を提供できます。 DALL-E2 & ミッドジャーニー. スタビリティAI が発明し、22 年 2022 月 XNUMX 日に公開されました。
ただし、ローカルの計算リソースが限られているため、Stable Diffusion モデルで高品質の画像を作成するには長い時間がかかります。 クラウド プロバイダーを使用してモデルをオンラインで実行すると、ほぼ無限の計算リソースが提供され、優れた結果をはるかに迅速に取得できます。
モデルをマイクロサービスとしてホストすることで、他のクリエイティブ アプリは、オンラインで ML モデルを実行する複雑さに対処する必要なく、モデルの可能性をより簡単に活用できるようになります。
この投稿では、安定した拡散モデルを開発して AWS にデプロイする方法を示します。
安定した拡散を構築して展開する
BentoML とアマゾン ウェブ サービス EC2 は、Stable Diffusion モデルをオンラインでホストするための XNUMX つのオプションです。 BentoML はスケーリングのためのオープンソース フレームワークです。 機械学習 サービス。 BentoML を使用して、信頼性の高い分散サービスを構築し、AWS EC2 にデプロイします。
環境の準備と安定拡散モデルのダウンロード
要件をインストールし、リポジトリをクローンします。
安定拡散モデルを選択してダウンロードできます。 単精度は、10 GB を超える VRAM を搭載した CPU または GPU に適しています。 半精度は、VRAM が 10GB 未満の GPU に最適です。
安定拡散の構築
背後にあるモデルを提供する BentoML サービスを構築します。 RESTful API. 次の例では、予測に単精度モデルを使用し、service.py モジュールを使用してサービスをビジネス ロジックに接続します。 @svc.api でタグ付けすることにより、関数を API として公開できます。
さらに、パラメーターで API の入力と出力の型を定義できます。 たとえば、txt2img エンドポイントは JSON 入力を受け取り、Image 出力を生成しますが、img2img エンドポイントは Image と JSON 入力を受け入れ、Image 出力を返します。
StableDiffusionRunnable は、本質的な推論ロジックを定義します。 runnable は、モデルの txt2img パイプ メソッドの実行と、関連する入力の送信を担当します。 API でモデル推論ロジックを実行するために、StableDiffusionRunnable からカスタム Runner が構築されます。
次に、次のコマンドを使用して、テスト用の BentoML サービスを開始します。 をローカルで実行 安定拡散モデル CPU での推論はかなり遅いです。 各リクエストの処理には約 5 分かかります。
テキストから画像へ
テキストから画像への出力
Bentofile.yaml ファイルは、必要なファイルと依存関係を定義します。
次のコマンドを使用して、弁当を作成します。 Bento は、BentoML サービスの配布形式です。 これは、サービスの開始に必要なすべてのデータと構成を含む自己完結型のアーカイブです。
安定拡散弁当が完成しました。 お弁当を適切に生成できなかった場合でも、慌てる必要はありません。 次のセクションにリストされているコマンドを使用して、事前に構築されたモデルをダウンロードできます。
モデルの事前構築
ビルド前のモデルは次のとおりです。
安定拡散モデルを EC2 にデプロイする
Bento を EC2 にデプロイするには、bentoctl を使用します。 Bentoctl を使用すると、任意の場所に Bento をデプロイできます。 クラウドプラットフォーム テラフォームを使用。 Terraform ファイルを構築して適用するには、AWS EC2 オペレーターをインストールします。
デプロイの config.yaml ファイルでは、デプロイは既に構成されています。 必要に応じて自由に編集してください。 Bento はデフォルトで g4dn.xlarge ホストにデプロイされ、 深層学習 us-west-1.12.0 リージョンの AMI GPU PyTorch 20.04 (Ubuntu 1) AMI。
ここで Terraform ファイルを作成します。 Docker イメージを作成し、AWS ECR にアップロードします。 帯域幅によっては、画像のアップロードに時間がかかる場合があります。 Bento を AWS EC2 にデプロイするには、Terraform ファイルを使用します。
Swagger UI にアクセスするには、EC2 コンソールに接続し、ブラウザーでパブリック IP アドレスを開きます。 最後に、Stable Diffusion BentoML サービスが不要になった場合は、デプロイメントを削除します。
まとめ
SDとそのコンパニオンモデルの魅力と力強さを実感していただけるはずです。 コンセプトをさらに反復するか、より洗練されたアプローチに移行するかは、時が経てばわかります。
ただし、現在、環境と指示をよりよく把握できるように調整して、より大きなモデルをトレーニングするイニシアチブが進行中です。 BentoML を使用して Stable Diffusion サービスの開発を試み、AWS EC2 にデプロイしました。
AWS EC2 にサービスをデプロイすることで、Stable Diffusion モデルをより強力なハードウェアで実行し、低レイテンシーで画像を作成し、単一のコンピューターを超えて拡張することができました。
コメントを残す