66
48

More than 1 year has passed since last update.

はじめに

Vertex AIはGoogle Cloudの機械学習関連のサービスを統合したプラットフォームです。
以下のようなワークフローをカバーしており、機械学習全体のプロセスを効率的に行なうことができます。

ワークフロー 説明
1.データの収集  機械学習に必要なデータを収集します
2.データの前処理 収集したデータに欠損、ノイズ、エラー値がある場合、適切な値で埋めたり、好ましくないデータ値を除いたりして機械学習アルゴリズムが学習しやすいようなデータにします
3.機械学習モデルの作成 教師あり学習(回帰、分類)、教師なし学習(クラスタリング、次元削減)など用途にあった機械学習モデルを作成します
4.機械学習モデルの学習 前処理済のデータを機械学習モデルに入力し学習を行います
5.学習結果の評価 機械学習の結果が望ましい状態になっているかをさまざまな指標にもとづいて評価します
6.機械学習モデルのデプロイ 学習が完了した機械学習モデルを実際に使えるように予測を行うためのサーバへデプロイします
7.予測 予測を行うためのサーバにデータを与えて予測結果を取得します

実際に使ってみる

VertexAIのチュートリアルで使用されているデータを利用して表形式のデータの機械学習を行います。
使用するのは、銀行のマーケティングデータです。
銀行の顧客が年齢、収入、職業などから定期預金を購入するかどうか予測するのが機械学習モデルの目的です。
今回の場合にはプログラミングを行うことなく全てのワークフローを実施することができます。

*)「4.機械学習モデルの学習」を実行すると1時間以上計算にかかります。数千円ほど課金されますのでご注意ください😭

0.準備

まずGCPのナビゲーションメニューから「Vertex AI」の「ダッシュボード」を選択します。
vertex_ai_p0.png
Vertex AIのダッシュボード画面に遷移します。
vertex_ai_p1.png

1.データの収集

ダッシュボードの「トレーニングデータを準備する」の「データセットを作成」をクリックします。
vertex_ai_p2.png
データセット画面に遷移します。
vertex_ai_p3.png
「データセット名」に任意のデータセット名を入力します。ここでは「tabular_dataset」としました。
vertex_ai_p4.png
「データタイプと目標の選択」部分には「画像」、「表形式」、「テキスト」、「動画」と表示されています。表形式のデータを扱いますので「表形式」を選択します。
vertex_ai_p5.png
表形式での目標の選択に遷移します。「回帰/分類」にチェックを入れて「作成」をクリックします。
vertex_ai_p6.png
ソース画面に遷移します。
vertex_ai_p7.png
「データソースを選択」部分で「CloudStorageからCSVファイルを選択」にチェックを入れます。
vertex_ai_p8.png
CloudStorageからCSVファイルを選択するための「インポート ファイルのパス」の入力欄に次のように入力します。
cloud-ml-tables-data/bank-marketing.csv

vertex_ai_p9.png

「続行」をクリックします。分析画面に遷移します。
vertex_ai_p10.png

2.データの前処理

今回のデータでは全てのデータが正しいフォーマットになっているため、前処理を行う必要はありません。

3.機械学習モデルの作成、4.機械学習モデルの学習

分析画面で「新しいモデルをトレーニングする」を選択します。「Train new model」画面に遷移します。
「1.トレーニング方法」で次のように設定して「続行」をクリックします。
「Objective」欄で「Classification」を選択
「AutoML」または「カスタム トレーニング(上級者向け)」で「AutoML」を選択
vertex_ai_p11.png
「2.モデルの詳細」で次のように設定して「続行」をクリックします。
「Model name」に任意の文字列を指定します。今回は"tabular_model"としました。
「Target column」には今回使用する銀行のデータセットに含まれている「Deposit」カラムを選択します。「Deposit」カラムは銀行の顧客が定期預金の契約をしたかどうかを示していて、「2:はい」、「1:いいえ」となっています。この値を予測するためにモデルをトレーニング(学習)します。
vertex_ai_p12.png
「3.トレーニング オプション」で「続行」をクリックします。
(「トレーニング オプション」では各カラムの変換方法を指定するなど行えます。今回は指定せずに利用します。)
vertex_ai_p13.png
「コンピューティングと料金」では「Budget」に1を入力して「トレーニングを開始」をクリックします。
vertex_ai_p14.png
分析画面に遷移し、モデルがトレーニング中になります。トレーニングには1時間以上かかります。
トレーニングが完了するとメールが届きます。
vertex_ai_p15.png

5.学習結果の評価

トレーニングが完了したら、ナビゲーションメニューから「モデル」を選択します。
vertex_ai_p16.png
「名前」に表示されているトレーニング済みのモデル名"tabular_model"をクリックします。評価ページに遷移します。
評価内容の詳細は各指標の「?」アイコンから確認できます。
vertex_ai_p17.png
Feature Importanceは、各データがモデルのトレーニングにどのように影響したかを示します。値が高いほど、影響が大きくなります。
vertex_ai_p18.png

6.機械学習モデルのデプロイ 〜 7.予測

モデルをテストしたり、オンライン予測を行ったりするために実際の運用環境に配置(デプロイ)します。「デプロイとテスト」をクリックします。
vertex_ai_p19.png
「エンドポイントへのデプロイ」ボタンをクリックします。「エンドポイントへのデプロイ」画面が表示されます。
vertex_ai_p20.png
「エンドポイントの定義」で「エンドポイント名」を入力します。今回は"tabular_endpoint"と入力して「続行」をクリックします。
vertex_ai_p21.png
「モデル設定」画面が表示されます。「高度なスケーリングオプション」の「マシンタイプ」を"n1-standard-2, 2 vCPUs, 7.5GiB memory"に設定して「完了」を選択します。次に画面左側の「デプロイ」をクリックします。
vertex_ai_p23.png
モデルのデプロイには約5分以上かかります。

モデルがエンドポイントにデプロイされたら、予測リクエストを送信できます。
vertex_ai_p24.png
「モデルのテスト」部分に事前に入力された[値]列が表示されていますので、これらの値を使用します。「予測」をクリックします。
(モデルのテスト部分の値を別の値に設定して「予測」することもできます)
以下のように「モデルのテスト」右側の「予測のラベル」に予測結果が表示されます。この例では予測結果の「選択済みのラベル」は、"1"で「銀行の顧客が定期預金の契約をしなかった」と予測したことになります。
vertex_ai_p25.png

後片付け

課金が発生するため以下のように後片付けをします。
まずデプロイされたモデルを削除します。
「デプロイとテスト」タブを選択して画面右側の縦に3点のアイコンを選択し、「モデルのデプロイ解除」を選択します。
vertex_ai_p26.png
モデルのデプロイ解除画面が表示されるので「確認」をクリックします。
vertex_ai_p27.png
モデルがデプロイ解除されたことを確認します。
vertex_ai_p28.png
次にエンドポイントを削除します。画面左側のナビゲーションメニューで「エンドポイント」をクリックします。エンドポイント画面に遷移します。
vertex_ai_p29.png
エンドポイントの名前に表示された"tabular_endpoint"の左側のチェックボックスにチェックを入れ、「削除」をクリックします。
vertex_ai_p30.png
「エンドポイントの削除」画面が表示されます。「確認」をクリックします。
vertex_ai_p31.png
エンドポイントが削除されたことを確認します。
vertex_ai_p32.png

次回のお知らせ

明日は、@thomi40さんによる「gem BrakemanでRails製アプリケーションの脆弱性を検知する」です。
引き続き、GMOアドマーケティング Advent Calendar 2021をお楽しみください!

参考

Vertex AIのチュートリアル
(Vertex AIのダッシュボードの「チュートリアルを見る」から参照できます)
Train an AutoML tabular model
Evaluate and deploy an AutoML tabular model

66
48
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
66
48