arrow_back

Vertex AI の Gemini API を使用したマルチモーダル検索拡張生成(RAG)

ログイン 参加
700 以上のラボとコースにアクセス

Vertex AI の Gemini API を使用したマルチモーダル検索拡張生成(RAG)

ラボ 1時間 universal_currency_alt クレジット: 5 show_chart 中級
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

GSP1231

概要

Gemini は、Google DeepMind が開発した生成 AI モデルのファミリーであり、マルチモーダル ユースケース用に設計されています。

検索拡張生成(RAG)は、LLM が外部データにアクセスできるようにするための一般的なパラダイムで、ハルシネーションを軽減するためのグラウンディング メカニズムとしても使用されています。RAG モデルは、大規模なコーパスから関連するドキュメントを取得し、取得したドキュメントに基づいて回答を生成するようにトレーニングされています。このラボでは、テキストと画像の両方を含む財務ドキュメントに対して Q&A を行うマルチモーダル RAG の実行方法について学習します。

テキストベースの RAG とマルチモーダル RAG の比較

マルチモーダル RAG には、テキストベースの RAG と比べて以下のような利点があります。

  1. ナレッジベースへのアクセスの強化: マルチモーダル RAG は、テキスト情報と視覚情報の両方にアクセスして処理でき、より充実した包括的なナレッジベースを LLM に提供できます。
  2. 推論能力の向上: マルチモーダル RAG では、視覚的な手がかりを組み込むことで、異なる種類のデータ モダリティから、より情報に基づいた推論を行うことができます。

このラボでは、Vertex AI の Gemini API、テキスト エンベディングマルチモーダル エンベディングと RAG を組み合わせて使用して、ドキュメント検索エンジンを構築する方法について説明します。

前提条件

このラボを開始する前に、以下について理解しておく必要があります。

  • 基本的な Python プログラミング。
  • 一般的な API のコンセプト。
  • Vertex AI Workbench の Jupyter ノートブックでの Python コードの実行。

目標

このラボでは、次の方法について学びます。

  • テキストと画像の両方を含むドキュメントのメタデータを抽出して保存し、ドキュメントのエンベディングを生成する
  • テキストクエリを使用してメタデータを検索し、類似したテキストまたは画像を見つける
  • 画像クエリを使用してメタデータを検索し、類似した画像を見つける
  • テキストクエリを入力として使用し、テキストと画像の両方を使用してコンテキストに沿った回答を検索する

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの詳細] ペインでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの詳細] ペインでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。

タスク 1. Vertex AI Workbench でノートブックを開く

  1. Google Cloud コンソールのナビゲーション メニュー)で、[Vertex AI] > [ワークベンチ] の順にクリックします。

  2. インスタンスを見つけて、[JupyterLab を開く] ボタンをクリックします。

Workbench インスタンスの JupyterLab インターフェースが新しいブラウザタブで開きます。

タスク 2. ノートブックを設定する

  1. ファイルを開きます。

  2. [Select Kernel] ダイアログで、使用可能なカーネルのリストから [Python 3] を選択します。

  3. ノートブックの「Getting Started」(スタートガイド)セクションと「Import libraries」(ライブラリのインポート)セクションをすべて実行します。

    • [Project ID] に を使用し、[Location] に を使用します。
注: 「Colab only」(Colab のみ)と記載されているノートブック セルの実行は省略できます。 いずれかのノートブック セルの実行で 429 応答が返される場合は、1 分待ってから再度セルを実行し、次に進んでください。

[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。 Gen AI SDK for Python をインストールしてライブラリをインポートする

次のセクションでは、ノートブック セルの実行を通して、Gemini API を使用してマルチモーダル RAG システムを構築する方法を確認します。

タスク 3. カスタム Python ユーティリティと必要なファイルをダウンロードする

Gemini 2.0 Flash(gemini-2.0-flash)モデルは、自然言語タスク、マルチターンのテキストおよびコードチャット、コード生成を処理するように設計されています。このセクションでは、読みやすさを向上させるために、このノートブックに必要ないくつかのヘルパー関数をダウンロードします。GitHub で直接コード(intro_multimodal_rag_utils.py)を表示することもできます。

  1. このタスクでは、ノートブック セルの実行を通して、モデルの読み込みとヘルパー関数のダウンロードを行い、Cloud Storage からドキュメントと画像を取得します。

[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。 Cloud Storage から画像とドキュメントをダウンロードする

タスク 4. テキストと画像を含むドキュメントのメタデータを構築する

このラボで使用するソースデータは、Google-10K の変更バージョンで、企業の財務実績、事業運営、管理、リスク要因の包括的な概要を提供します。オリジナルのドキュメントはかなり大きいため、代わりに 14 ページのみの変更バージョンを使用します。このバージョンはパート 1パート 2 の 2 つに分かれています。ボリュームを小さくしていますが、サンプル ドキュメントには、テキストに加えて、表、チャート、グラフなどの画像も含まれています。

  1. このタスクでは、ノートブック セルの実行を通して、ドキュメントからテキストと画像のメタデータを抽出して保存します。
注: ドキュメントからテキストと画像のメタデータを抽出して保存するセルの完了には数分かかる場合があります。

[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。 ドキュメントからテキストと画像のメタデータを抽出して保存する

タスク 5. テキスト検索

では、簡単な質問で検索を開始し、テキスト エンベディングを使用したシンプルなテキスト検索で、その質問に回答できるかどうかを確認しましょう。期待される回答は、さまざまな株式タイプについて、Google の 1 株あたり当期純利益と希薄化当期純利益の値を示すことです。

  1. このタスクでは、ノートブック セルの実行を通して、テキストクエリを使用して類似したテキストと画像を検索します。

[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。 テキストクエリで類似テキストを検索する

タスク 6. 画像検索

画像を検索するにあたり、単語を入力する代わりに、実際の画像を手がかりとして使用します。2 年間の収益費用に関する数字が記載された表があり、同じドキュメントまたは複数のドキュメントから、その表に似た他の画像を見つけたいと思っています。

Gemini とエンベディングを活用して、ユーザー入力に基づいて類似したテキストや画像を特定する機能は、マルチモーダル RAG システムの開発において重要な基盤となります。これについては、次のタスクで取り上げます。

  1. このタスクでは、ノートブック セルの実行を通して、画像クエリに類似した画像を検索します。
注: このタスクのスコアが表示されるまで、数分かかる場合があります。

[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。 画像クエリで類似画像を検索する

比較推論

クラス A の Google 株が、S&P 500 や他のテクノロジー企業などの他の株と比較してどのように推移したかを示すグラフがあるとします。クラス C の株が、そのグラフと比較してどのように推移したかを知りたいと思っています。単に類似した画像を探すのではなく、関連する画像を比較して、どの株に投資するのが良いかを答えるように Gemini に指示することができます。この場合、Gemini はそのように考えた理由も説明します。

  1. このタスクでは、ノートブック セルの実行を通して、2 つの画像を比較し、最も類似した画像を見つけます。

[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。 比較推論

タスク 7. マルチモーダル検索拡張生成(RAG)

では、すべてをまとめてマルチモーダル RAG を実装しましょう。マルチモーダル RAG を実装するには、前のセクションで説明したすべての要素を使用します。手順は以下のとおりです。

  • ステップ 1: ユーザーはテキスト形式でクエリを入力します。期待される情報はドキュメント内にあり、画像やテキストに埋め込まれています。
  • ステップ 2: テキスト検索で説明したのと同様の方法を使用して、ドキュメント内のページからすべてのテキスト チャンクを検索します。
  • ステップ 3: 画像検索で説明したのと同じ方法を使用して、image_description とマッチングさせるユーザークエリに基づいてページから類似した画像をすべて検索します。
  • ステップ 4: ステップ 2 とステップ 3 で見つかったすべての類似したテキストおよび画像を、context_text および context_images として結合します。
  • ステップ 5: Gemini の助けを借りて、ステップ 2 とステップ 3 で見つかったテキストと画像のコンテキストを含むユーザークエリを渡すことができます。ユーザークエリに回答する際にモデルが留意すべき特定の指示を追加することもできます。
  • ステップ 6: Gemini が回答を生成します。引用を出力して、クエリに対応するために使用された、関連するすべてのテキストと画像を確認できます。
  1. このタスクでは、ノートブック セルの実行を通して、マルチモーダル RAG を実行します。
注: このタスクのスコアが表示されるまで、数分かかる場合があります。

[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。 引用を出力して、関連するすべてのテキストと画像を確認する

お疲れさまでした

このラボでは、マルチモーダル検索拡張生成 (RAG) を使用して堅牢なドキュメント検索エンジンを構築する方法を学習しました。テキストと画像の両方を含むドキュメントのメタデータを抽出して保存し、ドキュメントのエンベディングを生成する方法を学びました。また、テキストクエリと画像クエリを使用してメタデータを検索し、類似したテキストと画像を見つける方法についても学びました。最後に、テキストクエリを入力として使用し、テキストと画像の両方を使用してコンテキストに沿った回答を検索する方法を学びました。

次のステップと詳細情報

以下のリソースで Gemini に関する理解を深めましょう。

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2025 年 5 月 15 日

ラボの最終テスト日: 2025 年 5 月 15 日

Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。