生成 AI の概要
このドキュメントでは、BigQuery ML がサポートする生成 AI(人工知能)機能について説明します。これらの機能を使用すると、事前トレーニング済みの Vertex AI 基盤モデルを使用して BigQuery ML で AI タスクを実行できます。サポートされているタスクは次のとおりです。
Vertex AI モデルにアクセスして、BigQuery ML で Vertex AI モデルのエンドポイントを表すリモートモデルを作成し、これらの関数のいずれかを実行します。使用する Vertex AI モデルでリモートモデルを作成後、リモートモデルに対して BigQuery ML 関数を実行して、そのモデルの機能にアクセスします。
この方法では、これらの Vertex AI モデルの機能を使用して、SQL による BigQuery データの分析を行います。
ワークフロー
複雑なデータ分析や生成 AI タスクを実行するには、Vertex AI モデルのリモートモデルと Cloud AI サービスに対するリモートモデルを BigQuery ML 関数とともに使用できます。
次の図は、これらの機能を組み合わせて使用する一般的なワークフローを示しています。
生成 AI
テキストの要約や生成などのタスクの実行には、大規模言語モデル(LLM)を使用できます。たとえば、長いレポートを要約したり、顧客からのフィードバックの感情を分析できます。ビジョン言語モデル(VLM)を使用して、画像キャプションや視覚的な Q&A などのタスクで画像や動画などのコンテンツを分析することもできます。マルチモーダル モデルを使用すると、LLM や VLM と同じタスクだけでなく、音声文字起こしやドキュメント分析などのタスクも実行できます。
生成 AI タスクを実行するには、リモートモデルを作成して ENDPOINT
値にモデル名を指定することで、事前トレーニング済みの Vertex AI モデルへの参照を作成できます。次の Vertex AI モデルがサポートされています。
gemini-1.5-flash
(プレビュー)gemini-1.5-pro
(プレビュー)gemini-1.0-pro
gemini-1.0-pro-vision
(プレビュー)text-bison
text-bison-32k
text-unicorn
Anthropic Claude モデル(プレビュー)もサポートされています。
プレビュー版のモデルに関するフィードバックやサポート リクエストについては、bqml-feedback@google.com までメールをお送りください。
gemini-1.0-pro-002
モデルまたは任意のバージョンの text-bison
モデルを参照するリモートモデルを作成するときに、必要に応じて教師ありチューニング(プレビュー)を同時に構成することもできます。
作成したモデルは、ML.GENERATE_TEXT
関数で操作できます。
gemini-1.0-pro
、text-bison
、text-bison-32k
、text-unicorn
モデルをベースとするリモートモデルの場合、クエリで指定したプロンプトまたは標準テーブルの列でML.GENERATE_TEXT
関数を使用できます。gemini-1.0-pro-vision
モデルに基づくリモートモデルの場合、ML.GENERATE_TEXT
関数の引数としてプロンプトを指定し、オブジェクト テーブルの画像または動画コンテンツを分析できます。gemini-1.5-flash
モデルまたはgemini-1.5-pro
モデルに基づくリモートモデルの場合、ML.GENERATE_TEXT
関数の引数としてプロンプトを指定して、オブジェクト テーブルのテキスト、画像、音声、動画、PDF コンテンツを分析できます。また、クエリで指定したプロンプトまたは標準テーブルの列から、テキストを生成することもできます。
ML.GENERATE_TEXT
関数で Gemini モデルを使用する際に入力として標準テーブルを使用している場合は、グラウンディングと安全属性を使用できます。グラウンディングにより、Gemini モデルはインターネットから追加情報を取得し、より具体的で事実に基づく回答を生成できます。安全属性を使用すると、Gemini モデルは、指定された属性に基づいてレスポンスをフィルタできます。
推論はすべて Vertex AI で行われます。結果は BigQuery に保存されます。
詳細については、ML.GENERATE_TEXT
関数を使用してテキストを生成してみてください。
エンベディング
エンベディングを使用すると、意味的に類似したアイテムを識別できます。たとえば、テキスト エンベディングを使用すると、2 つのテキストの類似度を特定できます。テキストが意味的に類似している場合、それぞれのエンベディングはエンベディング ベクトル空間内で互いに近接しています。
BigQuery ML モデルを使用して、次のタイプのエンベディングを作成できます。
- テキスト エンベディングを作成するには、リモートモデルを作成して
ENDPOINT
値の LLM 名を指定することで、いずれかの Vertex AI のtext-embedding
またはtext-multilingual-embedding
のエンベディング モデルへの参照を作成できます。 - テキスト、画像、動画を同じセマンティック空間に埋め込むマルチモーダル エンベディングを作成するには、リモートモデルを作成し、
ENDPOINT
値に LLM 名を指定して、Vertex AImultimodalembedding
LLM への参照を作成します。 - 構造化された独立同分布確率変数(IID)データのエンベディングを作成するには、主成分分析(PCA)モデルまたはオートエンコーダ モデルを使用します。
- ユーザーデータまたはアイテムデータのエンベディングを作成するには、行列分解モデルを使用します。
モデルを作成したら、ML.GENERATE_EMBEDDING
関数を使用して操作できます。サポートされているすべてのタイプのモデルについて、ML.GENERATE_EMBEDDING
は標準テーブルのデータを処理します。マルチモーダル エンベディング モデルの場合、ML.GENERATE_EMBEDDING
はオブジェクト テーブルの視覚コンテンツにも対応しています。リモートモデルの場合、すべての推論は Vertex AI で行われます。他のモデルタイプの場合、すべての推論は BigQuery で行われます。結果は BigQuery に保存されます。
詳細を確認するには、ML.GENERATE_EMBEDDING
関数を使用してテキスト エンベディング、画像エンベディング、動画エンベディングを作成してみてください。
よりサイズが小さく軽量のテキスト エンベディングには、NNLM、SWIVEL、BERT などの事前トレーニング済み TensorFlow モデルを使用してみてください。
エンベディングのユースケースに最適なモデルの選択については、テキスト エンベディング モデルの選択をご覧ください。
次のステップ
text-bison
モデルとML.GENERATE_TEXT
関数を使用してテキストを生成する。Gemini
モデルとML.GENERATE_TEXT
関数を使用してテキストを生成する。- 独自のデータで
ML.GENERATE_TEXT
関数を使用してテキストを生成する。 - 独自のデータを使用してモデルをチューニングする。
- Gemini ビジョンモデルを使用して画像を分析する。
- ML モデルに対する推論の実行について詳しくは、モデル推論の概要をご覧ください。