arrow_back

インポートしたモデルを使用して、BigQuery で野生動物の画像分類を合理化する

ログイン 参加
700 以上のラボとコースにアクセス

インポートしたモデルを使用して、BigQuery で野生動物の画像分類を合理化する

ラボ 1時間 universal_currency_alt クレジット: 5 show_chart 中級
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

GSP1248

Google Cloud セルフペース ラボのロゴ

概要

このラボでは、インポートしたモデル(ONNX 形式で作成された PyTorch モデル)と GoogleSQL クエリを使用して、BigQuery での画像分類ワークフローの合理化を支援する方法を学習します。

あなたは Cymbal Media and Entertainment の新任データ アナリストとして、インポートしたモデルと BigQuery Machine Learning を推論に使用した野生動物の画像分類のテストを任されました。このプロジェクトの目的は、画像分類プロセスを自動化してコンテンツ作成を簡易化し、将来的に Cymbal のストリーミング プラットフォームでコンテンツとして使用する野生動物画像の大規模なデータベースの構築を検討することです。

ONNX は、ML モデルを表現するために構築されたオープン フォーマットです。ONNX は、ML モデルとディープ ラーニング モデルの構成要素である演算子の共通セットと、共通ファイル形式を定義して、AI 開発者がさまざまなフレームワーク、ツール、ランタイム、コンパイラを使ったモデルを使用できるようにします。

BigQuery は、データから最大限の価値を引き出すのに役立つフルマネージドの AI 対応データ分析プラットフォームであり、マルチエンジン、マルチフォーマット、マルチクラウド向けに設計されています。BigQuery の主な機能の一つが推論のための BigQuery Machine Learning です。この機能では、SQL クエリを使用して ML モデルを作成および実行できます。

GoogleSQL クエリを使用して ML モデルを実行する

通常、大規模なデータセットで ML または AI を実行するには、高いプログラミング技術と ML フレームワークに関する豊富な知識が必要になります。このため、どの企業でもソリューション開発は少数のメンバーに限られ、データをよく理解していても、ML の知識とプログラミングの専門知識が限定的なデータ アナリストは除外されます。しかし、BigQuery ML を使用すると、SQL 実務担当者は既存の SQL 知識、スキル、ツールを使用して、ONNX で構築され Cloud Storage バケットに保存されたモデルから結果を生成できます。これにより、企業はモデルの選択肢が広がり、MLOPs の観点から柔軟性が高まります。また、ML イニシアチブの拡大にも役立ちます。

画像データセット

このラボで使用する画像は、Kaggle の Animals Detection Images Dataset から取得します。

目標

このラボでは、次の方法について学びます。

  • Cloud リソースの接続を作成する。
  • 接続のサービス アカウントに権限を付与する。
  • BigQuery のデータセットとテーブルを作成する。
  • ONNX モデルを BigQuery にインポートする。
  • インポートしたモデルを使用して画像を分類する。

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの詳細] ペインでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの詳細] ペインでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニュー アイコンと検索フィールド

タスク 1. Cloud リソースの接続を作成する

このタスクでは、BigQuery で Cloud リソースの接続を作成し、データセット内のオブジェクト テーブルに Cloud Storage から画像をインポートできるようにします。

注: ラボガイドで割り当てられた Google Cloud リージョンを使用してリソース接続を作成してください。また、データセットもこのリージョンに作成することをおすすめします。これにより、ラボでのエラーを減らすことができます。
  1. Google Cloud コンソールのナビゲーション メニューで、[BigQuery] をクリックします。

  2. [BigQuery へようこそ] ポップアップが表示されます。[完了] をクリックします。

  3. 接続を作成するには、[+ 追加] をクリックし、[外部データソースへの接続] をクリックします。

  4. [接続タイプ] リストで、[Vertex AI リモートモデル、リモート関数、BigLake(Cloud リソース)] を選択します。

  5. [接続 ID] フィールドに接続の名前「onnx_conn」を入力します。

  6. [ロケーション タイプ] で [リージョン] を選択します。

  7. [リージョン] には [] を選択します。

  8. [接続を作成] をクリックします。

  9. [接続へ移動] をクリックします。

  10. BigQuery エクスプローラのプロジェクトの [外部接続] セクションにも、追加した接続が表示されます。[接続情報] ペインで、サービス アカウント ID をテキスト ファイルにコピーして、次のタスクで使用できるようにします。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Cloud リソースの接続を作成する

タスク 2. 画像とファイルを確認し、サービス アカウントにアクセス権を付与する

このタスクでは、画像とファイル(ONNX モデルと classifier.csv)を確認し、Cloud リソース接続のサービス アカウントに IAM 権限を付与します。

Cloud Storage 上の画像と ONNX モデルを確認する

このタスクでリソース接続のサービス アカウントに権限を付与する前に、Cloud Storage バケットに保存されている画像、モデル、classifier.csv ファイルを確認します。

  1. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー アイコン)で [Cloud Storage] を選択します。

  2. -bucket バケットをクリックします。

  3. バケットに含まれている gsp1248 フォルダを開きます。次の 3 つの項目が表示されます。

    • images フォルダには、分類するすべての画像が含まれています。このフォルダにアクセスして、画像を確認します。ライオン、コクチョウ、カバ、アメリカグマ、タラバガニの画像が表示されます。
    • resnet18.onnx ファイルはモデルファイルです。後のタスクでこのファイルを BigQuery にインポートして使用します。
    • classifier.csv ファイルは、画像を分類するクエリ内でモデルとともに使用されます。

接続のサービス アカウントに IAM 権限を付与する

BigQuery で作業を開始する前に、リソース接続のサービス アカウントに IAM 権限を付与すると、クエリの実行時にアクセス拒否エラーが発生しなくなります。

  1. バケットのルートに戻ります。

  2. [権限] をクリックします。

  3. [アクセス権を付与] をクリックします。

  4. [新しいプリンシパル] フィールドに、前の手順でコピーしたサービス アカウント ID を入力します。

  5. [ロールを選択] フィールドで、[Storage オブジェクト] を選択し、[Storage オブジェクト管理者] ロールを選択します。

  6. [保存] をクリックします。

    これにより、サービス アカウント ID に Storage オブジェクト管理者ロールが含まれるようになります。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 接続のサービス アカウントに IAM 権限を付与する

タスク 3. BigQuery でデータセットとテーブルを作成する

このタスクでは、プロジェクトのデータセット、画像を保存するオブジェクト テーブル、分類リスト用のテーブルを作成します。

データセットを作成する

  1. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー アイコン)で、[BigQuery] を選択します。

  2. [エクスプローラ] パネルで、 の [アクションを表示](その他メニュー アイコン)を選択してから、[データセットを作成] を選択します。

    テーブルやモデルなどのデータベース オブジェクトを格納するためのデータセットが作成されます。

  3. [データセットを作成] ペインに以下の情報を入力します。

    項目
    データセット ID onnx_demo
    ロケーション タイプ を選択

    その他の項目はデフォルトのままにします。

  4. [データセットを作成] をクリックします。

    これにより、onnx_demo データセットが作成され、BigQuery エクスプローラのプロジェクトの下に表示されます。

画像のオブジェクト テーブルを作成する

データセットが作成されたので、バケット内の画像を参照するオブジェクト テーブルを作成できます。

オブジェクト テーブルを作成するには、SQL クエリを使用します。

  1. [+] をクリックして新しい SQL クエリを作成します。

  2. クエリエディタで、以下のクエリを貼り付けます。

    CREATE OR REPLACE EXTERNAL TABLE `onnx_demo.wildlife` WITH CONNECTION `{{{project_0.default_region|lab region}}}.onnx_conn` OPTIONS ( object_metadata = 'SIMPLE', uris = ['gs://{{{project_0.project_id|set at lab start}}}-bucket/gsp1248/images/*'] );
  3. クエリを実行します。

    これにより、wildlife オブジェクト テーブルが onnx_demo データセットに追加され、各動物画像の URI(Cloud Storage のロケーション)が読み込まれます。

  4. エクスプローラで wildlife テーブルをクリックし、スキーマと詳細を確認します。

分類リスト用のテーブルを作成する

分類リスト用のテーブルを作成するには、SQL クエリを使用します。

  1. [+] をクリックして新しい SQL クエリを作成します。

  2. クエリエディタで、以下のクエリを貼り付けます。

    LOAD DATA OVERWRITE onnx_demo.classifier (ID INT64,Classification STRING) FROM FILES ( format = 'CSV', uris = ['gs://{{{project_0.project_id|set at lab start}}}-bucket/gsp1248/classifier.csv']);
  3. クエリを実行します。

    その結果、classifier テーブルが onnx_demo データセットに追加され、データセット内の各アイテムの ID と分類が読み込まれます。これには、後ほどラボで分類する野生動物が含まれています。

  4. エクスプローラで classifier テーブルをクリックし、スキーマと詳細を確認します。テーブルにクエリを実行して、各アイテムがどのように分類されるかを確認します。注: テーブルには、野生動物以外にも多くのアイテム(動物、魚、昆虫、鳥など)が含まれています。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 BigQuery でデータセットとテーブルを作成する

タスク 4. モデルを BigQuery にインポートする

このタスクでは、resnet18 ONNX モデルを BigQuery にインポートして、画像の分類に使用できるようにします。

  1. [+] をクリックして新しい SQL クエリを作成します。

  2. クエリエディタで、以下のクエリを貼り付けます。

    CREATE OR REPLACE MODEL `onnx_demo.model` OPTIONS (MODEL_TYPE='ONNX', MODEL_PATH='gs://{{{project_0.project_id|set at lab start}}}-bucket/gsp1248/resnet18.onnx')
  3. クエリを実行します。

    これにより、モデルが onnx_demo データセットのモデル セクションに追加されます。

  4. エクスプローラでモデルをクリックし、詳細を確認します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 モデルを BigQuery にインポートする

タスク 5. インポートした ONNX モデルを使用して画像を分類する

このタスクでは、スロットを予約してプロジェクトに割り当て、クエリを使用して新しい画像を ONNX モデルで分類します。

スロット予約を追加する

ONNX モデルを使用するには、スロット予約を作成してプロジェクトに割り当てる必要があります。

  1. BigQuery メニューで [容量管理] をクリックします。

  2. [容量管理] ページで [予約を作成] をクリックします。

  3. [予約を作成] ページで、予約名として「reservation」を入力します。

  4. [場所] では を選択します。

  5. [最大予約サイズ セレクタ] オプションで [S(100 スロット)] を選択します。

  6. [保存] をクリックします。

スロット予約をプロジェクトに割り当てる

  1. 予約の「予約のアクション」ボタン(アクションを表示)をクリックします。

  2. ポップアップ メニューで [割り当ての作成] をクリックします。

  3. [割り当てを作成する] ポップアップ ウィンドウで、[ジョブタイプ] はデフォルトで [QUERY] になっています。このオプションを維持します。

  4. [参照] をクリックします。

  5. ポップアップで、プロジェクト名を選択すると、そのプロジェクトが [組織、フォルダ、プロジェクトを選択] フィールドに追加されます。

  6. [作成] をクリックします。

    これにより、プロジェクトは先ほど作成したスロット予約に割り当てられます。

  7. 2 分待ちます。スロット予約の割り当てがアカウントに適用されるまでに時間がかかります。

モデルを使用して画像を分類する

  1. BigQuery Studio に戻ります。

  2. [+] をクリックして新しい SQL クエリを作成します。

  3. クエリエディタで、以下のクエリを貼り付けます。

    SELECT * FROM `{{{project_0.project_id|set at lab start}}}.onnx_demo.classifier` WHERE EXISTS ( SELECT 1 FROM ML.PREDICT(MODEL onnx_demo.model, ( SELECT ML.RESIZE_IMAGE(ML.DECODE_IMAGE(DATA), 224, 224, FALSE) AS input FROM `onnx_demo.wildlife` ) ) WHERE class_label = ID - 1 )
  4. クエリを実行します。

    これにより、画像は ONNX モデルに基づいて ID と予測分類を使用して行ごとに分類されます。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 インポートした ONNX モデルを使用して画像を分類する

お疲れさまでした

Cloud リソースの接続を作成して、接続のためにサービス アカウントにアクセス権を付与し、データセットとテーブルを作成して ONNX モデルを BigQuery にインポートした後、モデルを使用して画像を分類できました。

次のステップと詳細情報

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2024 年 5 月 24 日

ラボの最終テスト日: 2024 年 5 月 24 日

Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。