Gemini 1.0 Pro Vision を使用して BigQuery で画像や動画を分析する
Google Cloud Japan Team
※この投稿は米国時間 2024 年 4 月 11 日に、Google Cloud blog に投稿されたものの抄訳です。
ソーシャル メディア、モバイル デバイス、IoT センサーといったデジタル デバイスやプラットフォームの普及に伴い、組織は画像、音声ファイル、動画、ドキュメントなどの形式で非構造化データを生成することが増えています。非構造化データを解釈して有益な分析情報を抽出できるように、Google は BigQuery と Vertex AI のインテグレーションを数か月かけてリリースしました。これにより、Gemini 1.0 Pro、PaLM、Vision AI、Speech AI、Doc AI、Natural Language AI などを活用できます。
Vision AI は画像分類とオブジェクト認識機能を提供しますが、大規模言語モデル(LLM)は視覚的な新しいユースケースを実現します。そのために、Google は BigQuery と Vertex AI のインテグレーションを拡張し、Gemini 1.0 Pro Vision でマルチモーダルな生成 AI のユースケースをサポートします。使い慣れた SQL ステートメントを使用して、BigQuery で直接 Gemini 1.0 Pro Vision を活用し、独自のテキスト プロンプトと組み合わせて画像と動画の両方を分析することができます。
BigQuery の非構造化データを分析する Vertex AI インテグレーション機能の全体像
データ ウェアハウス設定では、マルチモーダル機能を使用して、さまざまなユースケースに沿って非構造化データ分析を強化できます。
-
オブジェクト認識: 画像や動画内のオブジェクトの詳細な識別に関連する質問に回答します。
-
情報探索: 世界中の知識を、画像や動画から抽出した情報と組み合わせます。
-
字幕 / 説明: さまざまな詳細レベルの画像と動画の説明を生成します。
-
デジタル コンテンツについての理解: インフォグラフィック、グラフ、図、表、ウェブページなどのコンテンツから情報を抽出して、質問に答えます。
-
構造化コンテンツの生成: 与えられたプロンプトの指示に基づいて、HTML や JSON などの形式でレスポンスを生成します。
非構造化データを構造化データに変換する
Gemini 1.0 Pro Vision は、最小限のプロンプト調整を通じて HTML や JSON などの便利な形式で構造化されたレスポンスを生成し、ダウンストリーム タスクで簡単に利用できるようにします。BigQuery などのデータ ウェアハウスに構造化データがあれば、SQL オペレーションの結果を使用し、他の構造化データセットと組み合わせて、より詳細な分析を行えます。
たとえば、車の画像が複数含まれる大規模なデータセットがあるとします。あなたは各画像の車について、いくつかの基本情報を把握したいと考えています。こうしたユースケースでは、Gemini 1.0 Pro Vision が役立ちます。
テキストと画像を組み合わせた Gemini 1.0 Pro Vision のプロンプトとレスポンスの例。
データセットのソース: 「3D Object Representations for Fine-Grained Categorization」、Jonathan Krause、Michael Stark、Jia Deng、Li Fei-Fei、3D の表現と認識に関する第 4 回 IEEE ワークショップ、ICCV 2013(3dRR-13)。シドニー(オーストラリア)。2013 年 12 月 8 日。
ご覧のとおり、Gemini のレスポンスでは詳細な情報が得られます。ただし、形式とその他の情報は、個人の場合には適していますが、データ ウェアハウスの場合はあまり適していません。非構造化データをさらに多くの非構造化データに変換せずに、プロンプトを変更すれば、構造化されたレスポンスを返す方法をモデルに指示することができます。
Gemini 1.0 Pro Vision が構造化されたレスポンスを返すようにテキスト部分を調整したプロンプトと結果の例。
BigQuery のような環境では、このようなレスポンスがいかに有益かわかるでしょう。
では、BigQuery で Gemini 1.0 Pro Vision に直接指示して、この分析を数千もの画像で実行する方法を見てみましょう。
BigQuery ML から Gemini 1.0 Pro Vision にアクセスする
Gemini 1.0 Pro Vision は ML.GENERATE_TEXT() 関数を通じて BigQuery と統合されます。この関数を BigQuery プロジェクトで活用するには、ホストされた Vertex AI 大規模言語モデルに相当するリモートモデルを作成する必要があります。幸い、数行の SQL だけで済みます。
モデルが作成されたら、SQL クエリで ML.GENERATE_TEXT()
関数とデータを組み合わせてテキストを生成できます。
この例のように、gemini-pro-vision モデルのエンドポイントを指定する場合に ML.GENERATE_TEXT()
関数の構文に関する注意事項をいくつかお伝えします。
-
TABLE
: オブジェクト テーブルを入力として受け取ります。さまざまな種類の非構造化オブジェクト(画像、動画など)を含めることができます。 -
PROMPT
: gemini-pro モデルを使用する場合とは異なり、オプションSTRUCT
の一部として指定する単一の文字列テキスト プロンプトを受け取り、オブジェクト TABLE に含まれる各オブジェクトに対して、このプロンプトを行ごとに適用します。
結果を見てみましょう。
このクエリに SQL を追加して、ブランド、モデル、年の各値を新しいフィールドに抽出し、ダウンストリームで使用することができます。
レスポンスが解析され、構造化された新しい列に分類されました。
これで完了です。ラベル付けがない未処理の画像のコレクションを、データ ウェアハウスでの分析に適した構造化データに変換できました。この新しいテーブルを他の関連する企業データと結合するとします。たとえば、自動車販売履歴のデータセットを使用すると、最近の期間における同様の自動車の販売価格について平均値や中央値を特定できます。これは、非構造化データをデータ ワークフローに組み込むことで拓ける可能性の一部にすぎません。
Gemini 1.0 Pro Vision in BigQuery を使い始める際、注意すべき重要な点がいくつかあります。
-
オブジェクト テーブルに対して Gemini 1.0 Pro Vision のモデル推論を実行するには、Enterprise または Enterprise Plus の予約が必要です。参考として、BigQuery のエディションに関するドキュメントをご覧ください。
-
Vertex AI 大規模言語モデル(LLM)と Cloud AI サービスを使用する関数には上限が適用されるため、Gemini 1.0 Pro Vision モデルに設定されている現在の割り当てをご確認ください。
次のステップ
生成 AI を BigQuery に直接導入すると、多大なメリットが得られます。カスタム Python コードを記述して BigQuery と生成 AI モデル API の間でデータ パイプラインを構築する代わりに、数行の SQL を記述するだけで済むようになりました。BigQuery はインフラストラクチャを管理し、プロンプトの数を 1 個から数千個にスケールするのに役立ちます。Gemini 1.0 Pro Vision で ML.GENERATE_TEXT() を使用するクエリの例については、概要とデモの動画や、ドキュメントをご覧ください。
Google Cloud Next '24 にお越しになる方は、セッション Power data analytics with generative AI using BigQuery and Gemini(BigQuery と Gemini を使用して生成 AI でデータ分析を実現する)をご覧ください。Gemini Vision Pro と BigQuery の実際の動作をご確認いただけます。
-ソフトウェア エンジニア Honglin Zheng
-Google Cloud、デベロッパー アドボケイト Alicia Williams