Amazon Web Services ブログ

生成 AI で加速する e コマースの変革 その 2 – AWS Summit Japan 2024 で展示した Amazon Bedrock デモの解説

みなさんこんにちは。シニアソリューションアーキテクトの堀内です。私は、日頃 e コマース(以下 EC ) 業界の企業様を支援しております。

本ブログでは以下 2回に分けて、EC業界における生成AI活用ユースケースについて解説をしています。

その 1:EC 業界における課題と生成 AI ユースケースによる解決案の整理
その 2:ユースケースの実装例として AWS Summit Japan 2024 で展示した Amazon Bedrock デモの解説

今回は前回ご紹介した EC 業界における代表的な生成 AI ユースケースについて、Amazon Bedrock を利用した具体的な実装例として AWS Summit Japan 2024 で展示したデモの解説を行います。

代表的な生成 AI ユースケースが解決する業界課題背景に興味のある方は、以下その 2 のブログリンクをご覧ください。
https://aws.amazon.com/jp/blogs/news/aws-summit-2024-retail-cpg-ec-genai-usecases-and-solutions/

AWS Summit Japan 2024 EXPO 流通小売消費財ブースでデモ展示したサンプル実装

前回ご紹介したユースケースについて、お客様実装の加速していただくために、Amazon Bedrock を利用したユースケース実装をソリューションアーキテクトにて作成し、AWS Summit Japan 2024 のEXPO 流通小売消費財ブースにてデモ展示を実施しました。
結果として多くの方に足を止めていただき、非常に関心が高い事項であると実感しました。

図2 AWS Summit Japan 2024 流通小売消費財ブースの様子

展示したデモは、上述した 4 つのユースケースを Amazon Bedrock で提供される多様なモデルを利用したシンプルな参照実装です。
画面上で 4 つのユースケースを切り替えて、生成 AI によるユースケースを体感することが可能です。
※こちらのデモ実装については現在公開を予定して準備をしています。公開までお待ちいただければ幸いです。

図3 Amazon Bedrock による EC 業界 ユースケースデモ

アーキテクチャ

このデモのアーキテクチャは非常にシンプルで、Amazon ECS 上に Steamlit で実装された簡易的な Web アプリケーションがデプロイされており、HTTP/S にてアクセスが可能です。

Steamlit 上の Python スクリプトにより、Amazon Bedrock の API を呼び出し、各種生成 AI のプロンプト実行と結果の取得を行います。
モデルは、画像生成には Amazon Titan Image Generator G1、テキスト処理の LLM には Anthropic Claude 3 Haiku、検索時のベクトル化(Embedding)には、 Amazon Titan Multimodal Embeddings G1 を Amazon Bedrock の API から利用しています。

図4 Amazon Bedrock による EC ユースケースデモ

各機能の実装解説

1. 製品デザイン案生成

新たな製品のデザインをする際のネタとなる商品画像と、デザイン案のイメージをプロンプトとして渡すことで、製品デザイン案を複数生成する実装です。

以下の例では白いスニーカーを元画像として、「カラフルな革靴、白い紐、ハートロゴ」というデザイン案のイメージを渡すことでデザイン案を複数生成させています。

図5 製品デザイン案生成のデモ画面(左がインプット、右がアウトプット)

利用モデルAmazon Titan Image Generator G1

仕組み

  1. マスク画像の自動生成
    1. Titan Image Generator の inpaint によって投稿された画像の一部領域のみを再生成します。
    2. inpaint 機能では maskPrompt でプロンプトとして修正する領域を指示することも可能ですが、輪郭を正確にマスクすることは難しいため、 rembg という Python ライブラリを使用してマスク画像(0/1表現の白黒画像)を生成し、商品部分である白い部分を再生成するように2値変換し Titan Image Generator にパラメーターとしてリクエストします。
  2. 日本語プロンプトへの対応
    1. プロンプトを Amazon Bedrock に渡す際に Amazon Translate を利用して英訳しています。そのため、日本語プロンプトを入力しても問題なく動作します。
  3. 画像生成
    1. Amazon Bedrock の Titan Image Generator モデルを使用して、ユーザーが入力したプロンプトに基づいて画像を編集 − Inpaint を利用することで、マスク部分以外の画像生成を行います

2. 商品説明文生成

商品画像、商品名、商品の特徴(自由入力で素材や季節、生地の厚さ等を入力)を元にその商品の分析を行い、商品説明文に含めたいトピックとして指定した項目にしたがい商品説明文を生成する実装です。
合わせて、商品カテゴリやインスタグラムに対する投稿原稿も生成します。

図6 商品説明文生成のデモ画面(左がインプット、右がアウトプット)

利用モデルAnthropic Claude 3 Sonnet / Haiku(切り替え可能)

仕組み

  1. 商品画像、商品名、商品の特徴(自由入力で素材や季節、生地の厚さ等を入力)をインプットにその商品の分析を Claude3 で実施するプロンプトを実行しています
    1. <your role>あなたは、Eコマースにおける売場づくりのプロフェッショナルです。</your role>
      <instruction>
      新商品 {focus_item}の販売促進のために、Eコマースサイトでユーザーが思わず購入したくなるような魅力的な商品説明を考えてください。
      あなたが読み込んだ画像は{focus_item}の写真です。
      {focus_item}の色や種類を分析し、この商品を具体的に説明してください。商品の特徴が feature に記載されます。
      説明文の提案は step に則って作成してください。
      </instruction>
      <step>
      ステップ1: 商品の基本情報を確認する
      ステップ2: ターゲット層を設定する
      ステップ3: ターゲット層に合わせた言葉遣いやトーンを決める
      ステップ4: 概要を書く
      ステップ5: 埋めるべき各項目を書く
      ステップ6: 全体を通して推敲する
      </step>
      <feature>
      {feature}
      </feature>
      <topic>
      {topic}
      </topic>
      <constraint>
      アウトプットは topic に記載された項目に沿って記載してください。
      最後に推奨ターゲット層とそれに合わせた販売チャネルについて提案してください。
      なお、XMLタグは出力しないでください。
      </constraint>
    2. ここでは以下複数の Claude に関するプロンプトテクニックを利用しています
      1. Claudeに役割を与える:E コマースにおける売場づくりのプロフェッショナル という役割を与えています
      2. XMLタグを使用する:UI により与えられる素材等の情報を タグ内に配置することで構造化します
      3. Chain of Thought(CoT):商品説明文に含まれる要素を分解可能であれば、思考ステップとして定義することでより具体的な文面生成が可能です
      4. ※詳しくはこちらの Anthropic 公式プロンプトエンジニアリングガイドを参照ください。

3. 商品背景画像生成

元商品画像をアップロードしイメージを指示することで、商品画像や広告画像を用意する際の背景生成案を複数生成する実装です。

以下の例ではワインボトルを元画像として、以下のようなイメージを渡すことで背景生成案を複数生成させています。

プロのカメラマンが撮影した商品画像、大理石のテーブルの上に、たくさんの果物が置かれている、背景は少しボケている

図7 商品背景画像生成のデモ画面(左がインプット、右がアウトプット)

利用モデルAmazon Titan Image Generator G1

仕組み

  1. マスク画像の自動生成
    1. Titan Image Generator の inpaint によって投稿された画像の一部領域のみを再生成します。
    2. inpainnt 機能では maskPrompt でプロンプトとして修正する領域指示も可能ですが、輪郭を正確にマスクすることは難しいため、 rembg という Python ライブラリを使用してマスク画像(0/1表現の白黒画像)を生成し、商品部分である白い部分を再生成するように2値変換し Titan Image Generator にパラメーターとしてリクエストします。
      1. ※「1. 製品デザイン案生成」と同様の実装ですが、マスク画像を2値化する際に、背景か商品かどちらを 0 にするかのみが異なります。
  2. 日本語プロンプトへの対応
    1. プロンプトを Amazon Bedrock に渡す際に Amazon Translate を利用して英訳しています。そのため、日本語プロンプトを入力しても問題なく動作します。
  3. 画像生成
    1. Amazon Bedrock の Titan Image Generator モデルを使用して、ユーザーが入力したプロンプトに基づいて画像を編集 − Inpaint を利用することで、マスク部分以外の画像生成を行います

4. 商品検索/比較アシスタント

商品説明文や商品画像をベクトル DB にベクトルとして格納し、商品検索時に入力したテキストや画像と意味的に近いものを取得できる、マルチモーダル検索/セマンティック検索の実装です。
加えて、商品検索結果について、検索者のペルソナに合わせて説明文をパーソナライズして生成します。

図8 商品検索/比較アシスタント(左がインプット、右がアウトプット)
※「健康でヘルシーなご飯」に意味合いの近い、和食やそばが検索結果上位に来ており、セマンティックサーチができていることがわかります

利用モデルAnthropic Claude 3 Haiku, Amazon Titan Multimodal Embeddings G1

仕組み

  • 事前データ投入
    • 商品説明文、商品画像についてAmazon Titan Multimodal Embeddings G1 モデルによりベクトルが計算され、ベクトル DB である FAISS に格納されます
  • 商品検索
    • 検索時に検索ワードや投稿画像をAmazon Titan Multimodal Embeddings G1でベクトル化し、あらかじめ格納されている商品のベクトルと比較した際のコサイン類似度をもとに、類似度の降順に並べられた商品一覧をFAISSから取得します
    • 商品一覧が表示される際には、検索窓に入力されたテキストと検索者のペルソナ(年齢や性別、趣味等)情報を考慮して Amazon Bedrock Claude 3 Haiku がユーザへのメッセージを生成、表示します
  • 商品比較
    • 検索窓に入力されたテキストと検索者のペルソナ(年齢や性別、趣味等)の情報を考慮して Amazon Bedrock Claude 3 Sonnet が商品一覧トップの商品と他の商品との比較説明を生成、表示します

図9 商品検索/比較アシスタントの処理の流れ

今すぐ生成 AI の自社適用を始めましょう

本ブログでは AWS が日頃支援活動する中で得られたインサイトから、 EC における生成 AI ユースケースを整理し、それらユースケースの実装例として AWS Summit Japan 2024 で展示したデモの解説を行いました。

これらのユースケースは、御社の課題解決に役立つ可能性があります。
ユースケースの中から御社に適したものを特定し、明日からでも生成 AI の活用を始めることができます。
AWS は、本ブログでご紹介した、サービス / Workshop / デモ を含め、ユースケース特定から実装サポートまで、一貫したサービスやご支援を提供しています。
生成 AI は、EC ビジネスに大きな変革をもたらす可能性を秘めています。
その恩恵を御社でも享受するため、今すぐ一歩を踏み出しましょう。

このブログをご覧になってもう少し内容を詳しく聞きたいというお客様がいらっしゃいましたら、AWS担当営業もしくはこちらの窓口までご連絡頂ければと思います。
AWS のエキスパートチームが、全力でサポートいたします。


ブログ著者とデモ作者

本ブログ著者:

堀内 保大 (Yasuhiro Horiuchi) / @ka_shino_ki
アマゾン ウェブ サービス ジャパン合同会社 シニアソリューションアーキテクト

Web系の特にEコマース関連のお客様をビジネス起点から技術面まで横断的に支援しています。
好きなサービスは、AWS Fargate でコンテナに関連したサービスに興味があります。趣味は旅行とスノーボードです。

また、本ブログにて紹介したデモは AWS Japan のソリューションアーキテクト 堀内 保大、中島 佑樹、小林 大樹、長谷川 大、長友 健人 が開発しました。