このページでは、AutoML Tables からオンライン(単一、低レイテンシの)予測を取得する方法について説明します。
はじめに
モデルを作成(トレーニング)した後、モデルをデプロイしてオンライン(リアルタイム)予測をリクエストできます。オンライン予測では 1 行のデータを受け入れ、そのデータのモデルに基づいて予測結果を提供します。ビジネス ロジックフローへの入力として予測が必要な場合は、オンライン予測を使用します。
オンライン予測をリクエストするには、事前にモデルをデプロイする必要があります。デプロイ済みモデルには料金が発生します。オンライン予測の終了後にモデルのデプロイ解除を行うと、追加のデプロイ料金の発生を防ぐことができます。詳細
予測の実行を継続するには、モデルを 6 か月ごとに再トレーニングする必要があります。
オンライン予測の取得
Console
通常は、オンライン予測を使用してビジネス アプリケーション内から予測を取得しますが、Google Cloud コンソールで AutoML Tables を使用すれば、特定の入力セットを用いてデータ形式やモデルをテストできます。
Google Cloud コンソールの [AutoML Tables] ページに移動します。
[モデル] を選択し、使用するモデルを選択します。
[テストと使用] タブを選択し、[オンライン予測] をクリックします。
モデルがまだデプロイされていない場合は、[モデルをデプロイ] をクリックしてデプロイします。
オンライン予測を使用するには、モデルをデプロイする必要があります。モデルのデプロイでは料金が発生します。詳しくは料金のページをご覧ください。
表示されたテキスト ボックスに入力値を指定します。
または、JSON 形式で入力値を指定するには、[JSON コードビュー] を選択します。
各特徴が予測に及ぼす影響を確認するには、[特徴量の重要度を生成] を選択します。
Google Cloud Console では、読みやすくするためにローカル特徴量の重要度の値が切り捨てられます。正確な値が必要な場合は、Cloud AutoML API を使用して予測をリクエストします。
特徴量の重要度については、ローカル特徴量の重要度をご覧ください。
[予測] をクリックして予測を取得します。
予測結果の解釈については、予測結果の解釈をご覧ください。ローカル特徴量の重要度については、ローカル特徴量の重要度をご覧ください。
(省略可)オンライン予測を追加でリクエストする予定がない場合は、[モデルのデプロイ解除] をクリックしてモデルのデプロイを解除すると、追加のデプロイ料金の発生を防ぐことができます。
curl
特徴値を指定して JSON オブジェクトを作成し、一連の値の予測をリクエストします。その後、model.predict
メソッドを使用して予測を取得します。
値には、トレーニングに含めたものと同じ列が含まれている必要があります。また、含まれる列のリンクをクリックして、値の順序を [評価] タブの表示順序と同じになるように変更してください。
値を並べ替える場合は、一連の列スペック ID を値の順に挿入することもできます。列スペック ID はモデル オブジェクトから取得できます。この ID は TablesModelMetadata.inputFeatureColumnSpecs フィールドで確認できます。
Row オブジェクトの各値(特徴)のデータ型は、その特徴の AutoML Tables データ型によって異なります。AutoML Tables の各データ型で使用できるデータ型の一覧については、Row オブジェクトの形式をご覧ください。
モデルをまだデプロイしていない場合は、ここでデプロイします。詳細
予測をリクエストします。
リクエストのデータを使用する前に、次のように置き換えます。
-
endpoint: グローバル ロケーションの場合は
automl.googleapis.com
、EU リージョンの場合はeu-automl.googleapis.com
。 - project-id: Google Cloud プロジェクト ID
- location:リソースのロケーション:グローバルの場合は
us-central1
、EUの場合はeu
。 - model-id:モデルの ID。例:
TBL543
- valueN: 正しい順序で並べ替えた各列の値。
HTTP メソッドと URL:
POST https://endpoint/v1beta1/projects/project-id/locations/location/models/model-id:predict
JSON 本文のリクエスト:
{ "payload": { "row": { "values": [ value1, value2,... ] } } }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を
request.json
という名前のファイルに保存して、次のコマンドを実行します。curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://endpoint/v1beta1/projects/project-id/locations/location/models/model-id:predict"PowerShell
リクエスト本文を
request.json
という名前のファイルに保存して、次のコマンドを実行します。$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://endpoint/v1beta1/projects/project-id/locations/location/models/model-id:predict" | Select-Object -Expand Contentfeature_importance
パラメータを含めます。ローカル特徴量の重要度の詳細については、ローカル特徴量の重要度をご覧ください。-
endpoint: グローバル ロケーションの場合は
結果を表示します。
分類モデルの場合は、次の例のような出力が表示されます。返される 2 つの結果にはそれぞれ、信頼度の推定値(
score
)が付いています。信頼度の推定値は 0~1 で表され、モデルが判断した予測値の正確度を示しています。信頼度の推定値の使用方法の詳細については、予測結果の解釈をご覧ください。{ "payload": [ { "tables": { "score": 0.11210235, "value": "1" } }, { "tables": { "score": 0.8878976, "value": "2" } } ] }
回帰モデルの場合、結果には予測値と予測区間が含まれます。予測区間は、95%の確率で正しい値を含む区間を与えます(モデルがトレーニングされたデータに基づきます)。予測値は区間の中心にならない場合があります。これは、予測区間の中心が中央値であるのに対して、予測値は期待値(平均値)であるためです。
{ "payload": [ { "tables": { "value": 207.18209838867188, "predictionInterval": { "start": 29.712770462036133, "end": 937.42041015625 } } } ] }
ローカル特徴量の重要度の結果については、ローカル特徴量の重要度をご覧ください。
(省略可)オンライン予測のリクエスト終了後にモデルのデプロイ解除を行うと、追加のデプロイ料金の発生を防ぐことができます。詳細
Java
リソースが EU リージョンにある場合は、エンドポイントを明示的に設定する必要があります。詳細
Node.js
リソースが EU リージョンにある場合は、エンドポイントを明示的に設定する必要があります。詳細
Python
AutoML Tables のクライアント ライブラリには、AutoML Tables API を簡単に使用できるようにする追加の Python メソッドが含まれています。これらのメソッドは、ID ではなく名前でデータセットとモデルを参照します。データセット名とモデル名は一意である必要があります。詳細については、クライアント リファレンスをご覧ください。
リソースが EU リージョンにある場合は、エンドポイントを明示的に設定する必要があります。詳細
次のステップ
- 予測結果を解釈する方法を学習する。
- ローカル特徴量の重要度について学習する。