ML.GENERATE_TEXT_EMBEDDING 関数
このドキュメントでは、BigQuery テーブルに保存されているテキストを埋め込む ML.GENERATE_TEXT_EMBEDDING
関数について説明します。テキスト エンベディングとは、テキストの高次ベクトル表現です。2 つのテキストが意味的に類似している場合、それぞれのエンベディングはエンベディング ベクトル空間内で互いに近接しています。テキスト エンベディングを使用すると、次のタスクを行うことができます。
- セマンティック検索: 意味的類似性によってランク付けされたテキストを検索します。
- 推奨: 指定したテキストに類似したテキスト属性を持つアイテムを返します。
- 分類: 指定されたテキストと類似するテキスト属性を持つアイテムのクラスを返します。
- クラスタリング: 指定したテキストと類似したテキスト属性を持つアイテムをクラスタ化します。
- 外れ値検出: テキスト属性が指定されたテキストとの関連性が最も低いアイテムを返します。
この関数は、Vertex AI textembedding-gecko*
テキスト エンベディング基盤モデルの 1 つを表す BigQuery ML リモートモデルにリクエストを送信します。LLM から出力された後、LLM のレスポンスを返します。
構文
ML.GENERATE_TEXT_EMBEDDING( MODEL `project_id.dataset.model_name`, { TABLE table_name | (query_statement) }, STRUCT([flatten_json_output AS flatten_json_output]) )
引数
ML.GENERATE_TEXT_EMBEDDING
は次の引数を取ります。
project_id
: プロジェクト ID。dataset
: モデルを含む BigQuery データセット。model_name
:textembedding-gecko*
Vertex AI LLM のいずれかを使用するリモートモデルの名前。 このタイプのリモートモデルの作成方法については、ENDPOINT
をご覧ください。table_name
: 埋め込むSTRING
列を含む BigQuery テーブルの名前。content
という名前の列のテキストがモデルに送信されます。テーブルにcontent
列がない場合は、この引数にSELECT
ステートメントを使用して、既存のテーブル列のエイリアスを指定します。content
列が存在しない場合は、エラーが発生します。query_statement
: 結果にcontent
という名前のSTRING
列が含まれるクエリ。サポートされるquery_statement
句の SQL 構文については、GoogleSQL クエリ構文をご覧ください。flatten_json_output
: 関数から返されたJSON
のコンテンツを別の列に解析するかどうかを決定するBOOL
値。デフォルトはTRUE
です。
出力
ML.GENERATE_TEXT_EMBEDDING
は、入力テーブルと次の列を返します。
ml_embed_text_result
: テキスト エンベディングと関連する統計情報を含むJSON
値。この列は、flatten_json_output
がFALSE
の場合に返されます。text_embedding
: 768 次元のテキスト エンベディングを含むARRAY<FLOAT>
値。この列は、flatten_json_output
がTRUE
の場合に返されます。statistics
: コンテンツ内のトークン数を含むtoken_count
フィールドと、コンテンツが切り捨てられたかどうかを示すtruncated
フィールドを含むJSON
値。この列は、flatten_json_output
がTRUE
の場合に返されます。ml_embed_text_status
: 対応する行の API レスポンス ステータスを含むSTRING
値。オペレーションが成功した場合、この値は空になります。
ロケーション
ML.GENERATE_TEXT_EMBEDDING
は、関数が参照するリモートモデルと同じリージョンで実行する必要があります。リモートモデルは、次のロケーションの textembedding-gecko*
モデルに基づいてのみ作成できます。
us
us-central1
割り当て
Cloud AI サービスの関数の割り当てと上限をご覧ください。
例
次の例は、1 つのサンプル テキストのエンベディングを生成する方法を示しています。
SELECT * FROM ML.GENERATE_TEXT_EMBEDDING( MODEL `bqml_tutorial.embedding_model`, (SELECT "Example text to embed" AS content), STRUCT(TRUE AS flatten_json_output) );
次のステップ
- LLM を使用したテキストの埋め込みに関するチュートリアルを試す。
- BigQuery データの分析に使用できる他の関数について学習する。