Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20240606SPSS春05_AIT林様資料

JPSPSS
June 06, 2024

 20240606SPSS春05_AIT林様資料

2024-06-06に開催されたSPSS 春のユーザーイベントのご講演
株式会社AIT  林啓一郎様
「ソフトセンサーによる製品品質の制御とMLOpsによる精度の維持」
のスライド資料(公開版)です

JPSPSS

June 06, 2024
Tweet

More Decks by JPSPSS

Other Decks in Technology

Transcript

  1. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 3 株式会社AIT

    会社概要 本 社 東京都江東区佐賀1-5-6 永代OTビル 1991年9月1日 大熊 克美 IBMビジネスパートナー/ソリューションプロバイダー IBMハードウェア製品の販売・インフラ構築 IBMソフトウェア製品の販売・インフラ構築 クラウド、アナリティクス製品の販売・インフラ構築 オープンシステムのアプリケーション開発 帳票、CRM、セキュリティソリューション 4億円 131.5億円(2023年3月期実績) 設 立 日 代表取締役社長 事 業 内 容 資 本 金 売 上 高 アナリティクス:データ分析支援 / DX人材育成 HW/SW販売・構築・運用支援サービス クウラド(IBM,AWS) / OpenShift / ブロックチェーン 運用監視サービス 電子帳票ソリューション(SVF, FiBridge) https://www.ait.co.jp/
  2. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 4 アナリティクス事業沿革

    / サービス紹介 事例発表 IBMに統合 事例発表 事例発表 2016 1988 2009 2011 2012 2013 2014 2015 取り扱い開始 分析支援サービス / アドバイザリーサービスの開始 トレーニングサービスの開始 無料体験セミナーの開催 毎月開催 事例発表 AITユーザー会開催 事例講演 事例発表 2018 2019 事例発表 全国老人 保健施設協会 2020 事例講演 IBM SPSS IBM SPSS 2021 取り扱い開始 H20 Driverless AI SPSS社 SPSS 販売開始 2017 「AI365」 発表 2022 https://ai365.jp/ データ分析アドバイザリーサービス ビジネス目標につながるデータ活用のご支援 データ活用の検討段階から、お客様の様々な ご相談に対応するコンサルティングサービス SPSSソフトウェア導入支援サービス データ活用の効率化を推進するSPSSソフトウェア導入のご支援 SPSSのクライアントからサーバー製品等の導入をご支援。 SPSSハンズオントレーニングもございます。 2023 2024 AITフォーラム開催
  3. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 6 CADSによるMLOps

    ▪ソフトセンサーとは? ソフトセンサまたはソフトセンサー、バーチャとは、実際には測定できない値を、計算により推測することで、直接その値を測定し ているかのように振る舞うセンサである。 ソフトセンサは制御理論に基づいており、状態オブザーバと呼ばれることもある。測定したい値を推測するため、数十から数百の値 を取ることもある。 よく知られているアルゴリズムとして、カルマンフィルタが存在する。近年では、ニューラルネットワークやファジィ論理も用いら れる。 ソフトセンサの例: • カルマンフィルタによる位置推定 • 電動機の回転数推定 • 自己組織化ニューラルネットワークを用いた プロセスデータの推定 • プロセス制御におけるファジィコンピューティング • 食品の品質の推定器[1] (引用 : WikiPedia ) <https://ja.wikipedia.org/wiki/%E3%82%BD%E3%83%95%E3%83%88%E3%82%BB%E3%83%B3%E3%82%B5> 本セミナーでは CO濃度を推定してみます。
  4. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 7 CADSによるMLOps

    ▪MLOpsとは? MLOps とは、ディープラーニングなどの機械学習のライフサイクルを管理するための、データサイエンティスト、エンジニア、保守 運用担当者のコラボレーションおよびコミュニケーションに関する実践手法。機械学習 Machine Learning (ML) と、ソフトウェア 分野での継続的な開発手法である DevOps とを組み合わせた造語である。 (引用 : https://ja.wikipedia.org/wiki/MLOps) 本セミナーでご紹介する内容においては、MicroSoft社が提唱するMLOpsの定義が分かりやすい思いますので、以下に紹介します。 MLOps は、ワークフローの効率を向上させる DevOps の原則と実践に基づいています。 たとえば、継続的インテグレーション、配 信、デプロイです。 MLOps では、次のことを目標に、これらの原則を機械学習プロセスに適用します。 ① モデルのより迅速な実験と開発 ② 実稼働環境へのモデルのより迅速なデプロイ ③ 品質保証 (引用 : https://ja.wikipedia.org/wiki/MLOps)
  5. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 8 CADSによるMLOps

    ▪SPSS Modeler + CaDSでのMLOps ①.モデルのより迅速な実験と開発 Modeler Client を用いた様々なモデルの開発 ②. 実稼働環境へのモデルのより迅速なデプロイ Modeler Client / CADS DMを用いたCaDSへのデプロイや スコアリング・精度監視ジョブの作成 ③. 品質保証 CaDSの精度監視機能によるモデル監視 CADS Modeler
  6. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 10 CaDSの精度監視機能

    ▪CaDSジョブで実装する精度監視 CaDSのジョブ機能にあるモデル管理を利用することで、モデルの精度監視等が行えます。 例では、モデル精度がGood以下の場合に劣化検知の処理が実行されるようにジョブを設定しています。 ①.モデル精度で管理ができる。 例) 正解率 0~90% Bad 90~96% Good 97~100% Better ※.閾値は任意で指定 ※.基本機能ではカテゴリ予測モデルのみ対応 モデルの精度で条件を指定して次のステップを定 義できる。 色 評価 判定式 緑 Better completion_code == 300 黄 Good completion_code == 200 赤 Bad completion_code == 100 現時点では カテゴリ予測 モデル評価 のみ対応
  7. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 12 Modeler/CaDSのよるMLOpsデモ

    ▪シナリオ 本セミナーでは、基本機能では対応していない、数値を予測するモデルにおけるMLOpsのデモを実施します。 シナリオを以下の通りとなります。 ① モデルの開発 ・Modeler ClientによるCO濃度予測モデルの作成 ② 実稼働環境へのデプロイ ・CaDSへデプロイし、CO濃度算出ジョブの実装 ③ 精度監視(モニタリング) ・CaDS精度監視ジョブによるモニタリングの実装及び劣化検知 ④ モデルの更新 ・Modeler Client /CaDSモデル更新ジョブでCO濃度予測モデルを更新 ⑤ 精度監視(モニタリング) ・CaDS精度監視ジョブによるモニタリング 1. モデルのより迅速な実験と開発 2. 実稼働環境へのモデルのより迅速なデプロイ 3. 品質保証
  8. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 13 Modeler/CaDSによる

    MLOpsデモ 1. CO濃度予測モデル開発 3-1 ① モデルの開発 ② 実稼働環境へのデプロイ ③ 精度監視(モニタリング) ④ モデルの更新 ⑤ 精度監視(モニタリング)
  9. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 14 Modeler/CaDSのよるMLOpsデモ

    ▪モデル開発 – CO濃度予測モデル • Air Qualityデータを用いて、CO濃度の予測をする。 プラント内部や製造現場の空気状態の予測・保持を目的に特定の成分の状態を予測するモデルを作成してみます。 今回利用するデータは、UC Irvine Machine Learning Repository <https://archive.ics.uci.edu/dataset/360/air+quality> を加工して利用しています。 数値予測 モデル!
  10. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 15 Modeler/CaDSによる

    MLOpsデモ 2. スコアリングジョブの実装 3-2 ① モデルの開発 ② 実稼働環境へのデプロイ ③ 精度監視(モニタリング) ④ モデルの更新 ⑤ 精度監視(モニタリング)
  11. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 16 Modeler/CaDSのよるMLOpsデモ

    ▪スコアリング① – CO濃度予測 • CaDSに展開 Modeler ClientからCaDSへストリームを展開します。スコアリング用のノードも配置し、必要なストリーム設定を実施します。 展開タイプはスコアリング・モデル更新両方に対応するようにモデル更新にしています。 ①.スコアリング時に実行するノードを指定 ②.モデル更新時に実行するノードを指定 ③.スコアリングに使用するモデルを指定 ④.CaDSへストリームをアップロード 1 2 3 4 CaDSで利用 するための設定
  12. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 17 Modeler/CaDSのよるMLOpsデモ

    ▪スコアリング② – CO濃度予測 • 展開したストリームをCaDSでジョブ定義 アップロードしたストリームを使用してスコアリング用にジョブを作成します。 1 2 3 ①.ジョブには、先ほど作成したストリームのみ配置 ②.ジョブで使用するストリームは、Productionのラベルを付与した リリースバージョンを使用して、スコア設定をする。 ③.スコアリング用データはジョブ実行時に変更できるように、ジョブ 変数として定義。 スコアリング ジョブの設定
  13. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 18 Modeler/CaDSのよるMLOpsデモ

    ▪スコアリング③ – CO濃度予測 • ジョブ実行して、結果を取得する。 ジョブを実行すると予測結果がCO濃度予測結果.csvへ出力されます。 1 2 ①.オプションありでジョブを実行 ②.ジョブの実行履歴を確認 ③.出力結果で予測値を確認 3 CaDSによる ジョブ実行
  14. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 19 Modeler/CaDSによる

    MLOpsデモ 3. 精度監視ジョブ作成 3-3 ① モデルの開発 ② 実稼働環境へのデプロイ ③ 精度監視(モニタリング) ④ モデルの更新 ⑤ 精度監視(モニタリング)
  15. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 20 Modeler/CaDSのよるMLOpsデモ

    ▪モニタリング① – CO濃度モデルの劣化検知 • モニタリング用ストリームの作成 数値を予測するストリームは、CaDSの劣化検知機能をそのままでは利用できないため少し工夫が必要です。CO濃度予測ストリー ムに、以下のような実装を追加しています。 ①. モデルの精度を評価する指標を決定する。 カテゴリ値を予測するモデルと異なり、正解率などの指標はないため何か精度を評価する指標が必要です。 今回は実測値と予測値の誤差(絶対値)平均を評価指標とします。絶対平均パーセント誤差などでも可。 ②. 劣化判定基準の設定 劣化判定基準として評価指標が任意の閾値より大きく(小さく)なった場合、精度が劣化したと判定することとします。 閾値はストリームパラメータとして設定し、CaDSでジョブを実行する際に変更できるようにします。 今回は閾値より大きい場合に劣化とします。 ③. ストリームでの実装 モニタリングデータを入力として、モデルを実行し評価指標を算出します。劣化している場合は、ストリームの実行戻り値を 0以外に設定します。 今回は、精度が劣化していない場合は戻り値0、劣化している場合は戻り値100とします。 ※.CaDSのジョブでは、戻り値が0以外の場合、ストリームの実行が失敗したと判定されます。これを利用します。 ④. スクリプトを実装して、戻り値を操作 ①~③のアイデアをストリームのスクリプトを使って実現します。 数値予測モデルの モニタリングでは 工夫が必要!!
  16. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 21 Modeler/CaDSのよるMLOpsデモ

    ▪モニタリング② – CO濃度モデルの劣化検知 • ストリーム設定例 ①.スクリプトをPythonで記述し、ストリーム実行時にスクリプ トが実行されるように設定 ②. 閾値をストリームパラメータに設定(値は0.3としている) 1 2 スクリプトが利用できると 活用の幅が広がる!!
  17. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 22 Modeler/CaDSのよるMLOpsデモ

    ▪モニタリング③ – CO濃度モデルの劣化検知 • スクリプト例 #+-------------------------------------------------------+ #| 初期処理 #| クラスインポート及びオブジェクト生成 #+-------------------------------------------------------+ import modeler.api # Modeler API stream = modeler.script.stream() # ストリームオブジェクト session = modeler.script.session() # セッションオブジェクト nodeExecutionResults = [] # 実行結果オブジェクト #+-------------------------------------------------------+ #| 処理開始 #+-------------------------------------------------------+ # エラーハンドリング処理 try: # 実行ノードのオブジェクト取得 metricdata = stream.findByType("table", "Metrics") # ノードの実行 metricdata.run(nodeExecutionResults) # 結果オブジェクトを取得 res_metrics = nodeExecutionResults[0] # 結果のレコードセットを取得 rowset_metrics = res_metrics.getRowSet() # 絶対平均誤差の取得 val_metrics = rowset_metrics.getValueAt(0, 0) # 閾値をパラメータから取得 th_metrics = stream.getParameterValue('threshold') print th_metrics print val_metrics # 閾値を基に劣化を判断 if val_metrics <= th_metrics : print "劣化なし" modeler.script.exit(0) #正常 else: print "劣化あり" modeler.script.exit(100) #劣化 #----------------------------------------------- # エラー処理 #----------------------------------------------- # Modelerエラー処理 except modeler.api.ModelerException, e: print "An error occurred:", e.getMessage() スクリプトサンプル。 参考にして!!
  18. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 23 Modeler/CaDSのよるMLOpsデモ

    ▪モニタリング④ – CO濃度モデルの劣化検知 • 劣化検知用ジョブをCaDS定義 アップロードしたストリームを使用して劣化検知用(モニタリング用)にジョブを作成します。 ①.ジョブには、スコアリング用のストリームと通知用のイベントを配 置。ストリームが失敗した場合に後続イベントが実行される。 ②.ジョブで使用するストリームは、Productionのラベルのついたリ リースバージョンを使用して、ストリーム実行設定をする。 ③.モニタリング用データはジョブ実行時に変更できるように、ジョブ 変数として定義。また、ストリームパラメータも確認できる。 1 2 3 モニタリング ジョブの設定
  19. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 24 Modeler/CaDSのよるMLOpsデモ

    ▪モニタリング⑤ – CO濃度モデルの劣化検知 • ジョブ実行して、結果を確認する。 ジョブを実行すると判定結果がが出力されます。 1 ①.オプションありでジョブを実行 ②.ジョブの実行履歴を確認 今回はストリームが実行失敗(戻り値100)と判定さ れるため、ジョブは失敗となる。 ③.ログでイベント実行を 確認 イベントにはメール送信 なども設定可能。 3 2
  20. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 25 Modeler/CaDSによる

    MLOpsデモ 4. 学習データを入替えモデル更新 3-4 ① モデルの開発 ② 実稼働環境へのデプロイ ③ 精度監視(モニタリング) ④ モデルの更新 ⑤ 精度監視(モニタリング)
  21. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 26 Modeler/CaDSのよるMLOpsデモ

    ▪モデル更新 – Modeler Client編 • モデルをクライアントで更新 ①. 再学習用データでモデルを更新 ②. 劣化検知用データで平均誤差が改善している ことを確認。 ③. Productionとしてリポジトリに保存 1 2 3
  22. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 27 Modeler/CaDSのよるMLOpsデモ

    ▪モデル更新 – CaDSジョブ編① • モデル更新用ジョブをCaDS定義 CaDSのジョブでストリームを更新してみます。そのためにはモデル更新用にジョブを作成します。 ①.ジョブには、ストリームのみ配置 ②.ジョブで使用するストリームは、Productionのラベルのついたリ リースバージョンを使用して、更新設定をする。モデルはスコアリ ング用ナゲットも併せて更新するように設定 ③.更新用データはジョブ実行時に変更できるように、ジョブ 変数として定義。再学習用データを使用します。 1 2 3 モデル更新 ジョブの設定
  23. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 28 Modeler/CaDSのよるMLOpsデモ

    ▪モデル更新 – CaDSジョブ編② • ジョブ実行して、ストリームを更新する。 ジョブを実行すると予測結果がCO濃度予測結果.csvへ出力されます。 1 ①.オプションありでジョブを実行 ②.ジョブの実行履歴を確認 ③.ログでモデルの更新及びストリームの更新を確認 ④.ストリームのバージョンを確認 3 2 4 ,
  24. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 29 Modeler/CaDSによる

    MLOpsデモ 5. 精度監視(再モニタリング) 3-5 ① モデルの開発 ② 実稼働環境へのデプロイ ③ 精度監視(モニタリング) ④ モデルの更新 ⑤ 精度監視(モニタリング)
  25. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 30 Modeler/CaDSのよるMLOpsデモ

    ▪モニタリング(再)① – CO濃度モデルの精度確認 • 劣化検知用ジョブをCaDS定義 劣化検知用(モニタリング用)ジョブを再実行します。 ①.ジョブは同じモニタリング用を使用。 ②.ジョブで使用するストリームは、ProductionのラベルをLatestに 付与して、ジョブを更新。リリースバージョンを使用して、スト リーム実行設定をする。 1 2
  26. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 31 Modeler/CaDSのよるMLOpsデモ

    ▪モニタリング(再)② – CO濃度モデルの精度確認 • ジョブ実行して、結果を確認する。 ジョブを実行すると判定結果がが出力されます。 1 ①.オプションありでジョブを実行 ②.ジョブの実行履歴を確認 今回はストリームが実行成功(戻り値0)と判定さ れるため、ジョブも成功となる。 ③.ログを確認 .tabファイルにテーブル ノードの内容が出力され る 今回はジョブ成功。 2 3 モデル更新後の モニタリング!
  27. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 33 弊社AITでは以下のSPSS関連セミナーを企画しております。

    ・SPSS Modelerで大規模データを分析したい! ・DX人材に求められる真のスキル ・IBM SPSS Modeler無料体験セミナー 参考:セミナーのご案内 お申込み・内容確認はこちらから!! https://www.ait-solution.jp/event/
  28. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 34 ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したもので

    す。それらは情報提供の目的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したもので はなく、またそのような結果を生むものでもありません。本講演資料に含まれている情報については、完全性と正確性を期するよう 努力しましたが、「現状のまま」提供され、明示または暗示にかかわらずいかなる保証も伴わないものとします。本講演資料または その他の資料の使用によって、あるいはその他の関連によって、いかなる損害が生じた場合も、IBMは責任を負わないものとします。 本講演資料に含まれている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかなる保証または表明を引きだすことを意 図したものでも、IBMソフトウェアの使用を規定する適用ライセンス契約の条項を変更することを意図したものでもなく、またそのよ うな結果を生むものでもありません。 本講演資料でIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能 であることを暗示するものではありません。本講演資料で言及している製品リリース日付や製品機能は、市場機会またはその他の要 因に基づいてIBM独自の決定権をもっていつでも変更できるものとし、いかなる方法においても将来の製品または機能が使用可能にな ると確約することを意図したものではありません。本講演資料に含まれている内容は、参加者が開始する活動によって特定の販売、 売上高の向上、またはその他の結果が生じると述べる、または暗示することを意図したものでも、またそのような結果を生むもので もありません。 パフォーマンスは、管理された環境において標準的なIBMベンチマークを使用した測定と予測に基づいています。 ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラミングの量、 入出力構成、ストレージ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがっ て、個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではありません。 記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実 例として示されたものです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。