チェックポイント
Install Vertex AI SDK for Python and import libraries
/ 20
Use the Gemini Pro model
/ 20
Build metadata of documents containing text and images
/ 20
Search similar image with image query
/ 20
Print citations and references
/ 20
Vertex AI Gemini API を使用したマルチモーダル検索拡張生成(RAG)
GSP1231
概要
Gemini は、Google の DeepMind が開発した、生成 AI モデルのファミリーであり、マルチモーダル ユースケース用に設計されています。Gemini API を使用すると、Gemini Pro Vision と Gemini Pro のモデルにアクセスできます。
検索拡張生成(RAG)は、LLM が外部データにアクセスできるようにするための一般的なパラダイムで、ハルシネーションを軽減するためのグラウンディング メカニズムとしても使用されています。RAG モデルは、大規模なコーパスから関連するドキュメントを取得し、取得したドキュメントに基づいて回答を生成するようにトレーニングされています。このラボでは、テキストと画像の両方を含む財務ドキュメントに対して Q&A を行うマルチモーダル RAG の実行方法について学習します。
テキストベースの RAG とマルチモーダル RAG の比較
マルチモーダル RAG には、テキストベースの RAG と比べて以下のような利点があります。
- ナレッジベースへのアクセスの強化: マルチモーダル RAG は、テキスト情報と視覚情報の両方にアクセスして処理でき、より充実した包括的なナレッジベースを LLM に提供できます。
- 推論能力の向上: マルチモーダル RAG では、視覚的な手がかりを組み込むことで、異なる種類のデータ モダリティから、より情報に基づいた推論を行うことができます。
このラボでは、Vertex AI Gemini API、テキスト エンベディング、マルチモーダル エンベディングと RAG を組み合わせて使用して、ドキュメント検索エンジンを構築する方法について説明します。
目標
このラボでは、次の方法について学びます。
- テキストと画像の両方を含むドキュメントのメタデータを抽出して保存し、ドキュメントのエンベディングを生成する。
- テキストクエリを使用してメタデータを検索し、類似したテキストまたは画像を見つける。
- 画像クエリを使用してメタデータを検索し、類似した画像を見つける。
- テキストクエリを入力として使用し、テキストと画像の両方を使用してコンテキストに沿った回答を検索する。
設定と要件
[ラボを開始] ボタンをクリックする前に
こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。
このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
- 標準的なインターネット ブラウザ(Chrome を推奨)
- ラボを完了するために十分な時間を確保してください。ラボをいったん開始すると一時停止することはできません。
ラボを開始して Google Cloud コンソールにログインする方法
-
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。
- [Google Cloud コンソールを開く] ボタン
- 残り時間
- このラボで使用する必要がある一時的な認証情報
- このラボを行うために必要なその他の情報(ある場合)
-
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウでリンクを開く] を選択します)。
ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。 -
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
{{{user_0.username | "Username"}}} [ラボの詳細] パネルでも [ユーザー名] を確認できます。
-
[次へ] をクリックします。
-
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
{{{user_0.password | "Password"}}} [ラボの詳細] パネルでも [パスワード] を確認できます。
-
[次へ] をクリックします。
重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。 -
その後次のように進みます。
- 利用規約に同意してください。
- 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
- 無料トライアルには登録しないでください。
その後、このタブで Google Cloud コンソールが開きます。
タスク 1. Vertex AI Workbench でノートブックを開く
-
Google Cloud コンソールのナビゲーション メニューで、[Vertex AI] > [ワークベンチ] をクリックします。
-
generative-ai-jupyterlab
ノートブックを見つけて、[JupyterLab を開く] ボタンをクリックします。
新しいブラウザタブで Workbench インスタンスの JupyterLab インターフェースが開きます。
タスク 2. ノートブックを設定する
-
intro_multimodal_rag.ipynb
ファイルをクリックします。 -
ノートブックの「Getting Started」(スタートガイド)セクションと「Import libraries」(ライブラリのインポート)セクションをすべて実行します。
- [Project ID](プロジェクト ID)に
を使用し、[Location](場所)に を使用します。
- [Project ID](プロジェクト ID)に
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
次のセクションでは、ノートブック セルの実行を通して、Gemini API を使用してマルチモーダル RAG システムを構築する方法を確認します。
タスク 3. Gemini Pro モデルを使用する
Gemini Pro(gemini-pro
)モデルは、自然言語タスク、マルチターン テキストとコードチャット、コード生成を処理するように設計されています。このセクションでは、読みやすさを向上させるために、このノートブックに必要ないくつかのヘルパー関数をダウンロードします。GitHub で直接コード(intro_multimodal_rag_utils.py
)を表示することもできます。
- このタスクでは、ノートブック セルの実行を通して、モデルの読み込みとヘルパー関数のダウンロードを行い、Cloud Storage からドキュメントと画像を取得します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
タスク 4. テキストと画像を含むドキュメントのメタデータを構築する
このラボで使用するソースデータは、Google-10K の変更バージョンで、企業の財務実績、事業運営、管理、リスク要因の包括的な概要を提供します。オリジナルのドキュメントはかなり大きいため、代わりに 14 ページのみの変更バージョンを使用します。ボリュームを小さくしていますが、サンプル ドキュメントには、テキストに加えて、表、チャート、グラフなどの画像も含まれています。
- このタスクでは、ノートブック セルの実行を通して、ドキュメントからテキストと画像のメタデータを抽出して保存します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
タスク 5. テキスト検索
では、簡単な質問で検索を開始し、テキスト エンベディングを使用したシンプルなテキスト検索で、その質問に回答できるかどうかを確認しましょう。期待される回答は、さまざまな株式タイプについて、Google の 1 株あたり当期純利益と希薄化当期純利益の値を示すことです。
- このタスクでは、ノートブック セルの実行を通して、テキストクエリを使用して類似したテキストと画像を検索します。
タスク 6. 画像検索
画像を検索するにあたり、単語を入力する代わりに、実際の画像を手がかりとして使用します。2 年間の収益費用に関する数字が記載された表があり、同じドキュメントまたは複数のドキュメントから、その表に似た他の画像を見つけたいと思っています。
Gemini とエンベディングを活用して、ユーザー入力に基づいて類似したテキストや画像を特定する機能は、マルチモーダル RAG システムの開発において重要な基盤となります。これについては、次のタスクで取り上げます。
- このタスクでは、ノートブック セルの実行を通して、画像クエリに類似した画像を検索します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
比較推論
クラス A の Google 株が、S&P 500 や他のテクノロジー企業などの他の株と比較してどのように推移したかを示すグラフがあるとします。クラス C の株が、そのグラフと比較してどのように推移したかを知りたいと思っています。単に類似した画像を探すのではなく、関連する画像を比較して、どの株に投資するのが良いかを答えるように Gemini に指示することができます。この場合、Gemini はそのように考えた理由も説明します。
- このタスクでは、ノートブック セルの実行を通して、2 つの画像を比較し、最も類似した画像を見つけます。
タスク 7. マルチモーダル検索拡張生成(RAG)
では、すべてをまとめてマルチモーダル RAG を実装しましょう。マルチモーダル RAG を実装するには、前のセクションで説明したすべての要素を使用します。手順は以下のとおりです。
- ステップ 1: ユーザーはテキスト形式でクエリを入力します。期待される情報はドキュメント内にあり、画像やテキストに埋め込まれています。
-
ステップ 2:
テキスト検索
で説明したのと同様の方法を使用して、ドキュメント内のページからすべてのテキスト チャンクを検索します。 -
ステップ 3:
画像検索
で説明したのと同じ方法を使用して、image_description
とマッチングさせるユーザークエリに基づいてページから類似した画像をすべて検索します。 -
ステップ 4: ステップ 2 とステップ 3 で見つかったすべての類似したテキストおよび画像を、
context_text
およびcontext_images
として結合します。 - ステップ 5: Gemini の助けを借りて、ステップ 2 とステップ 3 で見つかったテキストと画像のコンテキストを含むユーザークエリを渡すことができます。ユーザークエリに回答する際にモデルが留意すべき特定の指示を追加することもできます。
- ステップ 6: Gemini が回答を生成します。引用を出力して、クエリに対応するために使用された、関連するすべてのテキストと画像を確認できます。
- このタスクでは、ノートブック セルの実行を通して、マルチモーダル RAG を実行します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
お疲れさまでした
このラボでは、マルチモーダル検索拡張生成 (RAG) を使用して堅牢なドキュメント検索エンジンを構築する方法を学習しました。テキストと画像の両方を含むドキュメントのメタデータを抽出して保存し、ドキュメントのエンベディングを生成する方法を学びました。また、テキストクエリと画像クエリを使用してメタデータを検索し、類似したテキストと画像を見つける方法についても学びました。最後に、テキストクエリを入力として使用し、テキストと画像の両方を使用してコンテキストに沿った回答を検索する方法を学びました。
次のステップと詳細情報
- Vertex AI のドキュメントで生成 AI について確認する。
- Google Cloud Tech YouTube チャンネルで、生成 AI の詳細を確認する。
- Google Cloud 生成 AI の公式リポジトリ
- Gemini のノートブックの例
Google Cloud トレーニングと認定資格
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2024 年 6 月 13 日
ラボの最終テスト日: 2024 年 6 月 13 日
Copyright 2024 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。