BigQuery ML がオープンソースの生成 AI モデルに対応
Vaibhav Sethi
Product Manager
Jasper Xu
Software Engineer, Google Cloud
※この投稿は米国時間 2025 年 2 月 19 日に、Google Cloud blog に投稿されたものの抄訳です。
BigQuery ML では、Gemini などの大規模言語モデル(LLM)と使い慣れた SQL 構文を使用して、エンティティ抽出、感情分析、翻訳、テキスト生成などのタスクをデータに対して実行できます。
このたびこの機能が拡張され、Vertex AI Model Garden のすべてのオープンソース LLM もサポートされました。この機能拡張は、Hugging Face からデプロイしたモデルや、チューニングされた OSS モデルなど、任意のモデルが対象となります。この機能拡張により、デベロッパーが利用できるモデルの選択肢が大幅に広がります。
この投稿では、Meta Llama 3.3 70B モデルを使用して今回の統合の仕組みを説明しますが、Hugging Face で利用可能な 17 万以上のテキスト生成モデルのすべてを同じ手順で使用できます。チュートリアル ノートブックもご用意しています。また、以下の手順もすぐにお試しいただけます。
BigQuery ML でオープンソース ソフトウェア(OSS)モデルを使用する
1. Vertex エンドポイントでモデルをホストするHugging Face からテキスト生成モデルを選択し、[Vertex AI Model Garden] > [Hugging Face からのデプロイ] に移動します。モデルの URL を入力し、必要に応じてデプロイ エンドポイントのエンドポイント名、デプロイ リージョン、マシンの仕様を変更します。


または、Vertex AI Model Garden UI から「Llama 3.3」を検索し、利用規約に同意してモデルのエンドポイントをデプロイすることもできます。この手順はプログラムで実行することも可能です(こちらのチュートリアル ノートブックをご覧ください)。
注: Llama モデルを使用するには、Hugging Face の Llama 3.3 モデルカードの Llama 3.3 コミュニティ ライセンス契約に同意するか、Vertex Model Garden UI の利用規約に同意する必要があります。この手順を完了しないと、モデルをデプロイすることはできません。
2. BigQuery でリモートモデルを作成するモデルのデプロイには数分かかります。デプロイが完了したら、以下のような SQL ステートメントを使用して BigQuery でリモートモデルを作成します。
BigQuery がリモート エンドポイントに接続できるようにするため、「接続(Connection)」を指定する必要があります。接続がまだない場合は、こちらの手順に沿って作成します。上記のコードサンプルのエンドポイントのプレースホルダを、エンドポイントの URL に置き換えてください。endpoint_id の情報は、コンソールの [Vertex AI] > [オンライン予測] > [エンドポイント] > [リクエストの例] から取得できます。
3. 推論を実行するこれで、BigQuery ML からこのモデルに対して推論を実行する準備ができました。このシナリオでは、医療記録のデータセットを例として使用します。このデータセットには、医療施設を訪れた患者の病歴、診断、治療に関する、構造化されていない、さまざまな未加工の医療記録が保存されています。医療記録のサンプルは、以下の画像のようになっています。


テーブルを作成する
BigQuery でこのデータを分析するには、まずテーブルを作成します。
推論を実行する
これで、Llama モデルを使用して、テーブル内の構造化されていない医療記録から構造化されたデータを抽出できるようになりました。たとえば、エントリごとに患者の年齢、性別、疾患のリストを抽出したい場合、以下のような SQL ステートメントを使用して分析情報を抽出し、その情報をテーブルに保存できます。抽出したい情報とそのスキーマをモデル プロンプトに含めるようにしてください。
この Llama エンドポイントから返される出力には入力プロンプトが含まれているため、出力の解析に役立つ ExtractOutput 関数も記述して使用しました。以下のように、出力テーブルの [generated_text] 列に結果が出力されます。


結果を分析する
このデータに対してあらゆる種類の分析を行うことができます。たとえば、簡単な SQL クエリを使用して「サンプル内の 30 歳以上の女性に最もよく見られる疾患は何か?」という質問の回答を得ることができます。高血圧、関節炎、脂質異常症が最も多いことがわかります。
使ってみる
Vertex Model Garden と統合された BigQuery で、お好みのオープンモデルや、チューニング済みモデル、抽出モデルをぜひお試しください。詳しくは、ドキュメントをご覧ください。