Generative AI と Amazon Kendra を使用したエンタープライズ規模の画像キャプションと検索

Amazon Kendra は、 機械学習 (ML) を活用したインテリジェントな検索サービスです。Amazon Kendra は、ウェブサイトとアプリケーションの検索機能を再考し、従業員や顧客が組織内の複数の場所やコンテンツリポジトリに散在するコンテンツを簡単に見つけられるようにします。

Amazon クラウド テクノロジー開発者コミュニティは、開発者にグローバルな開発テクノロジー リソースを提供します。技術ドキュメント、開発事例、技術コラム、トレーニングビデオ、アクティビティやコンテストなどがあります。中国の開発者が世界最先端のテクノロジー、アイデア、プロジェクトとつながることを支援し、優れた中国の開発者やテクノロジーを世界のクラウド コミュニティに推奨します。まだ注目/お気に入りをしていない場合は、これを見たときに慌てずにクリックして、ここを技術の宝庫にしてください。

Amazon Kendra は、Microsoft Word、PDF、さまざまなデータソースのテキストなど、さまざまなドキュメント形式をサポートしています。この記事では、表示されたコンテンツから画像を検索できるようにする、Amazon Kendra ドキュメントでサポートされている拡張機能に焦点を当てます。多くの場合、画像はキーワードなどの補足メタデータを使用して検索できます。ただし、数万枚の画像に詳細なメタデータを追加するには、多くの手作業が必要です。Generative AI (GenAI) は、メタデータの生成を自動化するのに役立ちます。GenAI Caption Prediction は、テキスト キャプションを生成することで、画像に説明的なメタデータを提供します。その後、ドキュメントの取り込み中に、結果として得られたメタデータを使用して Amazon Kendra インデックスを強化し、手作業なしで画像を検索できるようになります。

Amazon Kendra は、 機械学習 (ML) を活用したインテリジェントな検索サービスです。Amazon Kendra は、ウェブサイトとアプリケーションの検索機能を再考し、従業員や顧客が組織内の複数の場所やコンテンツリポジトリに散在するコンテンツを簡単に見つけられるようにします。

Amazon Kendra は、Microsoft Word、PDF、さまざまなデータソースのテキストなど、さまざまなドキュメント形式をサポートしています。この記事では、表示されたコンテンツから画像を検索できるようにする、Amazon Kendra ドキュメントでサポートされている拡張機能に焦点を当てます。多くの場合、画像はキーワードなどの補足メタデータを使用して検索できます。ただし、数万枚の画像に詳細なメタデータを追加するには、多くの手作業が必要です。Generative AI (GenAI) は、メタデータの生成を自動化するのに役立ちます。GenAI Caption Prediction は、テキスト キャプションを生成することで、画像に説明的なメタデータを提供します。その後、ドキュメントの取り込み中に、結果として得られたメタデータを使用して Amazon Kendra インデックスを強化し、手作業なしで画像を検索できるようになります。

たとえば、画像のドキュメント取り込み中に、GenAI モデルを使用して、次の画像に対して「傘の下で地面に横たわっている犬」というテキストの説明を生成できます。

7-1.ML-14376-intro-dog.png

物体認識モデルは引き続き「犬」や「傘」などのキーワードを検出できますが、GenAI モデルは傘の下に横たわっている犬を識別することで、画像に表現されているものをより深く理解できるようになります。これは、画像検索プロセス中に、より洗練された検索を構築するのに役立ちます。テキストの説明は、Amazon Kendra 検索インデックスに Custom Document Enrichment (CDE) として自動的に追加されます。以下のスクリーンショットに示すように、ユーザーが「犬」または「傘」を検索すると、その画像を見つけることができます。

7-2.  ML-14376-ケンドラ検索.png

この記事では、 Amazon SageMaker にデプロイされた GenAI モデルを使用して Amazon Kendra で CDE を使用する方法を示します 。簡単な例を使用して CDE をデモンストレーションし、アマゾン ウェブ サービス アカウントの Amazon Kendra インデックスで CDE を体験できるようにステップバイステップのガイドを提供します。これにより、ユーザーは手動でタグ付けしたり分類したりせずに、自然言語クエリを通じて目的の画像を迅速かつ簡単に見つけることができます。このソリューションは、さまざまなアプリケーションや業界のニーズに応じてカスタマイズおよび拡張することもできます。

GenAI による画像キャプション付け

GenAI で画像を記述するには、ML アルゴリズムを使用して画像のテキスト記述を生成する必要があります。このプロセスは、画像キャプション作成とも呼ばれ、コンピューター ビジョンと自然言語処理 (NLP) の交差点にあります。データに画像だけでなくテキスト形式のメタデータが含まれる電子商取引などのマルチモーダル データの分野や、データに医師の記録や診断だけでなく MRI または CT スキャンが含まれる医療分野にも応用できます。いくつか例を挙げてみましょう。

GenAI モデルは、画像内のオブジェクトと特徴を認識することを学習し、それらのオブジェクトと特徴の説明を自然言語で生成します。最先端のモデルはエンコーダ/デコーダ アーキテクチャを使用しており、画像情報はニューラル ネットワークの中間層でエンコードされ、テキスト記述にデコードされます。これらは、画像からの特徴の抽出とテキスト キャプションの生成という 2 つの異なる段階として見ることができます。特徴抽出ステージ (エンコーダー) では、GenAI モデルが画像を処理して、オブジェクトの形状、色、テクスチャなどの関連する視覚的特徴を抽出します。字幕生成段階 (デコーダー) では、モデルは抽出された視覚的特徴に基づいて画像の自然言語記述を生成します。

GenAI モデルは通常、大量のデータでトレーニングされるため、追加のトレーニングなしでさまざまなタスクに適しています。また、少量の学習でカスタム データセットや新しいドメインに簡単に適応させることもできます。事前トレーニング方法を使用すると、最先端の言語モデルと画像モデルを簡単に使用してマルチモーダル アプリケーションをトレーニングできます。これらの事前トレーニング方法を使用すると、データに基づいて画像キャプション モデルとして最適な視覚モデルと言語モデルを選択することもできます。

生成された画像の説明の品質は、トレーニング データの品質と量、GenAI モデルのアーキテクチャ、特徴抽出およびキャプション アルゴリズムの品質によって異なります。GenAI を使用した画像記述は活発な研究分野ですが、画像検索、視覚的なストーリーテリング、視覚障害者向けのアクセシビリティなど、幅広いアプリケーションで非常に優れた結果を示しています。

GenAI 画像キャプションは、次の使用例で役立ちます。

  • 電子商取引 - 画像とテキストが共存する一般的な業界のユースケースは小売業です。特に電子商取引では、テキスト説明だけでなく商品画像などの大量のデータが保存されます。テキストの説明やメタデータは、検索クエリに基づいて最適な商品を表示するために非常に重要です。さらに、電子商取引 Web サイトがサードパーティのサプライヤーからデータを取得する傾向にあるため、商品の説明が不完全であることが多く、メタデータ列に正しい情報をラベル付けするために多大な労働時間と多大なオーバーヘッドが必要になります。GenAI ベースの画像キャプションは、この面倒なプロセスを自動化するのに最適です。ファッション画像やファッション製品の属性を説明するテキストなどのカスタム ファッション データに基づいてモデルを微調整すると、メタデータを生成してユーザーの検索エクスペリエンスを向上させることができます。

  • マーケティング - 画像検索のもう 1 つの使用例は、デジタル資産管理です。マーケティング会社は膨大な量のデジタル データを保管しており、これらのデータは一元管理され、簡単に検索でき、スケーラブルである必要があり、そのためにはデータ カタログが必要です。情報が豊富なデータ カタログを備えた一元化されたデータ レイクにより、作業の重複が削減され、クリエイティブ コンテンツの広範な共有が可能になり、チーム全体で一貫性が維持されます。企業環境でソーシャル メディア コンテンツの生成やプレゼンテーションをサポートするために広く使用されているグラフィック デザイン プラットフォームの場合、ユーザーが探している画像を表示し、ユーザーが自然言語クエリを使用して検索できるようにすることで、検索の高速化によりユーザー エクスペリエンスが向上します。

  • 製造 - 製造では、コンポーネント、建物、ハードウェア、機器の建築設計図などの大量の画像データが保存されます。このデータを検索できるため、製品チームは既存の出発点から設計を簡単に再作成できるため、設計のオーバーヘッドが大幅に削減され、設計生成プロセスが高速化されます。

  • ヘルスケア - 医師や医学研究者は、MRI や CT スキャン、標本サンプル、発疹や変形などの病気の画像、医師のメモ、診断、臨床試験の詳細を整理して検索できます。

  • メタバースまたは拡張現実 - 広告商品は、ユーザーが想像して共感できるストーリーを作成することです。AI を活用したツールと分析を使用すると、1 つのストーリーだけでなく、各ユーザーの独自の好みや感性にアピールするようにカスタマイズされたストーリーを構築することがこれまでより簡単になります。ここで、画像からテキストへのモデルがゲームのルールになる可能性があります。ビジュアル ストーリーテリングは、キャラクターを作成し、さまざまなスタイルに調整し、字幕を追加するのに役立ちます。また、メタバースや拡張現実、ビデオ ゲームなどの没入型コンテンツで刺激的な体験を推進するためにも使用できます。画像検索を使用すると、開発者、デザイナー、チームは自然言語クエリを使用してコンテンツを検索し、さまざまなチーム間でコンテンツの一貫性を維持できます。

  • 視覚障害者のためのデジタル コンテンツのアクセシビリティ - これは主に、スクリーン リーダー、点字システム (触覚読み書きを可能にする)、特殊キーボード (インターネット上の Web サイトやアプリケーションをナビゲートするため) などの支援技術によって実現されます。ただし、画像はテキスト コンテンツとして配信され、その後音声の形式で伝達される必要があります。GenAI アルゴリズムを使用した画像キャプションは、インターネットをより包括的なものに再設計するための重要な部分であり、誰もがオンライン コンテンツにアクセスし、理解し、対話する機会を提供します。

カスタム データセットのモデルの詳細とモデルの微調整

このソリューションでは、   Apache 2.0 ライセンスに基づいて Hugging Face から入手可能なvit-gpt2-image-captioningモデルを、さらに微調整することなく利用しました。画像データの基本モデルはVit、言語の基本モデルはGPT-2です。この 2 つをマルチモーダルに組み合わせることで、画像キャプションの機能が提供されます。Hugging Face は、数回クリックするだけで Amazon クラウド テクノロジーにデプロイできる最先端の画像キャプション モデルをホストし、簡単なデプロイ推論エンドポイントを提供します。事前トレーニングされたモデルを直接使用することもできますが、ドメイン固有のデータセット、より多くのデータ タイプ (ビデオ データや空間データなど)、および固有のユースケースに合わせてモデルをカスタマイズすることもできます。GenAI モデルはいくつかありますが、その中には特定のデータセットで適切にパフォーマンスを発揮するものもあります。あるいは、チームがすでにビジョン モデルと言語モデルを使用している可能性もあります。このソリューションは、使用するモデルを直接置き換えることにより、画像キャプション モデルとして最高のパフォーマンスを発揮するビジョンおよび言語モデルを選択する柔軟性を提供します。

独自の業界アプリケーションに合わせてカスタマイズされたモデルの場合、Amazon クラウド テクノロジーの Hugging Face オープンソース モデルは、いくつかの可能性を提供します。事前トレーニングされたモデルは、特定のデータセットでテストしたり、ラベル付きデータのサンプルでトレーニングして微調整したりできます。新しい研究方法により、視覚モデルと言語モデルを効率的に組み合わせて、データセット上でトレーニングすることもできます。この新しくトレーニングされたモデルは、このペーパーで説明されているように、画像キャプションを作成するために SageMaker にデプロイできます。

カスタム イメージ検索の例としては、エンタープライズ リソース プランニング (ERP) があります。ERP では、物流やサプライ チェーン管理のさまざまな段階から収集された画像データには、税の領収書、サプライヤーの注文、給与計算などが含まれる場合があり、これらは組織内のさまざまなチームによるレビューのために自動的に分類される必要があります。もう 1 つの例は、医療スキャンと医師の診断を使用して新しい医療画像を予測し、自動分類することです。ビジョン モデルは MRI、CT、または X 線画像から特徴を抽出し、テキスト モデルはそれらに医療診断のキャプションを付けます。

ソリューションの概要

次の図は、GenAI と Amazon Kendra を使用した画像検索アーキテクチャを示しています。

7-3.  ML-14376-アーキテクチャ.png

Amazon Simple Storage Service  (Amazon S3) から Amazon Kendra にイメージを取り込みます 。Amazon Kendra への取り込み中に、SageMaker でホストされている GenAI モデルが呼び出され、画像の説明が生成されます。さらに、  画像内に表示されるテキストはAmazon Textractによって抽出されます。画像の説明と抽出されたテキストはメタデータとして保存され、Amazon Kendra 検索インデックス作成に使用できます。取り込まれた画像は、  Amazon Kendra Search Console、API、または SDKを介して 検索できます。

Amazon Kendra の CDE ハイレベルオペレーションを使用して、 画像取り込みステップ中に GenAI モデルと Amazon Textract を呼び出します。ただし、CDE はより幅広いユースケースで使用できます。CDE を使用すると、ドキュメントが Amazon Kendra に取り込まれるときに、ドキュメントの属性とコンテンツを作成、変更、または削除できます。これは、必要に応じてデータを操作したり取り込んだりできることを意味します。これは、取り込み中に Amazon Lambda関数を取り込み前および取り込み後に呼び出すことで 実現でき、これによりデータの強化や変更が可能になります。たとえば、医療テキストデータを取り込む場合、  Amazon Medical Comprehend を使用して 、ML で生成された洞察を検索メタデータに追加できます。

次の手順に従って、当社のソリューションを使用して Amazon Kendra を通じて画像を検索できます。

  1. S3 バケットなどのイメージ リポジトリにイメージをアップロードします。

  2. 次に、Amazon Kendra は、構造化データと非構造化データの両方を検索するために使用できる検索エンジンであるイメージ リポジトリにインデックスを付けます。インデックス作成プロセス中に、GenAI モデルと Amazon Textract が呼び出され、画像メタデータが生成されます。インデックス作成は手動で、または事前定義されたスケジュールに基づいてトリガーできます。

  3. その後、Amazon Kendra コンソール、SDK、または API を介して、「赤いバラの画像を検索」や「公園で遊んでいる犬の写真を表示」などの自然言語クエリを使用して画像を検索できます。これらのクエリは Amazon Kendra によって処理されます。Amazon Kendra は、ML アルゴリズムを使用してクエリの背後にある意味を理解し、インデックス付きリポジトリから関連する画像を取得します。

  4. 検索結果は対応するテキストの説明とともに表示されるため、目的の画像をすばやく簡単に見つけることができます。

前提条件

次の前提条件を満たしている必要があります。

原価見積

概念実証としてこのソリューションを導入する場合の推定コストを次の表に示します。これが、実稼働ワークロードには推奨されませんが、開発者に低コストのオプションを提供する Amazon Kendra Developer Edition を使用する理由です。Amazon Kendra の検索機能が 20 営業日にわたって 1 日あたり 3 時間使用されると想定し、60 か月のアクティブ時間に関連するコストを計算します。

仕える 時間の消費 月額費用の目安
アマゾンS3 データ転送を含めて 10 GB のデータを保存 $2.30
アマゾン・ケンドラ Developer Edition、月あたり 60 時間の使用 $67.90
Amazon テキスト抽出 10,000 枚の画像で 100% 文書テキスト検出 $15.00
Amazon SageMaker ml.g4dn.xlarge を使用して、モデルごとに 1 つのエンドポイントにリアルタイム推論を 1 日あたり 3 時間、20 日間デプロイします。 $44.00
$129.2

Amazon CloudFormation を使用してリソースをデプロイする

CloudFormation スタックは次のリソースをデプロイします。

  • Hugging Face Center から画像キャプション モデルの Lambda 関数をダウンロードし、モデル アセットを構築します
  • 推論コードと圧縮モデルアーティファクトをターゲット S3 バケットに移入する Lambda 関数
  • 圧縮モデルアーティファクトと推論コードを保存するための S3 バケット
  • アップロードされた画像と Amazon Kendra ドキュメントを保存する S3 バケット
  • 検索用の Amazon Kendra インデックス生成された画像キャプション
  • Hugging Face から画像キャプション モデルをデプロイするための SageMaker リアルタイム推論エンドポイント
  • Amazon Kendra インデックスがオンデマンドで強化されるときにトリガーされる Lambda 関数。これは、Amazon Textract および SageMaker リアルタイム推論エンドポイントを呼び出します。

さらに、Amazon CloudFormation は、 カスタム リソース Lambda 関数を実行するために必要なすべてのAmazon Identity and Access Management (IAM) ロールとポリシー、VPC、サブネット、セキュリティ グループ、インターネット ゲートウェイをデプロイします。

リソースをプロビジョニングするには、次の手順を実行します。

  1. 「Launch Stack」をクリックして、us-east-1ゾーン内でCloudFormation テンプレートを起動します。

https://us-east-1.console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?stackName=kendra-genai-image-search&templateURL=https://aws -blogs-artifacts-public.s3.amazonaws.com/artifacts/ML-14376/kendra-genai-image-search.yaml?trk=cndc-detail

2. 「次へ」をクリックします。

3. [スタックの詳細の指定]ページで、[テンプレート URL] と [パラメータ ファイル S3 URI] をデフォルト値のままにして、 [次へ]をクリックします。

4.後続のページでも「次へ」をクリックし続けます。

5. 「スタックの作成」をクリックしてスタックをデプロイします。

スタックの状態を監視します。ステータスがCREATE_COMPLETEと表示されたら、デプロイメントは完了です。

サンプル画像の取り込みと検索

画像を取り込んで検索するには、次の手順を実行してください。

  1. Amazon S3 コンソールで、us-east-1 リージョンのS3 バケットにという名前のフォルダーkendra-image-search-stack-imagecaptions を作成します。images

  2. 以下の画像をimagesフォルダーにアップロードします。

7-4-1ML-14376-ビーチ-300x201.png

7-5.ML-14376-誕生日-犬-300x200.png

7-6.ML-14376-犬-300x201.png

7-7.ML-14376-ニュースレター-300x199.png

3.us-east-1リージョンの Amazon Kendra コンソールに移動します。

4. ナビゲーションペインで、[インデックス]を選択し、インデックス ( kendra-index) を選択します。

5.データ ソースを選択し、次に を選択します generated_image_captions

6. [今すぐ同期]を選択します。

次のステップに進む前に、同期が完了するまで待ってください。

7. ナビゲーションペインで、[インデックス作成]を選択し、次に を選択しますkendra-index

8. Search Consoleに移動します。

9. 「犬」、「傘」、「ニュースレター」のクエリを単独または組み合わせて試して、Amazon Kendra がどの画像を上位にランク付けしているかを確認します。

画像のアップロードに適した独自のクエリを自由にテストしてください。

そうじする

すべてのリソースをプロビジョニング解除するには、次の手順を実行します。

  1. Amazon CloudFormation コンソールのナビゲーションペインで[スタック]を選択します。

  2. スタックを選択し kendra-genai-image-search 、[削除]を選択します。

スタックの状態が DELETE_COMPLETEに変わるまで待ちます。

結論は

この記事では、Amazon Kendra と GenAI を組み合わせて、画像に意味のあるメタデータを自動的に作成する方法について説明しました。最先端の GenAI モデルは、画像コンテンツに基づいてテキスト キャプションを生成するのに適しています。これには、ヘルスケアとライフサイエンス、小売と電子商取引、デジタル資産プラットフォームとメディアなどの業界で幅広いユースケースがあります。画像キャプションは、より包括的なデジタル世界を構築し、視覚障害者のニーズに対応するためにインターネット、メタバース、没入型テクノロジーを再設計するためにも重要です。

キャプション対応の画像検索により、これらのアプリケーションのデジタル コンテンツを手作業なしで簡単に検索できるようになり、労力の重複がなくなりました。当社が提供する CloudFormation テンプレートを使用すると、このソリューションを簡単かつ直感的にデプロイして、Amazon Kendra を介した画像検索を可能にします。Amazon S3 に画像を保存し、GenAI を使用して画像のテキスト説明を作成するシンプルなアーキテクチャを Amazon Kendra の CDE で使用して、このソリューションを提供できます。

これは GenAI と Amazon Kendra のアプリケーションの 1 つにすぎません。GenAI と Amazon Kendra を使用したアプリケーションの構築の詳細については、「Amazon Kendra、LangChain、および大規模言語モデルを使用して高精度の生成 AI エンタープライズ データ アプリケーションを迅速に構築する」を参照してくださいGenAI アプリケーションの構築とスケーリングについては、  Amazon Bedrockをチェックすることをお勧めします。

記事のソース: https://dev.amazoncloud.cn/column/article/64e5e3785cf856038494b8cf?sc_medium=regulatorytraffic&sc_campaign=crossplatform&sc_channel=CSDN

おすすめ

転載: blog.csdn.net/u012365585/article/details/132593132