
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Enable relevant APIs and set IAM roles
/ 15
Create a cloud resource connection
/ 10
Grant IAM permissions to the connection's service account
/ 10
Create the dataset and object table in BigQuery for movie poster images
/ 10
Create the Gemini Remote models in BigQuery
/ 10
Prompt Gemini to provide movie summaries for each poster
/ 20
Generate text embeddings for a subset of the IMDB dataset
/ 25
このラボでは、リモートモデル(Gemini AI モデル)を使用した推論のための BigQuery Machine Learning(BigQuery ML)の使い方を学びます。そして、概念実証プロジェクトの一環として映画のポスター画像を分析し、これらのポスターの要約を生成します。
BigQuery は、データから最大限の価値を引き出すのに役立つフルマネージドの AI 対応データ分析プラットフォームであり、マルチエンジン、マルチフォーマット、マルチクラウド向けに設計されています。BigQuery の主な機能の一つである BigQuery ML による推論では、GoogleSQL クエリを使用して ML モデルを作成し、実行できます。
Gemini は、Google DeepMind が開発した生成 AI モデルのファミリーであり、マルチモーダル ユースケース用に設計されています。Gemini API を使用すると、Gemini Pro Vision と Gemini Pro のモデルにアクセスできます。
通常、大規模なデータセットで ML または AI を実行するには、大量のプログラミング作業と ML フレームワークに関する知識が必要になります。こうした制約のために、組織におけるソリューション開発はごく限られたメンバーで行われており、データに精通しているにもかかわらずプログラミングや ML に詳しくないデータ アナリストが参加できない事態になりがちです。しかし、BigQuery ML による推論では、SQL 実務担当者が既存の SQL ツールやスキルを使用してモデルを構築し、LLM と Cloud AI API から結果を生成できます。
このラボでは、次の方法について学びます。
こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。
このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。
ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
[ラボの詳細] ペインでもユーザー名を確認できます。
[次へ] をクリックします。
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
[ラボの詳細] ペインでもパスワードを確認できます。
[次へ] をクリックします。
その後次のように進みます。
その後、このタブで Google Cloud コンソールが開きます。
このタスクでは、Gemini 用の Cloud AI Companion API と Vertex AI Platform API をプロジェクトで使用できるようにラボ環境を構成します。
ラボの認証情報を使用して Google Cloud コンソールにログインし、Cloud Shell ターミナル ウィンドウを開きます。
Cloud Shell で次のコマンドを実行して、プロジェクト ID とリージョンの環境変数を設定します。
ログインに使用した Google ユーザー アカウントを環境変数に保存するには、以下のコマンドを実行します。
Gemini 用の Cloud AI Companion API と Vertex AI API を有効にします。
Gemini を使用できるよう、必要な IAM ロールを Google Cloud の Qwiklabs ユーザー アカウントに付与します。
これらのロールを追加すると、Gemini の支援機能を利用できるようになります。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このタスクでは、BigQuery で Cloud リソース接続を作成し、Gemini Pro モデルと Gemini Pro Vision モデルで作業できるようにします。
Google Cloud コンソールのナビゲーション メニューで、[BigQuery] をクリックします。
表示される「ようこそ」のポップアップ画面で [完了] をクリックします。
接続を作成するには、[+ 追加] をクリックし、[外部データソースへの接続] をクリックします。
[接続タイプ] リストで、[Vertex AI リモートモデル、リモート関数、BigLake(Cloud リソース)] を選択します。
[接続 ID] フィールドに接続の名前「gemini_conn」を入力します。
[ロケーション タイプ] で [マルチリージョン] を選択し、プルダウンから、[米国] マルチリージョンを選択します。
他の設定はデフォルトのままにします。
[接続を作成] をクリックします。
[接続へ移動] をクリックします。
[接続情報] ペインで、サービス アカウント ID をテキスト ファイルにコピーして、次のタスクで使用できるようにします。また、BigQuery Explorer で、プロジェクトの [外部接続] セクションに接続が追加されていることも確認できます。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このタスクでは、ロールを通じて Cloud リソース接続のサービス アカウントに IAM 権限を付与し、Vertex AI サービスにアクセスできるようにします。
Google Cloud コンソールのナビゲーション メニューで、[IAM と管理] をクリックします。
[アクセス権を付与] をクリックします。
[新しいプリンシパル] フィールドに、前の手順でコピーしたサービス アカウント ID を入力します。
[ロールを選択] フィールドで、[Vertex AI]、[Vertex AI ユーザー] ロールの順に選択します。
[保存] をクリックします。
これにより、サービス アカウント ID に Vertex AI ユーザーロールが含まれるようになります。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このタスクでは、プロジェクトのデータセットを作成し、そのデータセット内にポスター画像を格納するためのオブジェクト テーブルを作成します。
Google Cloud コンソールのナビゲーション メニュー()で、[BigQuery] を選択します。
[エクスプローラ] パネルで、
テーブルやモデルなどのデータベース オブジェクトを格納するためのデータセットが作成されます。
[データセットを作成] ペインに以下の情報を入力します。
項目 | 値 |
---|---|
データセット ID | gemini_demo |
ロケーション タイプ | [マルチリージョン] を選択 |
マルチリージョン | [米国] を選択 |
その他の項目はデフォルトのままにします。
[データセットを作成] をクリックします。
これにより、gemini_demo データセットが作成され、BigQuery エクスプローラのプロジェクトの下に表示されます。
オブジェクト テーブルを作成するには、SQL クエリを使用します。
[+] をクリックして、新しい SQL クエリを作成します。
クエリエディタで、以下のクエリを貼り付けます。
クエリを実行します。
これにより、movie_posters オブジェクト テーブルが gemini_demo データセットに追加され、各映画ポスター画像の URI(Cloud Storage 内)が読み込まれます。
エクスプローラで movie_posters をクリックし、スキーマと詳細を確認します。自由にテーブルをクエリしてレコードを確認してみてください。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
オブジェクト テーブルが作成されたので、そのテーブルを使った作業を始めましょう。このタスクでは、BigQuery で Gemini Pro モデルと Gemini Pro Vision モデルのリモートモデルを作成します。
[+] をクリックして新しい SQL クエリを作成します。
クエリエディタで、以下のクエリを貼り付けて実行します。
これにより、gemini_pro モデルが作成され、モデル セクションの gemini_demo データセットに追加されます。
エクスプローラで gemini_pro モデルをクリックし、スキーマと詳細を確認します。
[+] をクリックして新しい SQL クエリを作成します。
クエリエディタで、以下のクエリを貼り付けて実行します。
これにより、gemini_pro_vision モデルが作成され、モデル セクションの gemini_demo データセットに追加されます。
エクスプローラで gemini_pro_vision モデルをクリックし、スキーマと詳細を確認します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このタスクでは、Gemini(作成したばかりの Gemini Pro モデルと Vision モデル)を使用して映画のポスター画像を分析し、各映画の要約を生成します。
[+] をクリックして新しい SQL クエリを作成します。
クエリエディタで、以下のクエリを貼り付けて実行します。
これにより、movie_posters_results テーブルが作成されます。
エクスプローラで movie_posters_results テーブルをクリックし、スキーマと詳細を確認します。
[+] をクリックして新しい SQL クエリを作成します。
クエリエディタで、以下のクエリを貼り付けて実行します。
これにより、各映画ポスターの行が URI(映画ポスター画像の Cloud Storage 内の場所)と JSON の結果(Gemini Pro Vision モデルから取得された映画タイトルと公開年を含む)とともに表示されます。
次のクエリを使用すると、これらの結果を人が読みやすい形式で取得できます。
[+] をクリックして新しい SQL クエリを作成します。
クエリエディタで、以下のクエリを貼り付けて実行します。
これにより、movie_posters_result_formatted テーブルが作成されます。
以下のクエリを使用してテーブルをクエリすると、作成された行を確認できます。
URI 列の結果は変わりませんが、JSON が各行に title 列と year 列があるように変換されます。
次のクエリを実行することで、Gemini Pro を使用して各ポスターの映画の要約を作成できます。
前のクエリと同じような結果になりますが、Gemini で使用されたプロンプトが prompt 列に表示され、このプロンプトを使用した結果(映画の短い要約)が ml_generate_text_llm_result フィールドに含まれています。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このタスクでは、さらなる分析のためにリモートモデルを使用してテキスト エンベディングを生成します。
テキスト エンベディングを生成するには、エンドポイントでホストされているリモートの text-multilingual-embedding-002 モデルを使用する必要があります。
[+] をクリックして新しい SQL クエリを作成します。
クエリエディタで、以下のクエリを貼り付けて実行します。
これにより、text_embedding モデルが作成され、エクスプローラの gemini_demo データセットの下に表示されます。
結果を保存するテーブルを作成する必要があります。
[+] をクリックして新しい SQL クエリを作成します。
クエリエディタで、以下のクエリを貼り付けて実行します。
これにより、movie_poster_results_embeddings テーブルが作成されます。このテーブルには、gemini_demo.movie_posters_results_formatted テーブルから取得したテキスト コンテンツ(URI、映画タイトル、公開年)のエンベディングを作成した結果が含まれます。
次の新しいクエリを使用して、クエリの結果を表示できます。
これにより、モデルによって生成された各映画のエンベディング(数字で表されたベクトル)が表示されます。
データセット内の 1935 年より前に公開された映画のみが含まれる新しいビューを作成します。
次の SQL ステートメントを使用して新しいクエリを作成し、実行します。
これにより、データセット内の 1935 年より前に公開されたすべての映画について、bigquery-public-data.imdb.reviews テーブルから ID、タイトル、公開年が取得され、そのリストを含む新しいビューが作成されます。
次の SQL ステートメントを使用して新しいクエリを作成し、実行します。
このクエリにより、gemini_demo.imdb_movies テーブルのテキスト コンテンツのエンベディングを含むテーブルが作成されます。
次の SQL ステートメントを使用して新しいクエリを作成し、実行します。
このクエリでは、VECTOR_SEARCH 関数を使用して、gemini_demo.movie_posters_results_embeddings テーブルの各行について、gemini_demo.imdb_movies_embeddings テーブル内の最近傍を見つけます。最近傍は、2 つのエンベディングがどの程度類似しているかを示すコサイン距離指標を使用して検出されます。
このクエリを使用すると、映画ポスターで Gemini Pro Vision によって識別された各映画をもとに、最も類似する映画を IMDb データセット内で見つけることができます。たとえば、このクエリを使用して、映画『Au Secours!』(映画ポスターの 1 つで Gemini Pro Vision によって識別されたもの)に最も近い映画を IMDb 公開データセット内で見つけることができます。IMDb 公開データセットでは、同映画の英語タイトル『Help!』が使用されています。
新しいクエリを作成して実行し、IMDb 公開データセットで提供されている映画の評価に関する追加情報を結合します。
このクエリは前のクエリに似ています。ベクトル エンベディングという特別な数値表現を使用して、指定された映画ポスターに類似する映画を見つける点は変わりませんが、IMDb 公開データセットの別のテーブルから、最近傍として検出された各映画の平均評価と投票数を結合しています。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このラボでは、まず BigQuery でポスター画像のオブジェクト テーブルを作成しました。その後、Gemini リモートモデルを作成し、それを使用して画像の分析と映画の要約を Gemini にプロンプトで指示しました。さらに、映画のタイトルのテキスト エンベディングを生成し、このエンベディングを使用して映画のポスター画像を IMDb データセット内の関連する映画タイトルと照合しました。
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2024 年 10 月 4 日
ラボの最終テスト日: 2024 年 5 月 23 日
Copyright 2025 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
One lab at a time
Confirm to end all existing labs and start this one