より優れた SQL を実現する BigQuery マネージド AI 関数の発表
Jian He
Software Engineer, Google
Vaibhav Sethi
Product Manager, Google
※この投稿は米国時間 2025 年 11 月 13 日に、Google Cloud blog に投稿されたものの抄訳です。
SQL は何十年にもわたってデータ分析の共通言語として使用され、構造化データのアナリティクスが使用できるようにしてきました。Gemini などの大規模言語モデル(LLM)は、テキスト、画像、動画などの非構造化データからきめ細かいインサイトを得るための道筋を提供します。しかし、LLM を標準の SQL フローに統合するには、データの移動、少なくとも結果の品質を最適化するためのプロンプトとパラメータのチューニングが必要です。これを大規模に実行するには費用がかかるため、多くのデータ担当者にはこれらの機能は手が届きません。
このたび、BigQuery マネージド AI 関数の公開プレビュー版がご利用いただけるようになりました。これは、AI 時代に向けて SQL を改めて定義し直す新しい機能セットです。これらの関数(AI.IF、AI.CLASSIFY、AI.SCORE)を使用すると、複雑なプロンプト チューニングや新しいツールを必要とせずに、SQL クエリ内で一般的な分析タスクに生成 AI を直接使用できます。これらの関数は、対象となるユースケースに合わせて最適化されており、モデルの選択やパラメータのチューニングは必要ありません。さらに、提供されたプロンプトとクエリプランに対するインテリジェントな最適化により、費用を最小限に抑えます。
これらの新しい関数を使用すると、使い慣れた SQL 演算子を使用して、AI を活用した高度な分析を実行できます。
-
WHERE 句または ON 句で AI.IF を使用して、セマンティックに基づいてデータをフィルタリングして結合します。
-
GROUP BY 句で AI.CLASSIFY を使用して、構造化されていないテキストや画像を分類する。
-
ORDER BY 句で AI.SCORE を使用して、自然言語の基準に基づいて行をランク付けする。


これらの関数を組み合わせることで、以前は SQL 分析では不可能だった新しい種類の質問に答えることができます。たとえば、古い名前や非公式の名前が使用されている場合でも、企業が自社について言及しているニュース記事を特定できます。
それぞれの機能の仕組みを詳しく見ていきましょう。
関数の詳細
AI.IF: セマンティック フィルタリングと結合
AI.IF を使用すると、自然言語で記述された条件を使用してデータをフィルタリングまたは結合できます。これは、否定的な顧客レビューの特定、特定の属性を持つ画像のフィルタリング、ドキュメント内の関連情報の検索などのタスクに役立ちます。BigQuery は、AI 以外のフィルタを最初に評価することで、LLM への呼び出し回数を減らすようにクエリプランを最適化します。たとえば、次のクエリは、Google に関連する BBC のテクノロジー ニュース記事を検索します。
また、AI.IF() を使用して、2 つの異なる商品カタログ間でエンティティ解決を実行するなど、強力なセマンティック結合を行うこともできます。 次のクエリは、名前が完全一致でなくても、セマンティクスとして同一の商品を検索します。
AI.CLASSIFY: データ分類
AI.CLASSIFY 関数を使用すると、指定したラベルに基づいてテキストや画像を分類できます。トピック別にサポートチケットをルーティングしたり、スタイルに基づいて画像を分類したりできます。たとえば、ニュース記事をトピック別に分類し、1 回のクエリで各カテゴリの記事数をカウントできます。
AI.SCORE: セマンティック ランキング
AI.SCORE を使用すると、自然言語の基準に基づいて行をランク付けできます。これは、ルーブリックに基づいてアイテムをランク付けするのに効果的です。一貫した高品質の結果を得るために、BigQuery はプロンプトを構造化されたスコアリング ルーブリックに自動的に変換します。この例では、選択した映画の最も肯定的なレビューの上位 10 件を検索します。
最適化を組み込み
これらの関数を使用すると、AI 処理を WHERE、JOIN、ORDER BY、GROUP BY などの一般的な SQL 演算子と簡単に組み合わせることができます。BigQuery がプロンプトの最適化、モデルの選択、モデル パラメータのチューニングを自動的に処理します。
-
プロンプトの最適化: LLM はプロンプトの文言に敏感で、同じ質問の表現を変えると、これは品質と一貫性に影響します。BigQuery は、プロンプトを特に Gemini 向けの構造化された形式に最適化し、より高品質な結果とキャッシュ ヒット率の向上を保証します。
-
クエリプランの最適化: 生成 AI モデルを数百万行にわたって実行すると、処理が遅く、費用も高くなり勝ちです。BigQuery クエリプランナーは、フィルタ内の AI 関数を並べ替え、結合から AI 関数を抽出して、モデルへの呼び出し回数を減らします。これにより、費用を削減でき、パフォーマンスが向上します。
-
モデルのエンドポイントとパラメータのチューニング: BigQuery は、モデルのエンドポイントとモデルのパラメータをチューニングして、結果の品質とクエリ実行全体での結果の一貫性の両方を向上させます。
使ってみる
新しいマネージド AI 関数(AI.IF()、AI.SCORE()、AI.CLASSIFY())は、BigQuery の AI.GENERATE などの既存の汎用 Gemini 推論関数を補完します。上記の最適化に加えて、BigQuery と Gemini の間の将来の最適化と混合クエリ処理により、コスト パフォーマンスがさらに向上することが期待されます。早期アクセスをご希望の場合は、こちらからご登録ください。
使用する機能とタイミング: ユースケースが適合する場合は、コストと品質が最適化されているマネージド AI 機能から始めます。プロンプトと入力パラメータを制御する必要がある場合や、LLM 推論でサポートされている幅広いモデルから選択したい場合は、AI.GENERATE ファミリーの関数を使用します。
詳細については、ドキュメントをご覧ください。新しいマネージド AI 関数は、BigQuery DataFrames でも利用できます。Python の例については、こちらのノートブックとドキュメントをご覧ください。
ご質問やフィードバックがございましたら、bqml-feedback@google.com までお問い合わせください。
ー Google、ソフトウェア エンジニア Jian He
ー Google、プロダクト マネージャー Vaibhav Sethi

