
始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Create a cloud resource connection
/ 20
Grant IAM permissions to the connection's service account
/ 20
Create the dataset and tables in BigQuery
/ 20
Import the model into BigQuery
/ 20
Classify images using the imported ONNX model
/ 20
このラボでは、インポートしたモデル(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 モデルを作成および実行できます。
通常、大規模なデータセットで ML または AI を実行するには、高いプログラミング技術と ML フレームワークに関する豊富な知識が必要になります。このため、どの企業でもソリューション開発は少数のメンバーに限られ、データをよく理解していても、ML の知識とプログラミングの専門知識が限定的なデータ アナリストは除外されます。しかし、BigQuery ML を使用すると、SQL 実務担当者は既存の SQL 知識、スキル、ツールを使用して、ONNX で構築され Cloud Storage バケットに保存されたモデルから結果を生成できます。これにより、企業はモデルの選択肢が広がり、MLOPs の観点から柔軟性が高まります。また、ML イニシアチブの拡大にも役立ちます。
このラボで使用する画像は、Kaggle の Animals Detection Images Dataset から取得します。
このラボでは、次の方法について学びます。
こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。
このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。
ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
[ラボの詳細] ペインでもユーザー名を確認できます。
[次へ] をクリックします。
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
[ラボの詳細] ペインでもパスワードを確認できます。
[次へ] をクリックします。
その後次のように進みます。
その後、このタブで Google Cloud コンソールが開きます。
このタスクでは、BigQuery で Cloud リソースの接続を作成し、データセット内のオブジェクト テーブルに Cloud Storage から画像をインポートできるようにします。
Google Cloud コンソールのナビゲーション メニューで、[BigQuery] をクリックします。
[BigQuery へようこそ] ポップアップが表示されます。[完了] をクリックします。
接続を作成するには、[+ 追加] をクリックし、[外部データソースへの接続] をクリックします。
[接続タイプ] リストで、[Vertex AI リモートモデル、リモート関数、BigLake(Cloud リソース)] を選択します。
[接続 ID] フィールドに接続の名前「onnx_conn」を入力します。
[ロケーション タイプ] で [リージョン] を選択します。
[リージョン] には [
[接続を作成] をクリックします。
[接続へ移動] をクリックします。
BigQuery エクスプローラのプロジェクトの [外部接続] セクションにも、追加した接続が表示されます。[接続情報] ペインで、サービス アカウント ID をテキスト ファイルにコピーして、次のタスクで使用できるようにします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このタスクでは、画像とファイル(ONNX モデルと classifier.csv)を確認し、Cloud リソース接続のサービス アカウントに IAM 権限を付与します。
このタスクでリソース接続のサービス アカウントに権限を付与する前に、Cloud Storage バケットに保存されている画像、モデル、classifier.csv ファイルを確認します。
Google Cloud コンソールのナビゲーション メニュー()で [Cloud Storage] を選択します。
バケットに含まれている gsp1248 フォルダを開きます。次の 3 つの項目が表示されます。
BigQuery で作業を開始する前に、リソース接続のサービス アカウントに IAM 権限を付与すると、クエリの実行時にアクセス拒否エラーが発生しなくなります。
バケットのルートに戻ります。
[権限] をクリックします。
[アクセス権を付与] をクリックします。
[新しいプリンシパル] フィールドに、前の手順でコピーしたサービス アカウント ID を入力します。
[ロールを選択] フィールドで、[Storage オブジェクト] を選択し、[Storage オブジェクト管理者] ロールを選択します。
[保存] をクリックします。
これにより、サービス アカウント ID に Storage オブジェクト管理者ロールが含まれるようになります。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このタスクでは、プロジェクトのデータセット、画像を保存するオブジェクト テーブル、分類リスト用のテーブルを作成します。
Google Cloud コンソールのナビゲーション メニュー()で、[BigQuery] を選択します。
[エクスプローラ] パネルで、)を選択してから、[データセットを作成] を選択します。
テーブルやモデルなどのデータベース オブジェクトを格納するためのデータセットが作成されます。
[データセットを作成] ペインに以下の情報を入力します。
項目 | 値 |
---|---|
データセット ID | onnx_demo |
ロケーション タイプ |
|
その他の項目はデフォルトのままにします。
[データセットを作成] をクリックします。
これにより、onnx_demo データセットが作成され、BigQuery エクスプローラのプロジェクトの下に表示されます。
データセットが作成されたので、バケット内の画像を参照するオブジェクト テーブルを作成できます。
オブジェクト テーブルを作成するには、SQL クエリを使用します。
[+] をクリックして新しい SQL クエリを作成します。
クエリエディタで、以下のクエリを貼り付けます。
クエリを実行します。
これにより、wildlife オブジェクト テーブルが onnx_demo データセットに追加され、各動物画像の URI(Cloud Storage のロケーション)が読み込まれます。
エクスプローラで wildlife テーブルをクリックし、スキーマと詳細を確認します。
分類リスト用のテーブルを作成するには、SQL クエリを使用します。
[+] をクリックして新しい SQL クエリを作成します。
クエリエディタで、以下のクエリを貼り付けます。
クエリを実行します。
その結果、classifier テーブルが onnx_demo データセットに追加され、データセット内の各アイテムの ID と分類が読み込まれます。これには、後ほどラボで分類する野生動物が含まれています。
エクスプローラで classifier テーブルをクリックし、スキーマと詳細を確認します。テーブルにクエリを実行して、各アイテムがどのように分類されるかを確認します。注: テーブルには、野生動物以外にも多くのアイテム(動物、魚、昆虫、鳥など)が含まれています。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このタスクでは、resnet18 ONNX モデルを BigQuery にインポートして、画像の分類に使用できるようにします。
[+] をクリックして新しい SQL クエリを作成します。
クエリエディタで、以下のクエリを貼り付けます。
クエリを実行します。
これにより、モデルが onnx_demo データセットのモデル セクションに追加されます。
エクスプローラでモデルをクリックし、詳細を確認します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このタスクでは、スロットを予約してプロジェクトに割り当て、クエリを使用して新しい画像を ONNX モデルで分類します。
ONNX モデルを使用するには、スロット予約を作成してプロジェクトに割り当てる必要があります。
BigQuery メニューで [容量管理] をクリックします。
[容量管理] ページで [予約を作成] をクリックします。
[予約を作成] ページで、予約名として「reservation
」を入力します。
[場所] では
[最大予約サイズ セレクタ] オプションで [S(100 スロット)] を選択します。
[保存] をクリックします。
予約の「予約のアクション」ボタン(アクションを表示)をクリックします。
ポップアップ メニューで [割り当ての作成] をクリックします。
[割り当てを作成する] ポップアップ ウィンドウで、[ジョブタイプ] はデフォルトで [QUERY] になっています。このオプションを維持します。
[参照] をクリックします。
ポップアップで、プロジェクト名を選択すると、そのプロジェクトが [組織、フォルダ、プロジェクトを選択] フィールドに追加されます。
[作成] をクリックします。
これにより、プロジェクトは先ほど作成したスロット予約に割り当てられます。
2 分待ちます。スロット予約の割り当てがアカウントに適用されるまでに時間がかかります。
BigQuery Studio に戻ります。
[+] をクリックして新しい SQL クエリを作成します。
クエリエディタで、以下のクエリを貼り付けます。
クエリを実行します。
これにより、画像は ONNX モデルに基づいて ID と予測分類を使用して行ごとに分類されます。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
Cloud リソースの接続を作成して、接続のためにサービス アカウントにアクセス権を付与し、データセットとテーブルを作成して ONNX モデルを BigQuery にインポートした後、モデルを使用して画像を分類できました。
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2024 年 5 月 24 日
ラボの最終テスト日: 2024 年 5 月 24 日
Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください