生成 AI の概要

このドキュメントでは、BigQuery がサポートする生成 AI(人工知能)関数について説明します。これらの関数は自然言語入力を受け取り、事前トレーニング済みの Vertex AI モデルと組み込みの BigQuery モデルを使用します。

概要

BigQuery には、次のようなタスクに役立つさまざまな AI 関数が用意されています。

  • クリエイティブなコンテンツを生成する。
  • テキストや画像などの非構造化データを分析して、感情を検出し、質問に回答する。
  • コンテンツで伝えられた主なアイデアや印象を要約する。
  • テキストから構造化データを抽出する。
  • テキストまたは非構造化データをユーザー定義のカテゴリに分類する。
  • エンベディングを生成して、類似したテキスト、画像、動画を検索する。
  • 品質、類似性、その他の条件でランク付けするために、入力のレートを設定する。

これらのタスクを完了するために役立つ AI 機能には、次の 2 つの主なカテゴリがあります。

  • 汎用 AI 関数: これらの関数を使用すると、使用するモデル、プロンプト、パラメータの選択を完全に制御し、透明性を確保できます。

    • 推論を実行する(データに関する質問に答えるなど)

      • AI.GENERATE は最も柔軟な推論関数であり、テキストと非構造化データの任意の組み合わせを分析できます。
      • 特定のタイプの出力を必要とする場合は、次のより専門的な推論関数のいずれかを選択します。

        • AI.GENERATE_BOOL
        • AI.GENERATE_DOUBLE
        • AI.GENERATE_INT
    • 構造化された出力を生成する(非構造化テキストから名前と住所を抽出する場合など)

      • AI.GENERATE_TABLE
    • AI.GENERATE のテーブル値関数バージョンを使用してテキストを生成する

      • ML.GENERATE_TEXT
    • セマンティック検索とクラスタリング用のエンベディングを生成する

      • ML.GENERATE_EMBEDDING
  • マネージド AI 関数: これらの関数は、構文が簡素化され、費用と品質が最適化されています。BigQuery がモデルを自動的に選択します。

    • 自然言語条件でデータをフィルタする

      • AI.IF
    • 品質や感情などの入力を評価する

      • AI.SCORE
    • 入力をユーザー定義のカテゴリに分類する

      • AI.CLASSIFY

汎用 AI 関数

汎用 AI 関数を使用すると、使用するモデル、プロンプト、パラメータを完全に制御し、透明性を確保できます。出力には、モデルへの呼び出しに関する詳細情報(ステータスや完全なモデル レスポンスなど)が含まれます。これには、安全性評価や引用に関する情報が含まれる場合があります。

構造化データを生成する

構造化データの生成はテキスト生成とよく似ていますが、SQL スキーマを指定してモデルからのレスポンスをフォーマットできます。たとえば、通話の文字起こしから、顧客の名前、電話番号、住所、リクエスト、見積もりを含むテーブルを生成できます。

構造化データを生成するには、一般提供またはプレビューの Gemini モデルのいずれかを使用してリモートモデルを作成します。その後、AI.GENERATE_TABLE 関数を使用して、そのモデルを操作できます。構造化データの作成を試すには、AI.GENERATE_TABLE 関数を使用して構造化データを生成するをご覧ください。

AI.GENERATE_TABLE 関数で Gemini モデルを使用する際に安全属性を指定すると、モデルのレスポンスをフィルタできます。

サポートされている Gemini モデルに対して、Vertex AI プロビジョンド スループットを使用することで、リクエストに一貫した高スループットを提供できます。

特定の型の値を行ごとに生成する

スカラー生成 AI 関数を Gemini モデルで使用して、BigQuery 標準テーブルのデータを分析できます。データには、ObjectRef 値を含む列のテキストデータと非構造化データの両方が含まれます。テーブルの各行に対して、これらの関数は特定の型を含む出力を生成します。たとえば、家具の画像を分析して design_type 列のテキストを生成すると、家具の SKU に mid-century modernfarmhouse などの説明が関連付けられます。

次の AI 関数を使用できます。

サポートされている Gemini モデルAI.GENERATE 関数を使用する場合は、Vertex AI プロビジョンド スループットを使用して、リクエストに一貫した高スループットを提供できます。詳細については、Vertex AI プロビジョンド スループットを使用するをご覧ください。

TVF を使用してテキストを生成する

生成 AI タスクを実行するには、BigQuery ML のリモートモデルを使用して、Vertex AI にデプロイまたはホストされているモデルを参照するテーブル値関数 GENERATE_TEXT を使用します。次のタイプのリモートモデルを作成できます。

リモートモデルを作成したら、ML.GENERATE_TEXT 関数を使用してそのモデルを操作できます。

  • Gemini モデルに基づくリモートモデルでは、次のことができます。

    • ML.GENERATE_TEXT 関数を使用して、クエリで指定したプロンプトまたは標準テーブルの列で取得したプロンプトからテキストを生成します。クエリでプロンプトを指定するときに、プロンプトで次のタイプのテーブル列を参照できます。

    • ML.GENERATE_TEXT 関数に関数引数として指定されたプロンプトを使用して、オブジェクト テーブルのテキスト、画像、音声、動画、PDF コンテンツを分析します。

  • 他のすべてのタイプのリモートモデルの場合、クエリで指定したプロンプトまたは標準テーブルの列で ML.GENERATE_TEXT 関数を使用できます。

次のトピックを使用して、BigQuery ML でテキスト生成を試すことができます。

ML.GENERATE_TEXT 関数で Gemini モデルを使用する際に入力として標準テーブルを使用している場合は、グラウンディング安全属性を使用できます。グラウンディングにより、Gemini モデルはインターネットから追加情報を取得し、より具体的で事実に基づく回答を生成できます。安全属性を使用すると、Gemini モデルは、指定された属性に基づいてレスポンスをフィルタできます。

一部のモデルでは、必要に応じて教師ありチューニングを構成できます。これにより、独自のデータでモデルをトレーニングして、ユースケースに適したモデルにすることができます。推論はすべて Vertex AI で行われます。 結果は BigQuery に保存されます。

サポートされている Gemini モデルに対して、Vertex AI プロビジョンド スループットを使用することで、リクエストに一貫した高スループットを提供できます。 詳細については、Vertex AI プロビジョンド スループットを使用するをご覧ください。

エンベディングを生成する

エンベディングは、テキストや音声ファイルなど、特定のエンティティを表す高次元の数値ベクトルです。エンベディングを生成すると、データを推論して比較しやすくするように、データのセマンティクスをキャプチャできます。

エンベディング生成の一般的なユースケースは次のとおりです。

  • 検索拡張生成(RAG)を使用して、信頼できるソースの追加データを参照し、ユーザーのクエリに対するモデルのレスポンスを拡張する。RAG は、事実の精度とレスポンスの一貫性を高め、モデルのトレーニング データよりも新しいデータにアクセスできるようにします。
  • マルチモーダル検索の実行。たとえば、テキスト入力を使用して画像を検索します。
  • セマンティック検索を実行して、レコメンデーション、置換、レコードの重複除去に類似したアイテムを見つける。
  • クラスタリング用の K 平均法モデルで使用するエンベディングを作成する。

サポートされているモデル

次のモデルがサポートされています。

よりサイズが小さく軽量のテキスト埋め込みには、NNLM、SWIVEL、BERT などの事前トレーニング済み TensorFlow モデルを使用してみてください。

エンベディング生成モデルを使用する

モデルを作成したら、ML.GENERATE_EMBEDDING 関数を使用して操作できます。サポートされているすべてのタイプのモデルについて、ML.GENERATE_EMBEDDING標準テーブルで構造化データを処理します。マルチモーダル エンベディング モデルの場合、ML.GENERATE_EMBEDDING は、標準テーブルの ObjectRef 値を含む列、またはオブジェクト テーブルの視覚的なコンテンツにも対応しています。

リモートモデルの場合、すべての推論は Vertex AI で行われます。他のモデルタイプの場合、すべての推論は BigQuery で行われます。結果は BigQuery に保存されます。

次のトピックを使用して、BigQuery ML でエンベディング生成を試すことができます。

マネージド AI 関数

マネージド AI 関数は、分類、順序付け、フィルタリングなどのルーティン タスクを自動化するために構築されています。これらの関数は Gemini を使用します。カスタマイズは必要ありません。BigQuery は、プロンプト エンジニアリングを使用して、特定のタスクに使用する適切なモデルとパラメータを選択し、結果の品質と一貫性を最適化します。各関数は、BOOLFLOAT64STRING などのスカラー値を返し、モデルからの追加のステータス情報は含まれません。次のマネージド AI 関数を使用できます。

  • AI.IF: プロンプトに基づいて、WHERE 句や JOIN 句などのテキストまたはマルチモーダル データをフィルタします。たとえば、ギフトに最適なアイテムを説明する商品説明でフィルタできます。
  • AI.SCORE: プロンプトに基づいて入力を評価し、品質、類似性、その他の基準で行をランク付けします。この関数を ORDER BY 句で使用すると、スコアに基づいて上位 K 個の項目を抽出できます。たとえば、製品に対する最も肯定的または否定的なユーザー レビューの上位 10 件を見つけることができます。
  • AI.CLASSIFY: テキストをユーザー定義のカテゴリに分類します。この関数は GROUP BY 句で使用して、定義したカテゴリに従って入力をグループ化できます。たとえば、サポート チケットを請求、配送、製品の品質などに関連するかどうかで分類できます。

マネージド AI 関数と汎用 AI 関数の使用方法を示すノートブック チュートリアルについては、AI 関数を使用したセマンティック分析をご覧ください。

ロケーション

テキスト生成モデルとエンベディング モデルでサポートされているロケーションは、使用するモデルのタイプとバージョンによって異なります。詳細については、ロケーションをご覧ください。

料金

モデルに対してクエリを実行するために使用したコンピューティング リソースに対して課金されます。リモートモデルは Vertex AI モデルを呼び出すため、リモートモデルに対するクエリでも Vertex AI の料金が発生します。

詳細については、BigQuery ML の料金をご覧ください。

次のステップ