Amazon Web Services ブログ

RAGを活用した Stable Diffusion のプロンプト改善

テキストからの画像生成 (text-to-Image) は、AIの急速に成長している分野であり、メディアとエンターテインメント、ゲーム、eコマース製品の視覚化、広告とマーケティング、建築設計と視覚化、芸術作品、医療画像など、さまざまな分野で応用されています。

Stable Diffusion は、text-to-Image モデルで、高品質の画像を数秒で作成できます。AWSは2022 年 11 月に、モデル、アルゴリズム、ソリューションを提供する機械学習 (ML) ハブである Amazon SageMaker JumpStart で、 Stable Diffusion のモデルを使用して、テキストから画像を生成できることを発表しました。2023年4月に Amazon Bedrock が導入され、その進化は続きました。Amazon Bedrockは、便利なAPIを通じて Stable Diffusion を含む最先端の基盤モデルへのアクセスを提供するフルマネージドサービスです。

text-to-image の取り組みに着手する顧客の数が増え続けるにつれ、共通のハードルが生じます。それは、高品質で目的に基づいた画像を生成するためのプロンプトを、どのように作成するかということです。この課題では、ユーザーが自分のビジョンに合ったプロンプトを見つけるために繰り返し実験を行うため、かなりの時間とリソースが必要になることがよくあります。

RAGは、言語モデルが外部データソースからコンテキストドキュメントを取得し、この情報を使用してより正確で有益なテキストを生成するプロセスです。この手法は、知識集約型の自然言語処理 (NLP) タスクに特に役立ちます。私たちは今、その変革的な手法をtext-to-image の世界にまで広げています。このブログでは、検索拡張生成(RAG) の力を利用して Stable Diffusion モデルに送信されるプロンプトを強化する方法を示します。Amazon Bedrock と SageMaker JumpStart では、大規模言語モデル (LLM) を使用して、プロンプト生成用の独自の AI アシスタントを数分で作成できます。

text-to-image のプロンプトの作成方法

text-to-image モデルのプロンプトの作成は、一見簡単そうに見えるかもしれませんが、実は複雑な作業です。単に言葉をいくつか入力して、モデルがあなたの心の中のイメージに合った画像を並べることを期待するだけの作業ではありません。効果的なプロンプトは、創造性の余地を残しながら、明確な指示を提供する必要があります。具体性とあいまいさのバランスを取る必要があり、使用する特定のモデルに合わせて調整する必要があります。プロンプトエンジニアリングの課題に対処するために、業界ではさまざまなアプローチを模索してきました。

  • プロンプトライブラリ — 一部の企業では、ユーザーがアクセスしてカスタマイズできる事前に作成されたプロンプトのライブラリを用意しています。これらのライブラリには、さまざまなユースケースに合わせたさまざまなプロンプトが含まれているため、特定のニーズに合わせてプロンプトを選択または調整できます。
  • プロンプトテンプレートとガイドライン — 多くの企業や組織は、定義済みのプロンプトテンプレートとガイドラインのセットをユーザーに提供しています。これらのテンプレートが提供するプロンプトを書くための構造化されたフォーマットにより、効果的な指示を簡単に作成できます。
  • コミュニティとユーザーの貢献 — 多くの場合、クラウドソーシングプラットフォームとユーザーコミュニティは、プロンプトを改善する上で重要な役割を果たします。ユーザーは、微調整したモデル、成功したプロンプト、ヒント、ベストプラクティスをコミュニティと共有して、他のユーザーがプロンプト作成スキルを学んだり磨いたりするのに役立てます。
  • モデルの微調整 — 企業は、特定の種類のプロンプトをよりよく理解して対応できるように、text-to-image モデルを微調整する場合があります。微調整を行うと、特定のドメインやユースケースのモデルパフォーマンスを向上させることができます。

これらの業界アプローチは、効果的な text-to-image プロンプトを作成するプロセスを、より利用しやすくユーザーフレンドリーで効率的なものにし、最終的には、幅広い用途における text-to-image モデルの使いやすさと汎用性を高めることを目的としています。

プロンプトデザインに RAG を使用する

このセクションでは、これらの既存のアプローチと調和しながら、RAG の手法がプロンプトエンジニアリングのゲームチェンジャーとしてどのように役立つかについて詳しく説明します。RAG をプロセスにシームレスに統合することで、迅速な設計の合理化と効率の向上が可能になります。

プロンプトデータベースでのセマンティック検索

プロンプトの膨大なリポジトリをプロンプトライブラリに蓄積したり、特定のユースケースや目的に合わせて設計された多数のプロンプトテンプレートを作成したりしている企業を想像してみてください。従来、text-to-image プロンプトのインスピレーションを求めるユーザーは、これらのライブラリを手動で閲覧し、多くの場合、広範なオプションのリストをふるいにかけていました。このプロセスは時間がかかり、非効率的です。テキスト埋め込みモデルを使用してプロンプトライブラリからプロンプトを埋め込むことで、企業はセマンティック検索エンジンを構築できます。仕組みは次のとおりです。

  • プロンプトの埋め込み — 企業はテキスト埋め込みを使用して、ライブラリ内の各プロンプトを数値表現に変換します。これらの埋め込みは、プロンプトのセマンティックな意味とコンテキストをキャプチャします。
  • ユーザークエリ — ユーザーが独自のプロンプトを入力したり、希望する画像を説明したりすると、システムはその入力を分析して埋め込むこともできます。
  • セマンティック検索 — テキスト埋め込みを使用して、システムはセマンティック検索を実行します。ユーザーの入力とプロンプトライブラリの履歴データの両方を考慮して、ユーザーのクエリに基づいてライブラリから最も関連性の高いプロンプトを取得します。

プロンプトライブラリにセマンティック検索を実装することで、企業は従業員が膨大な量のプロンプトに簡単にアクセスできるようになります。このアプローチは、迅速な作成を促進するだけでなく、text-to-image の生成おける創造性と一貫性を促進します。

セマンティック検索からのプロンプト生成

セマンティック検索は関連するプロンプトを見つけるプロセスを合理化しますが、RAG はこれらの検索結果を使用して最適化されたプロンプトを生成する点で、さらに一歩進んでいます。仕組みは次のとおりです。

  • セマンティック検索結果 — ライブラリから最も関連性の高いプロンプトを取得すると、システムはこれらのプロンプトをユーザーの元の入力と一緒にユーザーに表示します。
  • テキスト生成モデル — ユーザーは検索結果からプロンプトを選択したり、好みの詳細情報を提供したりできます。システムは、選択したプロンプトとユーザーの入力の両方を LLM に送ります。
  • 最適化されたプロンプト — LLM は、言語のニュアンスを理解した上で、選択したプロンプトの要素とユーザーの入力を組み合わせて最適化されたプロンプトを作成します。この新しいプロンプトは、ユーザーの要件に合わせて調整され、目的の画像出力が得られるように設計されています。

セマンティック検索とプロンプト生成を組み合わせると、プロンプトを検索するプロセスが簡単になるだけでなく、生成されるプロンプトの関連性が高く効果的なものになります。これにより、プロンプトの微調整とカスタマイズが可能になり、最終的には text-to-image の生成結果が向上します。以下は、セマンティック検索とプロンプト生成のプロンプトを使用して Stable Diffusion XL から生成された画像の例です。

オリジナルのプロンプト セマンティック検索からのプロンプト LLMで最適化されたプロンプト

子犬のイラストレーション

  • 森の中を散歩する少年と犬のイラスト擬人化された犬の漫画イラスト、アニメスタイル、白い背景
  • コーギーの子犬を描いたペーパークラフト。とってもキュート、かわいい、ハッピー
  • 夕食のテーブルでサンドイッチを食べているかわいい犬のアニメーション、イラスト

森の中を散歩する少年と子犬のイラストレーション

さまざまな業界にわたる RAG ベースのプロンプトデザインアプリケーション

推奨する RAG アーキテクチャを検討する前に、画像生成モデルが最も適用しやすい業界から始めましょう。アドテックでは、スピードと創造性が重要です。RAG ベースのプロンプト生成は、広告キャンペーン用に多数の画像をすばやく作成するためのプロンプトを提案できるので、即座に価値を高めることができます。人間の意思決定者は、自動生成された画像を確認して、キャンペーンの候補画像を選択できます。この機能は、スタンドアロンアプリケーションにすることも、現在利用可能な一般的なソフトウェアツールやプラットフォームに組み込むこともできます。

Stable Diffusion モデルが生産性を高めることができるもう1つの業界は、メディアとエンターテイメントです。RAG アーキテクチャは、たとえばアバター作成のユースケースに役立ちます。シンプルなプロンプトから始めて、RAG はアバターのアイデアにもっと多くの色や特徴を加えることができます。多くのプロンプト候補を生成し、より創造的なアイデアを提供できます。これらの生成された画像から、特定のアプリケーションに最適な画像を見つけることができます。多くの迅速な提案が自動的に生成されるため、生産性が向上します。考えられるバリエーションこそが、ソリューションの直接的なメリットです。

ソリューション概要

お客様が独自の RAG ベースの AI アシスタントを構築して、AWS 上で迅速な設計を行えるようにしたことは、現代のテクノロジーの多用途性の証です。AWS は、この取り組みを促進するためのオプションとサービスを多数提供しています。次のリファレンスアーキテクチャ図は、AWS でのプロンプト設計用の RAG アプリケーションを示しています。

AI アシスタントに適切な LLM を選択する場合、AWS ではお客様固有の要件を満たすさまざまな選択肢を用意しています。

まず、専用インスタンスを利用して SageMaker JumpStart から入手できる LLM を選択できます。これらのインスタンスは、Falcon、Llama 2、Bloom Z、Flan-T5 などのさまざまなモデルをサポートしています。また、Cohere の Command と Multilingual Embedding や AI21 Labs の Jurassic-2 などの独自のモデルを試すこともできます。

よりシンプルなアプローチをご希望の場合は、AWS が Amazon BedrockAmazon Titan や Anthropic Claude などの LLM を提供しています。これらのモデルには、簡単な API 呼び出しで簡単にアクセスできるため、その機能を簡単に活用できます。柔軟性と多様なオプションにより、オープンコンテナによるイノベーションを求める場合でも、独自のモデルの堅牢な機能を求める場合でも、プロンプトデザインの目的に最も合致する LLM を自由に選択できます。

重要なベクトルデータベースの構築に関しては、AWS はネイティブサービスを通じて多数のオプションを提供しています。Amazon OpenSearch ServiceAmazon Aurora、または Amazon Relational Database Service (Amazon RDS) for PostgreSQL を選択できます。それぞれが特定のニーズに合わせて堅牢な機能を提供します。あるいは、Pinecone、Weaviate、Elastic、Milvus、Chroma などの AWS パートナーが提供する、ベクトルの効率的な保存と検索に特化したソリューションを提供する製品を探すこともできます。

プロンプトデザインのための RAG ベースの AI アシスタントの構築に役立つように、GitHub リポジトリに包括的なデモンストレーションをまとめました。このデモンストレーションでは、次のリソースを使用します。

  • 画像生成:Amazon Bedrock の Stable Diffusion XL
  • テキスト埋め込み:Amazon Bedrock の Amazon Titan
  • テキスト生成:Amazon Bedrock の Claude 2
  • ベクトルデータベース:FAISS (効率的な類似検索のためのオープンソースライブラリ)
  • プロンプトライブラリ:text-to-image 生成モデル用の最初の大規模プロンプトギャラリーデータセットである DiffusionDB のプロンプトサンプル

さらに、LLM の実装には LangChain を、Web アプリケーションコンポーネントには Streamit を組み込んで、シームレスでユーザーフレンドリーなエクスペリエンスを提供しています。

前提条件

このデモアプリケーションを実行するには、次のものが必要です。

  • AWS アカウント
  • Amazon SageMaker Studio の操作方法に関する基本的な理解
  • GitHub からリポジトリをダウンロードする方法の基本的な理解
  • ターミナルでのコマンド実行に関する基本的な知識

デモアプリケーションを実行する

必要なすべてのコードは、GitHub リポジトリから指示とともにダウンロードできます。アプリケーションがデプロイされると、次のスクリーンショットのようなページが表示されます。

このデモンストレーションでは、実装プロセスをわかりやすくわかりやすくすることを目指しています。実践的な経験を積んで、RAG の世界への旅をスタートさせ、AWS で設計を迅速に行えるようにします。

クリーンアップ

アプリを試した後、アプリケーションを停止してリソースをクリーンアップします。

結論

RAG は、Stable Diffusion の text-to-image 機能を復活させ、プロンプト・デザインの世界における画期的なパラダイムとして台頭してきました。RAG のテクニックを既存のアプローチと調和させ、AWS の強力なリソースを使用することで、創造性を合理化し、学習を促進する道筋が見えてきました。

その他のリソースについては、以下をご覧ください。

翻訳はソリューションアーキテクトの濱野谷(@yoshiehm)が担当しました。原文はこちらです。


著者について

James Yi は、アマゾン ウェブ サービスのエマージングテクノロジーチームのシニア AI/ML パートナーソリューションアーキテクトです。彼は、企業の顧客やパートナーと協力して、AI/ML アプリケーションの設計、デプロイ、スケーリングを行い、ビジネス価値を引き出すことに情熱を注いでいます。仕事以外では、サッカー、旅行、家族との時間を楽しんでいます。

Rumi Olsen は AWS パートナープログラムのソリューションアーキテクトです。現在の職務ではサーバーレスソリューションと機械学習ソリューションを専門としており、自然言語処理技術のバックグラウンドも持っています。彼女は余暇のほとんどを娘と過ごし、太平洋岸北西部の自然を探索しています。