ラボの設定手順と要件
アカウントと進行状況を保護します。このラボを実行するには、常にシークレット ブラウジング ウィンドウとラボの認証情報を使用してください。

BigQuery のマルチモーダル ベクトル検索

ラボ 30分 universal_currency_alt クレジット: 1 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
このコンテンツはまだモバイル デバイス向けに最適化されていません。
快適にご利用いただくには、メールで送信されたリンクを使用して、デスクトップ パソコンでアクセスしてください。

GSP1334

Google Cloud セルフペース ラボのロゴ

概要

たとえば、Cloud Storage に保存されている商品画像のカタログを検索して、類似する商品が過去に販売されたかどうかを判断したいとします。これは、BigQuery のベクトル検索を活用することで実現できます。

BigQuery は、フルマネージドの AI 対応データ プラットフォームです。外部データソース(Cloud Storage バケット内の画像のメタデータなど)とのシームレスな統合や、ベクトル検索用のリモートモデルへの接続に対応しているため、生成 AI を活用してデータ分析ワークフローを強化できます。

ベクトル検索とは、(キーワードの完全一致ではなく)セマンティックな意味に基づいて類似アイテムをすばやく見つける手法で、画像、動画、テキストをはじめ、さまざまな種類のデータに適用できます。ベクトル検索では、エンベディングと呼ばれる、テキストや画像などのエンティティを表す高次元の数値ベクトルが使用されます。エンベディングは、エンティティに関するセマンティクスをエンコードし、エンティティを比較しやすくします。これはさまざまな用途への応用が可能です。たとえば、在庫データセットや商品画像カタログで類似商品の販売履歴を検索する機能を強化できます。

ユーザーは商品の名前や説明を入力して、商品画像のメタデータを含む BigQuery オブジェクト テーブルに対してベクトル検索を実行でき、検索語句に最も関連性の高い商品を特定できます。このワークフローは、Vertex AI の機能を BigQuery に統合してベクトル検索を行うことで、BigQuery でマルチモーダル データ(画像やテキストなど)の分析を可能にし、実用的な分析情報を抽出して意思決定能力を高めるものです。

このラボでは、BigQuery でのマルチモーダル ベクトル検索の仕組みについて簡単な実習を行います。まず、BigQuery で権限付与を行い、エンベディング モデルへの接続を可能にします。次に、モデルを呼び出してエンベディング テーブルを生成し、商品画像のベクトル表現を Cloud Storage バケットに保存します。最後に、Cloud Storage 内に保存されている商品画像に対してベクトル検索を実行し、画像の特徴とメタデータに基づいて、検索語句に最も類似する商品を特定します。

演習内容

このラボでは、次のタスクの実行方法について学びます。

  • BigQuery サービス アカウントに Identity and Access Management(IAM)ロールを付与する。
  • BigQuery のリモート エンベディング モデルに接続する。
  • エンベディングを生成し、BigQuery のテーブルに保存する。
  • Cloud Storage 内の商品画像に対してベクトル検索を実行する。

設定と要件

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

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、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. BigQuery サービス アカウントに IAM ロールを付与する

このラボ環境では、いくつかのリソースが事前に作成されています(BigQuery 外部接続remote-models-connection や、BigQuery オブジェクト テーブルimage_object_table など)。これらのリソースを使用すると、Cloud Storage 内の非構造化データ(画像など)にアクセスしてクエリを実行できます。外部接続が作成されると、リソースへのアクセス制御に使用できる BigQuery サービス アカウントも自動生成されます。

このタスクでは、自動生成された BigQuery サービス アカウントに特定の IAM ロールを付与し、Cloud Storage 内の画像ファイルやベクトル検索に必要な Vertex AI リソースへのアクセスを許可します。

BigQuery コンソールを開く

  1. Google Cloud コンソールで、ナビゲーション メニュー > [BigQuery] を選択します。

[Cloud コンソールの BigQuery へようこそ] メッセージ ボックスが開きます。このメッセージ ボックスには、クイックスタート ガイドとリリースノートへのリンクが表示されます。

  1. [完了] をクリックします。

BigQuery コンソールが開きます。

自動生成された BigQuery サービス アカウントを特定する

  1. プロジェクト ID()の横にある矢印を開き、[接続] の横にある矢印を開きます。

  2. .remote-models-connection」という名前の接続をクリックします。

  3. [接続情報] ページのサービス アカウント ID を、次のステップで使用できるようにコピーします。

例: bqcx-1054723899402-whbp@gcp-sa-bigquery-condel.iam.gserviceaccount.com

BigQuery サービス アカウントに IAM ロールを付与する

  1. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー アイコン)で、[IAM と管理] > [IAM] を選択します。

  2. [アクセス権を付与] をクリックします。

  3. [新しいプリンシパル] に、前のステップでコピーしたサービス アカウント ID(例: bqcx-1054723899402-whbp@gcp-sa-bigquery-condel.iam.gserviceaccount.com)を入力します。

  4. [ロールを選択] で、[Vertex AI ユーザー] でフィルタして、結果から選択します。

  5. [別のロールを追加] をクリックします。

  6. [ロールを選択] で、[Storage オブジェクト閲覧者] でフィルタして、結果から選択します。

  7. [保存] をクリックします。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 BigQuery サービス アカウントに IAM ロールを付与する

タスク 2. BigQuery リモートモデルを作成する

BigQuery サービス アカウントに必要なロールを付与できたら、次は BigQuery にリモートモデルを作成して、生成 AI 機能などの Vertex AI 機能にアクセスします。

このタスクでは、remote-models-connection という名前の BigQuery 外部接続を使用して、Vertex AI で使用可能なエンベディング モデルに接続するリモートモデル embeddings_model を作成します。画像データは Cloud Storage バケットに非構造化形式で保存されているため、この種類のデータを効果的に処理するためにエンドポイントとしてマルチモーダル モデルを指定します。

  1. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー アイコン)で、[BigQuery] > [スタジオ] を選択します。

  2. SQL クエリ ウィンドウに以下の SQL クエリを貼り付け、[実行] をクリックします。これにより、既存の BigQuery データセット(products)に BigQuery リモートモデルが作成されます。

CREATE OR REPLACE MODEL `{{{project_0.project_id | filled in at lab start}}}.products.embeddings_model` REMOTE WITH CONNECTION `{{{project_0.project_id | filled in at lab start}}}.{{{project_0.startup_script.bq_gcp_region | "BigQuery location"}}}.remote-models-connection` OPTIONS( ENDPOINT = '{{{project_0.startup_script.multi_modal_embedding_id | Multimodal embeddings model}}}' ); 注: サービス アカウントの権限(前のタスクで割り当てた権限)に関連するエラーが表示された場合は、数分待ってからクエリを再度実行してください。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 BigQuery リモートモデルを作成する

タスク 3. オブジェクト テーブルにリストされている画像のエンベディング テーブルを作成する

BigQuery でリモートモデルを作成したら、次にモデルを呼び出して、Cloud Storage に保存されている画像ファイルに基づいてエンベディングを生成します。タスク 1 で説明したように、このラボ環境用には image_object_table という名前のオブジェクト テーブルがあらかじめ作成されています。このテーブルを使用して、画像ファイルをクエリできます。

このタスクでは、エンベディング モデルを呼び出して product_image_object_table で実行し、結果を product_embeddings という新しいテーブルに保存します。クエリを実行すると、BigQuery はオブジェクト テーブルのデータをマルチモーダル エンベディング モデルに送信します。これにより、ベクトル検索に使用できるエンベディングが返され、意味的に類似するエンティティの検索が可能になります。

  1. SQL クエリ ウィンドウで、次の SQL クエリを実行してエンベディング テーブルを作成します。
CREATE OR REPLACE TABLE `{{{project_0.project_id | filled in at lab start}}}.products.product_embeddings` AS SELECT *, REGEXP_EXTRACT(uri, r'[^/]+$') as product_name FROM ML.GENERATE_EMBEDDING ( MODEL `{{{project_0.project_id | filled in at lab start}}}.products.embeddings_model`, TABLE `{{{project_0.project_id | filled in at lab start}}}.products.image_object_table` );
  1. SQL クエリ ウィンドウで、以下のクエリを実行して、新しいエンベディング テーブルのデータを確認します。
SELECT * FROM `{{{project_0.project_id | filled in at lab start}}}.products.product_embeddings`;

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 オブジェクト テーブルにリストされている画像のエンベディング テーブルを作成する

タスク 4. Cloud Storage 内の商品画像に対してベクトル検索を実行する

このラボの概要で説明したように、BigQuery のベクトル検索では、算出されたエンベディング(数値ベクトル)を使用して、意味的に類似するオブジェクトを見つけることができます。具体的には、ベクトル検索では、エンベディング空間におけるベクトル間の距離を表す距離指標を使用し、それらの類似性に基づいて比較および順位付けを行います。BigQuery のベクトル検索関数は、ユークリッド(デフォルト)、コサイン、ドット積の 3 つの距離タイプをサポートしています。

このタスクでは、コサイン類似度(2 つのベクトル間の角度のコサイン)を使用して、検索フレーズ「colorful sweaters for women」に最も適合する Google Cloud Storage 内の上位 3 つの商品画像を特定します。

  • SQL クエリ ウィンドウで、以下のクエリを実行します。ここでは、VECTOR_SEARCH 関数を使用して商品エンベディング テーブルを検索し、指定した検索キーワードに最も適合する画像を見つけます。
SELECT base.uri, base.product_name, base.content_type, distance FROM VECTOR_SEARCH(TABLE products.product_embeddings,'ml_generate_embedding_result', ( SELECT ml_generate_embedding_result AS embedding_col FROM ML.GENERATE_EMBEDDING ( MODEL `products.embeddings_model`, (SELECT 'colorful sweaters for women' AS content), STRUCT(TRUE AS flatten_json_output) ) ), TOP_K => 3, DISTANCE_TYPE => 'COSINE' );

Cloud Storage 内で最も一致率が高い画像を確認する

[省略可] 最も一致率が高い画像として返された画像を確認するには、Cloud Storage バケットに移動して、各画像を開きます。

  1. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー アイコン)で、[Cloud Storage] > [バケット] を選択します。

  2. バケット をクリックし、画像名(Onesie.jpg など)をクリックします。

  3. [認証 URL] をクリックして、画像(https://storage.cloud.google.com/qwiklabs-gcp-04-dc2812426125/Onesie.jpg など)を参照します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Cloud Storage 内の商品画像に対してベクトル検索を実行する

お疲れさまでした

このラボでは、BigQuery のベクトル検索の概要を学びました。さらに、この機能を使用して、目的の検索キーワードに最も関連性の高い Cloud Storage 内の画像を見つけるタスクを完了しました。

次のステップと詳細情報

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

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

マニュアルの最終更新日: 2026 年 3 月 16 日

ラボの最終テスト日: 2026 年 3 月 16 日

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

始める前に

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

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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