Oracleの新製品AutoML UIを使って、クリックで簡単にモデル生成、デプロイ、RESTで呼び出すところまでやってみました。データセットは、Kaggleのオーストラリアの過去10年分の天候データから、次の日に雨が降るかどうかを予測するモデルを作ってみました。
番外編も用意しておりますので、最後までパラパラっと読み進めて下さいね。
今回も一緒に1ステップ1ステップ進めていける構成にしておりますので、是非楽しんで頂けたら嬉しいです!
※OCIアカウントの作り方、ADBの作り方、OMLユーザの作り方等は【OCI未経験でも】OML NotebooksでPythonを書き始めるの記事に記載しております。
##今回の資料で使うデータの出典
Rain in Australia
Predict next-day rain in Australia
By Joe Young
https://www.kaggle.com/jsphyg/weather-dataset-rattle-package/metadata
・weatherAUS.csv(13.44 MB)をデバイスにダウンロード下さい
上記のデータのデータソースhttp://www.bom.gov.au/climate/data
#OCIのAutoML UIでモデルを作る
##OCIにログインする
##ADBの詳細ページで、「ツール」をクリック
##機械学習に必要なデータをロードするため、ツールタブの「データベース・アクション」クリック
##「データのロード」と「ローカル・ファイル」を選択し、「次」をクリック
##weatherAUS.csvがソースにあることを確認し「緑の実行ボタン」をクリック
##実行終了を示す緑のチェックマークを確認後、画面右下の「完了」をクリック
##ADW詳細画面に戻り、「サービス・コンソール」をクリック
##サービスコンソール開発タブ内の、「Oracle Machine Learningノートブック」をクリック
##実験の作成ページで「名前」を入力後、「データ・ソース」をクリック
##表の選択で、「OML」スキーマにロードした「WEATHERAUS」を選択、「OK」をクリック
##WEATHERAUSのデータでは、「RAINTOMORROW」を選択
##予測タイプは、自動で分類か回帰か決定(クリックして手動で選ぶことも可能です)
##画面下の特徴で「チェックボックス」をクリックで各特徴量の有効無効切り替えが可能
##精度進捗やリーダー・ボードが表示され、画面右上で実行進捗状態の確認可能に
##実行が完了し、リーダー・ボードには、精度で上位5つのアルゴリズムが表示されている
#モデルデプロイ
##作成されたモデルの内1つを選択して、「デプロイ」をクリック
##デプロイ後、画面左上のハンバーガメニュの「モデル」をクリック
#デプロイしたモデルをRESTで呼ぶ
RESTで呼ぶ際に必要な6つの環境変数(1つ1つ見つけていきます):
① export omlserver=「ADBのURL」
② export tenant=「テナントのOCID」
③ export username=「OMLユーザのユーザ名」
④ export password=「OMLユーザのパスワード」
⑤ export database=「ADBのデータベース名」
⑥ export token=「認証トークン」
##①環境変数omlserverには、ADBURLを入力 (次のどちらかの方法で見つけて下さい)
###ADBURLの見つけ方 その1 – ADBのサービス・コンソールURLをコピー
###ADBURLの見つけ方 その2 – ウォレットのtnsnames.oraから見つける
ADBURLが見つかりました
RESTで呼ぶ際に必要な6つの環境変数(1つ1つ見つけていきます):
① export omlserver=https://adb.ap-tokyo-1.oraclecloud.com
② export tenant=「テナントのOCID」←次!
③ export username=「OMLユーザのユーザ名」
④ export password=「OMLユーザのパスワード」
⑤ export database=「ADBのデータベース名」
⑥ export token=「認証トークン」
##②環境変数tenant - OCIのトップ画面の右上の人型アイコンから、「テナンシ」をクリック
##②環境変数tenant – テナンシ詳細ページのテナンシ情報にあるOCIDをコピー
環境変数tenantが見つかりました
RESTで呼ぶ際に必要な6つの環境変数(1つ1つ見つけていきます):
① export omlserver=https://adb.ap-tokyo-1.oraclecloud.com/
② export tenant=ocid1.tenancy.oc1..aaaaaaaaggaka7fbakfb22209fafnuahf73bhauillwouccx72faufdd
③ export username=「OMLユーザのユーザ名」←次!
④ export password=「OMLユーザのパスワード」
⑤ export database=「ADBのデータベース名」
⑥ export token=「認証トークン」
##③環境変数usernameには、OMLユーザのユーザ名を入力
RESTで呼ぶ際に必要な6つの環境変数(1つ1つ見つけていきます):
① export omlserver=https://adb.ap-tokyo-1.oraclecloud.com/
② export tenant=ocid1.tenancy.oc1..aaaaaaaaggaka7fbakfb22209fafnuahf73bhauillwouccx72faufdd
③ export username=OML
④ export password=「OMLユーザのパスワード」←次!
⑤ export database=「ADBのデータベース名」
⑥ export token=「認証トークン」
##④環境変数passwordには、OMLユーザのパスワードを入力
RESTで呼ぶ際に必要な6つの環境変数(1つ1つ見つけていきます):
① export omlserver=https://adb.ap-tokyo-1.oraclecloud.com/
② export tenant=ocid1.tenancy.oc1..aaaaaaaaggaka7fbakfb22209fafnuahf73bhauillwouccx72faufdd
③ export username=OML
④ export password=password
⑤ export database=「ADBのデータベース名」←次!
⑥ export token=「認証トークン」
##⑤環境変数database - データベース名をコピー
RESTで呼ぶ際に必要な6つの環境変数(1つ1つ見つけていきます):
① export omlserver=https://adb.ap-tokyo-1.oraclecloud.com/
② export tenant=ocid1.tenancy.oc1..aaaaaaaaggaka7fbakfb22209fafnuahf73bhauillwouccx72faufdd
③ export username=OML
④ export password=password
⑤ export database=ATPoml
⑥ export token=「認証トークン」 ←次!
##⑥環境変数tokenには、①〜⑤を使って手にいれた認証トークンを
RESTで呼ぶ際に必要な6つの環境変数(1つ1つ見つけていきます):
① export omlserver=https://adb.ap-tokyo-1.oraclecloud.com/
② export tenant=ocid1.tenancy.oc1..aaaaaaaaggaka7fbakfb22209fafnuahf73bhauillwouccx72faufdd
③ export username=OML
④ export password=password
⑤ export database=ATPoml
↓上記の環境変数を使って、手に入れる
⑥ export token=「認証トークン」
##⑥環境変数token - ターミナルで①〜⑤の環境変数を追加
export omlserver=https://adb.ap-tokyo-1.oraclecloud.com
export tenant=ocid1.tenancy.oc1...................uca
export username=OML
export password=<password>
export database=ATPoml
##⑥環境変数token - 認証トークンをCURLで手に入れる
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d
'{"grant_type":"password", "username":"'${username}'", "password":"'${password}'"}'
"${omlserver}/omlusers/tenants/${tenant}/databases/${database}/api/oauth2/v1/token"
##⑥環境変数tokenに認証トークンを手に入れました(下準備完了)
① export omlserver=https://adb.ap-tokyo-1.oraclecloud.com/
② export tenant=ocid1.tenancy.oc1..aaaaaaaaggaka7fbakfb22209fafnuahf73bhauillwouccx72faufdd
③ export username=OML
④ export password=password
⑤ export database=ATPoml
⑥ export token=’eJhbGciOi......................EFA==‘
##ターミナルで、環境変数tokenを追加
export token=‘token’
curl -X GET "${omlserver}/omlmod/v1/deployment/aus_1" \
--header "Authorization: Bearer $token" | jq
##デプロイしたaus_1の詳細情報でattributeを見てみる
curl -X POST "${omlserver}/omlmod/v1/deployment/aus_1/score" \
--header "Authorization: Bearer ${token}" \
--header 'Content-Type: application/json‘ \ -d
'{"inputRecords":[{"HUMIDITY3PM":"30","LOCATION":"Albury",
"RAINFALL":"1","WINDGUSTSPEED":"30"}]}'| jq
##明日雨が降るかどうか確率を出してくれている
curl -X POST "${omlserver}/omlmod/v1/deployment/aus_1/score" \
--header "Authorization: Bearer ${token}" \
--header 'Content-Type: application/json‘ \ -d
'{"inputRecords":[{"HUMIDITY3PM":"90","LOCATION":"Albury",
"RAINFALL":"30","WINDGUSTSPEED":"50"}]}'| jq
##今度は、雨が降るであろう予測が返ってくる
#番外編:AutoML UIで作ったモデルをOML Notebooksにエキスポートする
##リーダー・ボードで単純ベイズの「モデル」を選択し、「ノートブックの作成」をクリック
##新規作成する「ノートブックの名前」を入力し、「OK」をクリック
##画面上部で、ノートブックが作成されたことを確認後、左上のハンバーガメニューをクリック
##ノートブックの画面で、先ほど作成した「AUS Weather」をクリック