始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Create an ML model
/ 25
Create a table by using a BigQuery ML model to generate numerical vector representations
/ 25
Create a vector index on the 'embeddings' table
/ 25
Perform a text similarity search using the vector index
/ 25
BigQuery ベクトル検索 ベクトル検索では、キーワードの完全一致を使用するのではなく、エンベディングと呼ばれる特徴の数値表現を比較することで、データセット内で最も類似したアイテムを見つけることができます。
オンライン ショッピングで、言葉でうまく説明できない商品を含め、探している商品と非常によく似た商品をウェブサイトがおすすめしてくることに感心したことはないでしょうか。多くの場合、これには単純なキーワード マッチングを超えた手法であるベクトル検索が使用されています。ベクトル検索では、テキストを検索するだけでなく、アイテムの基盤となる特徴や特性を分析して、概念的または視覚的に類似するものを見つけることができます。このラボでは、BigQuery に直接組み込まれた高度でスケーラブルなベクトル検索機能を実際に使用してみます。
Cymbal E-commerce のようなグローバルな小売業者にとって、このテクノロジーはカスタマー エクスペリエンスを大きく変えるものです。たとえば、顧客が「ハイキング用軽量ジャケット」を検索したとします。従来のキーワード検索では、説明に「ジャケット」ではなく「ウインドブレーカー」が使用されている場合、最適な商品を見逃す可能性があります。ベクトル検索を使用すると、Cymbal は商品画像と説明の数値表現であるエンべディングを分析し、正確な用語に関係なく、関連するすべてのアウターのリストを入手できます。これにより、顧客は必要な商品をすばやく見つけられるようになるため、顧客満足度の向上と売り上げの増加が実現します。さっそく Cymbal のためにこれを構築しましょう。
このラボでは、BigQuery を使用してベクトル検索を実行する方法を学習します。
** 注: このラボでは、プライバシー上の理由から、Cymbal の独自の商品リストと詳細な説明ではなく、特許の公開データベースを使用します。プロセスは同じで、データセット、テーブル、列の名前をソースデータに合わせて変更するだけです。
VECTOR_SEARCH 関数を使用するこちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。
このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ご自身でラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
これは、このラボの間だけ有効な一時的なアカウントです。以下の点に注意してください。
Google Cloud コンソールの上部の検索バーに「BigQuery API」と入力します。
Marketplace で検索結果の「BigQuery API」をクリックします。
API が有効になっていない場合は、[有効にする] をクリックして有効にします。
BigQuery Connection API と Vertex AI API についても、手順 1~3 を繰り返します。
このタスクでは、ベクトル検索に必要な Vertex AI テキスト エンベディング生成モデルを作成し、データベースのエンベディングを作成します。
Google Cloud コンソールのナビゲーション メニュー()で、[BigQuery] > [Studio] に移動します。
[無題のクエリ] タブを選択します。
次のコードを入力します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
[実行] をクリックします。クエリの実行には数分かかります。サービス アカウントが見つからないというエラーが発生した場合は、同じクエリをもう一度実行します。
クエリを次のコードに置き換えます。
[実行] をクリックします。クエリの実行には約 5 分かかります。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
クエリを次のコードに置き換えます。
[実行] をクリックします。クエリの実行には数分かかります。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
次のコードを入力して、インデックスのステータスを確認します。
[実行] をクリックします。coverage_percentage 列の値が 0 より大きく、last_refresh_time 列の値が NULL でない場合、インデックスは使用できる状態です。上記のクエリを初めて実行したときにインデックスの準備ができていない場合は、インデックスのステータスを確認するために、クエリをときどき再実行してください。インデックスが使用可能になったことを示す結果が表示されたら、ラボを続行します。
VECTOR_SEARCH 関数を使用して、検索キーワードに関連するエントリを検索します。この例では、検索キーワードとして「improving online shopper search results」を使用しています。この検索でエンベディングの生成に使用するモデルは、比較するテーブルのエンベディングの生成に使用するモデルと同じである必要があります。そうしないと、検索結果が正確になりません。
[BigQuery クエリ] タブで、コードを以下に置き換えます。
[実行] をクリックします。
省略可: 他の検索を試す場合は、コード内の 'improving online shopper search results' を別の検索に置き換えます。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
AI モデル、データのエンベディング、ベクトル インデックスを作成しました。その後、検索キーワードに最も関連性の高いアイテムを見つけるために、インデックスを使用してクエリを実行しました。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください