arrow_back

リモートモデルを使用して BigQuery で映画のポスターを分析する

ログイン 参加
知識をテストして、コミュニティで共有しましょう

リモートモデルを使用して BigQuery で映画のポスターを分析する

ラボ 1時間 universal_currency_alt クレジット: 5 show_chart 中級
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
知識をテストして、コミュニティで共有しましょう

GSP1247

概要

このラボでは、リモートモデル(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 のモデルにアクセスできます。

GoogleSQL クエリを使用した ML モデルの実行

通常、大規模なデータセットで ML または AI を実行するには、大量のプログラミング作業と ML フレームワークに関する知識が必要になります。こうした制約のために、組織におけるソリューション開発はごく限られたメンバーで行われており、データに精通しているにもかかわらずプログラミングや ML に詳しくないデータ アナリストが参加できない事態になりがちです。しかし、BigQuery ML による推論では、SQL 実務担当者が既存の SQL ツールやスキルを使用してモデルを構築し、LLM と Cloud AI API から結果を生成できます。

目標

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

  • API を使用するように環境とアカウントを構成する。
  • BigQuery で Cloud リソース接続を作成する。
  • BigQuery で映画のポスター画像用のデータセットとオブジェクト テーブルを作成する。
  • BigQuery で Gemini リモートモデルを作成する。
  • 各ポスターの映画の要約を作成するよう Gemini にプロンプトで指示する。
  • 各ポスターの映画のテキスト エンベディングを生成する。
  • BigQuery の VECTOR_SEARCH を使用して、映画のポスター画像をデータセット内の関連性の高い映画と照合する。

設定と要件

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

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、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. API を使用するように環境とプロジェクトを構成する

このタスクでは、Gemini 用の Cloud AI Companion API と Vertex AI Platform API をプロジェクトで使用できるようにラボ環境を構成します。

注: Cloud Shell に慣れていない場合は、Cloud Shell を使用するをご覧ください。
  1. ラボの認証情報を使用して Google Cloud コンソールにログインし、Cloud Shell ターミナル ウィンドウを開きます。

  2. Cloud Shell で次のコマンドを実行して、プロジェクト ID とリージョンの環境変数を設定します。

    PROJECT_ID=$(gcloud config get-value project) REGION={{{project_0.default_region|set at lab start}}} echo "PROJECT_ID=${PROJECT_ID}" echo "REGION=${REGION}"
  3. ログインに使用した Google ユーザー アカウントを環境変数に保存するには、以下のコマンドを実行します。

    USER=$(gcloud config get-value account 2> /dev/null) echo "USER=${USER}"
  4. Gemini 用の Cloud AI Companion API と Vertex AI API を有効にします。

    gcloud services enable cloudaicompanion.googleapis.com --project ${PROJECT_ID} gcloud services enable aiplatform.googleapis.com --project ${PROJECT_ID}
  5. Gemini を使用できるよう、必要な IAM ロールを Google Cloud の Qwiklabs ユーザー アカウントに付与します。

    gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/cloudaicompanion.user gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/serviceusage.serviceUsageViewer

    これらのロールを追加すると、Gemini の支援機能を利用できるようになります。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 関連する API を有効化して IAM ロールを設定する

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

このタスクでは、BigQuery で Cloud リソース接続を作成し、Gemini Pro モデルと Gemini Pro Vision モデルで作業できるようにします。

  1. Google Cloud コンソールのナビゲーション メニューで、[BigQuery] をクリックします。

  2. 表示される「ようこそ」のポップアップ画面で [完了] をクリックします。

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

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

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

  6. [ロケーション タイプ] で [マルチリージョン] を選択し、プルダウンから、[米国] マルチリージョンを選択します。

  7. 他の設定はデフォルトのままにします。

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

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

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

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

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

このタスクでは、ロールを通じて Cloud リソース接続のサービス アカウントに IAM 権限を付与し、Vertex AI サービスにアクセスできるようにします。

  1. Google Cloud コンソールのナビゲーション メニューで、[IAM と管理] をクリックします。

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

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

  4. [ロールを選択] フィールドで、[Vertex AI]、[Vertex AI ユーザー] ロールの順に選択します。

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

    これにより、サービス アカウント ID に Vertex AI ユーザーロールが含まれるようになります。

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

タスク 4. BigQuery で映画のポスター画像用のデータセットとオブジェクト テーブルを作成する

このタスクでは、プロジェクトのデータセットを作成し、そのデータセット内にポスター画像を格納するためのオブジェクト テーブルを作成します。

データセットを作成する

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

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

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

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

    項目
    データセット ID gemini_demo
    ロケーション タイプ [マルチリージョン] を選択
    マルチリージョン [米国] を選択

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

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

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

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

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

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

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

    CREATE OR REPLACE EXTERNAL TABLE `gemini_demo.movie_posters` WITH CONNECTION `us.gemini_conn` OPTIONS ( object_metadata = 'SIMPLE', uris = ['gs://cloud-samples-data/vertex-ai/dataset-management/datasets/classic-movie-posters/*'] );
  3. クエリを実行します。

    これにより、movie_posters オブジェクト テーブルが gemini_demo データセットに追加され、各映画ポスター画像の URI(Cloud Storage 内)が読み込まれます。

  4. エクスプローラで movie_posters をクリックし、スキーマと詳細を確認します。自由にテーブルをクエリしてレコードを確認してみてください。

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

タスク 5. BigQuery で Gemini リモートモデルを作成する

オブジェクト テーブルが作成されたので、そのテーブルを使った作業を始めましょう。このタスクでは、BigQuery で Gemini Pro モデルと Gemini Pro Vision モデルのリモートモデルを作成します。

Gemini Pro モデルを作成する

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

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

    CREATE OR REPLACE MODEL `gemini_demo.gemini_pro` REMOTE WITH CONNECTION `us.gemini_conn` OPTIONS (endpoint = 'gemini-pro')

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

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

Gemini Pro Vision モデルを作成する

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

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

    CREATE OR REPLACE MODEL `gemini_demo.gemini_pro_vision` REMOTE WITH CONNECTION `us.gemini_conn` OPTIONS (endpoint = 'gemini-pro-vision')

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

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

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

タスク 6. 各ポスターの映画の要約を作成するよう Gemini にプロンプトで指示する

このタスクでは、Gemini(作成したばかりの Gemini Pro モデルと Vision モデル)を使用して映画のポスター画像を分析し、各映画の要約を生成します。

Gemini Pro Vision モデルを使用して画像を分析する

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

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

    CREATE OR REPLACE TABLE `gemini_demo.movie_posters_results` AS ( SELECT uri, ml_generate_text_llm_result FROM ML.GENERATE_TEXT( MODEL `gemini_demo.gemini_pro_vision`, TABLE `gemini_demo.movie_posters`, STRUCT( 0.2 AS temperature, 'For the movie represented by this poster, what is the movie title and year of release? Answer in JSON format with two keys: title, year. title should be string, year should be integer.' AS PROMPT, TRUE AS FLATTEN_JSON_OUTPUT)));

    これにより、movie_posters_results テーブルが作成されます。

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

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

  5. クエリエディタで、以下のクエリを貼り付けて実行します。

    SELECT * FROM `gemini_demo.movie_posters_results`

    これにより、各映画ポスターの行が URI(映画ポスター画像の Cloud Storage 内の場所)と JSON の結果(Gemini Pro Vision モデルから取得された映画タイトルと公開年を含む)とともに表示されます。

    次のクエリを使用すると、これらの結果を人が読みやすい形式で取得できます。

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

  7. クエリエディタで、以下のクエリを貼り付けて実行します。

    CREATE OR REPLACE TABLE `gemini_demo.movie_posters_results_formatted` AS ( SELECT uri, JSON_QUERY(RTRIM(LTRIM(results.ml_generate_text_llm_result, " ```json"), "```"), "$.title") AS title, JSON_QUERY(RTRIM(LTRIM(results.ml_generate_text_llm_result, " ```json"), "```"), "$.year") AS year FROM `gemini_demo.movie_posters_results` results )

    これにより、movie_posters_result_formatted テーブルが作成されます。

  8. 以下のクエリを使用してテーブルをクエリすると、作成された行を確認できます。

    SELECT * FROM `gemini_demo.movie_posters_results_formatted`

    URI 列の結果は変わりませんが、JSON が各行に title 列と year 列があるように変換されます。

映画の要約を作成するよう Gemini Pro にプロンプトで指示する

  1. 次のクエリを実行することで、Gemini Pro を使用して各ポスターの映画の要約を作成できます。

    SELECT uri, title, year, prompt, ml_generate_text_llm_result FROM ML.GENERATE_TEXT( MODEL `gemini_demo.gemini_pro`, ( SELECT CONCAT('Provide a short summary of movie titled ',title, ' from the year ',year,'.') AS prompt, uri, title, year FROM `gemini_demo.movie_posters_results_formatted` LIMIT 20 ), STRUCT(0.2 AS temperature, TRUE AS FLATTEN_JSON_OUTPUT));

    前のクエリと同じような結果になりますが、Gemini で使用されたプロンプトが prompt 列に表示され、このプロンプトを使用した結果(映画の短い要約)が ml_generate_text_llm_result フィールドに含まれています。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 各ポスターの映画の要約を作成するよう Gemini にプロンプトで指示する

タスク 7. リモートモデルを使用してテキスト エンベディングを生成する

このタスクでは、さらなる分析のためにリモートモデルを使用してテキスト エンベディングを生成します。

リモートモデルを作成する

テキスト エンベディングを生成するには、エンドポイントでホストされているリモートの text-multilingual-embedding-002 モデルを使用する必要があります。

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

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

    CREATE OR REPLACE MODEL `gemini_demo.text_embedding` REMOTE WITH CONNECTION `us.gemini_conn` OPTIONS (endpoint = 'text-multilingual-embedding-002')

    これにより、text_embedding モデルが作成され、エクスプローラの gemini_demo データセットの下に表示されます。

ポスターに対応するタイトルと年のテキスト エンベディングを生成する

結果を保存するテーブルを作成する必要があります。

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

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

    CREATE OR REPLACE TABLE `gemini_demo.movie_posters_results_embeddings` AS ( SELECT * FROM ML.GENERATE_EMBEDDING( MODEL `gemini_demo.text_embedding`, ( SELECT CONCAT('The movie titled ', title, ' from the year ', year,'.') AS content, title, year, uri FROM `gemini_demo.movie_posters_results_formatted` ), STRUCT(TRUE AS flatten_json_output)));

    これにより、movie_poster_results_embeddings テーブルが作成されます。このテーブルには、gemini_demo.movie_posters_results_formatted テーブルから取得したテキスト コンテンツ(URI、映画タイトル、公開年)のエンベディングを作成した結果が含まれます。

    注: エンベディングを生成するために、ML.GENERATE_EMBEDDING 関数が使用されています。この関数は次の 3 つの引数を取ります。
    • 最初の引数は、エンべディングの生成に使用するモデルの名前です。この例では、モデルの名前は gemini_demo.text_embedding です。
    • 2 番目の引数は、エンベディングするテキスト コンテンツを選択するサブクエリです。この例では、サブクエリは各映画のタイトルと年を選択し、それらを 1 つの文字列に連結します。
    • 3 番目の引数は、エンベディングの出力形式を指定する構造体です。この例では、flatten_json_output フィールドが TRUE に設定されています。つまり、エンベディングは 1 つの JSON オブジェクトにフラット化されます。
    .
  3. 次の新しいクエリを使用して、クエリの結果を表示できます。

    SELECT * FROM `gemini_demo.movie_posters_results_embeddings`

    これにより、モデルによって生成された各映画のエンベディング(数字で表されたベクトル)が表示されます。

IMDb データセットのサブセットのテキスト エンベディングを生成する

データセット内の 1935 年より前に公開された映画のみが含まれる新しいビューを作成します。

  1. 次の SQL ステートメントを使用して新しいクエリを作成し、実行します。

    CREATE OR REPLACE VIEW `gemini_demo.imdb_movies` AS ( WITH reviews AS ( SELECT reviews.movie_id AS movie_id, title.primary_title AS title, title.start_year AS year, reviews.review AS review FROM `bigquery-public-data.imdb.reviews` reviews LEFT JOIN `bigquery-public-data.imdb.title_basics` title ON reviews.movie_id = title.tconst) SELECT DISTINCT(movie_id), title, year FROM reviews WHERE year < 1935)

    これにより、データセット内の 1935 年より前に公開されたすべての映画について、bigquery-public-data.imdb.reviews テーブルから ID、タイトル、公開年が取得され、そのリストを含む新しいビューが作成されます。

  2. 次の SQL ステートメントを使用して新しいクエリを作成し、実行します。

    CREATE OR REPLACE TABLE `gemini_demo.imdb_movies_embeddings` AS ( SELECT * FROM ML.GENERATE_EMBEDDING( MODEL `gemini_demo.text_embedding`, ( SELECT CONCAT('The movie titled ', title, ' from the year ', year,'.') AS content, title, year, movie_id FROM `gemini_demo.imdb_movies` ), STRUCT(TRUE AS flatten_json_output) ) WHERE ml_generate_embedding_status = '' );

    このクエリにより、gemini_demo.imdb_movies テーブルのテキスト コンテンツのエンベディングを含むテーブルが作成されます。

BigQuery の VECTOR_SEARCH を使用して、映画のポスター画像を imdb_movie_id と照合する

  1. 次の SQL ステートメントを使用して新しいクエリを作成し、実行します。

    SELECT query.uri AS poster_uri, query.title AS poster_title, query.year AS poster_year, base.title AS imdb_title, base.year AS imdb_year, base.movie_id AS imdb_movie_id, distance FROM VECTOR_SEARCH( TABLE `gemini_demo.imdb_movies_embeddings`, 'ml_generate_embedding_result', TABLE `gemini_demo.movie_posters_results_embeddings`, 'ml_generate_embedding_result', top_k => 1, distance_type => 'COSINE');

    このクエリでは、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!』が使用されています。

  2. 新しいクエリを作成して実行し、IMDb 公開データセットで提供されている映画の評価に関する追加情報を結合します。

    SELECT query.uri AS poster_uri, query.title AS poster_title, query.year AS poster_year, base.title AS imdb_title, base.year AS imdb_year, base.movie_id AS imdb_movie_id, distance, imdb.average_rating, imdb.num_votes FROM VECTOR_SEARCH( TABLE `gemini_demo.imdb_movies_embeddings`, 'ml_generate_embedding_result', TABLE `gemini_demo.movie_posters_results_embeddings`, 'ml_generate_embedding_result', top_k => 1, distance_type => 'COSINE') DATA LEFT JOIN `bigquery-public-data.imdb.title_ratings` imdb ON base.movie_id = imdb.tconst ORDER BY imdb.average_rating DESC

    このクエリは前のクエリに似ています。ベクトル エンベディングという特別な数値表現を使用して、指定された映画ポスターに類似する映画を見つける点は変わりませんが、IMDb 公開データセットの別のテーブルから、最近傍として検出された各映画の平均評価と投票数を結合しています。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 IMDb データセットのサブセットのテキスト エンベディングを生成する

お疲れさまでした

このラボでは、まず BigQuery でポスター画像のオブジェクト テーブルを作成しました。その後、Gemini リモートモデルを作成し、それを使用して画像の分析と映画の要約を Gemini にプロンプトで指示しました。さらに、映画のタイトルのテキスト エンベディングを生成し、このエンベディングを使用して映画のポスター画像を IMDb データセット内の関連する映画タイトルと照合しました。

次のステップと詳細情報

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

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

マニュアルの最終更新日: 2024 年 10 月 4 日

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

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

Before you begin

  1. Labs create a Google Cloud project and resources for a fixed time
  2. Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
  3. On the top left of your screen, click Start lab to begin

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

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

ありがとうございます。

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

One lab at a time

Confirm to end all existing labs and start this one

Use private browsing to run the lab

Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.