目次
0:概要
1:モデルの構築
2:IBM Cloud object storage(※以降ICOSと省略) に接続
3:SPSSジョブをAPI(Python Code)で実行
4:SPSSジョブを外部からAPIで実行
0:概要
CP4DaaS環境でSPSSモデルを構築しています。
SPSSモデルは@makaishiさんのSPSS Modeler Flowで決定木をつくるを参考にして構築します。
モデルの計算結果は、拡張エクスポートを活用して、IBM Cloud object Storage に出力するようにしています。
プロジェクト上でモデルをジョブ化し、外部からAPIで実行できるようにしています。
1:モデルの構築
@makaishiさんのSPSS Modeler Flowで決定木をつくるを参考にして、モデルの構築をお願いします。
モデル構築が完了すると、以下のような状態になっていると思います。(※拡張エクスポートは除く)
2:IBM Cloud object storage(※以降ICOSと省略) に接続
拡張エクスポートを活用したICOSへの計算結果出力方法を解説します。
2-1:ICOSの立ち上げ
IBM Cloudにログイン頂き、リソースリストからICOSを選択してください。
※ICOSがない場合は新しくリソースの作成をお願いします。
※今回はICOSに出力しますが、必要に応じて出力先を変更してください。
2-2:バケットの作成
すぐに始めるをタップ(※必要に応じてカスタマイズをお願いします。)
バケットネームを任意に設定
そのあとは、デフォルト設定及びファイルアップロードなしで、バケットを構築します
構築が完了すると以下のように、ICOSにバケット(demo1207)を作成できていると思います。
2-3:サービス資格情報の確認
バケットを作成すると、サービス資格情報も同時に作成されます。
サービス資格情報を確認すると、API情報が記載されています。
これらの情報を活用して、プロジェクトにICOSを紐付けます。
2-4:拡張エクスポートにICOSを接続
プロジェクトに戻り、モデルに拡張エクスポートを追加
拡張エクスポートをダブルクリック、"Python for spark"を選択する。
Pythonシンタックスに、Github_Python_for_sparkのスクリプトをコピー&ペーストしてください。
ICOS_バケットのサービス資格情報を”***”に追記してください。
インフォメーション
スクリプト・タイプは、Pythonも選択可能です。
Pythonを選択する場合は、Github_Native_Pythonのスクリプトをコピー&ペーストしてください。
2-5:出力確認
Python_for_Sparkの設定が完了した後、モデルを実行します。
問題なければ、出力が無事実行されました。
ICOSに移動して、出力先のバケット_demo1207を確認すると、先ほど実行したモデルの計算結果が無事出力されていることを確認。
ファイルネームがモデル実行時間になっている。
3:SPSSジョブをAPI(Python Code)で実行
外部からAPIでJOBを実行する方法を説明します。
※誰もが使えるように、サービスIDを作成しAPI_Keyを生成するとこからから説明をします。
個人のAPI_Keyを使用する場合は、3-2からセットアップをお願いします。
3-1:サービスIDの作成と権限の付与
※下記の記事を参考にして、サービスIDの作成と権限付与の実施をお願いします。
IBM Cloud サービスID作成方法
(2023年4月3日追記)
・現在のWatson Studioジョブにおいて、サービスIDの利用はサポートされません。
・Watson Studioジョブは、ジョブ作成ユーザーによる実行が必要です。ジョブ実行には、ジョブ作成ユーザーの個人APIキーをご利用ください。
3-2:SPSSモデルフローのジョブ化
プロジェクトで構築したフローの新規ジョブを選択
名前:任意のジョブネーム
説明:任意の説明
環境定義:任意の環境を選択
記入が完了したら次へを選択
ジョブはターミナルノードを選択
※必要に応じて、ブランチを個別選択してください
選択が完了したら次へを選択
APIで実施するため、スケジュールはOFFにします
※API側で定期事項処理が可能なため、SPSS側では設定を行いません
3-3:API実行環境の構築
GithubからREJ_sample.pyのダウンロードをお願いします。
下記の部分は、***に必要事項を記入してください。
api_key:サービスIDに紐付けしたAPI_key※1 or 個人API_Key
job_name:プロジェクトのジョブ名※2
project_id:プロジェクトID※3
下記の部分は、モデルの処理状況に合わせて変更をお願いします。
※処理が長引く場合は、数値を大きくした方が無難です。
※1:IBM Cloud サービスID作成方法、で作成したサービスIDのAPI_keyを使用してます。
※2:プロジェクト→プロジェクトネーム→ジョブ
外部APIで実行したジョブ名を選択してください。
今回は、先ほど作成した、Taitanic_REJ_2_sampleを使います
※3:プロジェクト→プロジェクトネーム→資産
赤枠のプロジェクトIDを使用してください。
3-5:コラボレーターの追加
プロジェクト→管理→アクセス制御→コラボレーターの追加
先ほど作ったサービスIDを選択
ロール:エディター以上
選択が終わったら、追加
以上で、プロジェクトのJOBを外部からAPIで実行するための環境設定は完了です。
4:SPSSジョブを外部からAPIで実行
必要事項を記入した、REJ_sample.pyを任意のフォルダに格納してください。
※任意のファイルネームに変更して使用してください。
REJ_sample.pyが保存されているディレクトリに移動をして、
Python3 REJ_sample.py
を実行します。
問題がなければ、JOBを実行することができます。
正常に実行が完了すると、Compleatedが表示されます。
計算結果も、問題なくICOS_バケット(demo1207)に出力されています。
CP4DaaS Watson Studio で作成したSPSSジョブをAPI (Python Code)で実行する方法の解説は、以上です。