Machine Learning Operations (MLOps) ウォークスルー

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
DataRobot コミュニティ

Machine Learning Operations (MLOps) ウォークスルー

本記事はDataRobot version 6.2をベースに作成されております。versionによっては画面の構成が多少変わります。

概要

DataRobot Machine Learning Operations (ML Ops)を使用すると、本番での機械学習モデルのデプロイ、監視、管理を行うための中央ハブが得られ、データサイエンスチームへの投資を最大化し、リスクとコンプライアンス(規制)を管理することができます。

ユースケース

この記事では、典型的なライフサイクルを通してDataRobot MLOpsを使用するためのにステップに分けて紹介します。まず、デプロイされたモデルを監視・管理するためにMLOpsを利用する際に、主に利用されるメインページの紹介から始めます。次にモデルとデータをMLOpsに取り込むためのステップを紹介します。

まず、モデルをモデルパッケージとして MLOps のモデルレジストリにアップロードします。次に、モデルパッケージからデプロイを作成する方法を確認します。 次に、データ・ドリフトを使用して、すべてのモデル特徴量の時間的変化について予測データを監視する方法を示します。これには、精度を追跡できるように実績実際の結果をアップロードするステップが含まれています。 そこから、パフォーマンスが低下した場合にモデルを置き換える方法を示します。最後に、MLOpsガバナンスを使用したモデル開発および実装ワークフローのためのプロセス制御フレームワークの活用について説明します。

モデルデプロイ、モデル管理、ガバナンス

Step 1: デプロイダッシュボードとデプロイの詳細ページ

デプロイ ダッシュボードは、MLOps ユーザーインターフェースにアクセスしたときに最初に表示されるページです。これはすべてのデプロイのインベントリを表示します。

 

図1. デプロイダッシュボード図1. デプロイダッシュボードデプロイ によって、スコアリングや推論のリクエストに利用できます。デプロイはモデルとは別のエンティティです。デプロイを通じてモデルにアクセスするため、予測データからモデルにアクセスする方法を中断することなく、モデルを新しいモデルバージョンに置き換えることができます。これにより、MLOpsは元となるモデルのバージョンを個別に監視し、デプロイのモデルの履歴を追跡することもできます。

デプロイのダッシュボードにおいて、インベントリの上部に、すべてのアクティブなデプロイの使用状況とステータスの要約が色分けされた状態の指標とともに表示されます。

図2. サマリーダッシュボード図2. サマリーダッシュボードサマリーの下には、各配置の個別レポートが表示されます。配置の名前の横には、3 つの主なコアモニタリングの項目における各デプロイの相対的な状態が表示されます。サービスの正常性、データ ドリフト、精度です。さらに、表示される列を切り替えて、ガバナンスの観点に関連する情報を持つ配置を表示したり、予測の正常性の情報を表示したりすることができます。これらの表示はレンズと呼んでいます。

図3. 予測状態のレンズ図3. 予測状態のレンズ図4. ガバナンスのレンズ図4. ガバナンスのレンズ

予測活動のトラフィックに関するいくつかのメトリクスと、モデルを管理するために利用可能なオプションのメニューが表示されます。

詳細な情報をすべて見るためには参照したいデプロイを選択し、概要ページから移動し、デプロイの監視と管理のための機能を提供するいくつかのデプロイの詳細ページの最初のページです。

図5. デプロイ概要ページ図5. デプロイ概要ページ

デプロイの概要 ページは、 デプロイを作成する際に提供した情報やモデルの置き換え作業など、配置を説明するモデル固有のサマリーを提供します。

  • サマリー デプロイが追加されたときにユーザーが入力した名前と説明が表示されます。
  • コンテンツ  指定されたターゲットを含むデプロイ固有の詳細と、モデルの作成に使用されたデータセットがある場合はそのデータセット、カスタムモデルに関する情報など、デプロイの種類によって異なるモデル情報を提供します。
  • そして ガバナンス  モデル管理の承認プロセスを実装する方法を提供します。これには、モデルの作成日とデプロイ日、モデルが置き換えられたときのログが含まれます。

サービス正常性タブ、予測要求に迅速かつ確実に対応するデプロイの能力に関するメトリクスを追跡します。これにより、速度と応答時間に影響を与えるボトルネックを特定するのに役立ちます。また、スループットとキャパシティの評価にも役立ちます。これは、良好なパフォーマンスとレイテンシーレベルをサポートするために適切なリソースプロビジョニングを行うために重要です。


図6. サービス正常性のページ図6. サービス正常性のページ

次はデータドリフトページです。トレーニングデータ(aka “learning data”) とデプロイに加えられる予測データ (aka “inference data”) を活用することで、MLOpsはデータドリフトを評価することができ、予測のための入力データがモデルの訓練に使用されたデータとどのように異なっていたかを計算します。


図7. データドリフトページ図7. データドリフトページ

精度ページはモデルの予測がどれだけ正確かを示しています。モデルが行う予測から実際に発生した結果をキャプチャすることは、すぐに明らかになる場合もあれば、数日、数週間、または数ヶ月かかる場合もあります。いずれにしても、予測を取得してアップロードすると、MLOpsは実際の結果を作成した予測と関連づけ、計算された精度をレビューと分析のために提示します。

図8. 精度のページ図8. 精度のページ

インテグレーション、 新しいデータをスコアするためにDataRobotへのAPIコールを行うために必要なコードの必要な行のPython言語のコードサンプルを提供しています。多くの場合、これをコピーしてソフトウェアプログラムに貼り付けるだけで、数分でDataRobotのAPIに統合され、実行可能になります。


図9. インテグレーションのページ図9. インテグレーションのページ

最後に設定は、 デプロイと基礎となるモデルに関連するデータセットをアップロードして設定するためのインターフェイスを提供します。これにより、デプロイにデータを追加したり、アラートでデプロイを監視するための通知設定を設定したり、予測警告を有効にしたりすることができます。


図10. 設定のページ図10. 設定のページ


Step 2: モデルパッケージとモデルレジストリの理解

デプロイの作成は、モデルパッケージを作成し、モデルレジストリにアップロードすることから始まります。

モデルレジストリは、すべてのモデルパッケージの中央ハブであり、パッケージには、ファイル、ファイルのセット、モデルに関する情報が含まれています。DataRobot MLOpsは、以下のように柔軟に対応できます。

  • DataRobot AutoMLまたはDataRobot AutoTS内に構築されたモデル
  • DataRobotの外部で構築され、MLOpsにアップローされたカスタマーの独自モデル
  • DataRobotの外部で構築・運用されているモデルで、MLOpsを使用して監視しています。

この3つのケースではモデルパッケージを作成し、そのパッケージがモデルレジストリに登録されると、そこからデプロイメントを作成することができます。

図11. モデル登録図11. モデル登録

モデルレジストリを使用すると、デプロイしたモデルの種類に関係なく、一貫したデプロイ、置換、および管理の経験を得ることができます。構築されたモデルがDataRobot AutoMLまたはAutoTSである場合、リーダーボードからデプロイが作成されると、モデルパッケージは自動的にモデルレジストリのパッケージリストに追加されますが、そうでない場合、パッケージは手動でパッケージリストに追加されます。

モデルパッケージの作成は簡単なプロセスです。以下の手順では、3 つのモデルタイプのそれぞれについて、モデルパッケージの作成と配置について説明します。

主な違いは、DataRobotモデルやカスタムモデルは、予測要求を受け取ってAPIコールを介してMLOps内で処理するのに対し、外部モデルは外部環境で予測値を処理し、その予測値をMLOpsに戻している点です。MLOpsエージェントとは、お客様の環境からMLOps環境に戻って通信するためにインストールするソフトウェアで、MLOpsに転送された予測値を追跡します。このため、統合ページに表示されるコード サンプルは、Agentソフトウェアと DataRobot またはカスタム モデルでは異なります。しかし、3つのケースすべてにおいて、モデルパッケージからデプロイをソースし、MLOpsを利用してモデルが行うデータのドリフトと予測を監視し、モデルを同じように管理します。

DataRobotモデルのモデルパッケージを作成する

図12. DataRobot AutoMLでビルドされたモデルパッケージ例図12. DataRobot AutoMLでビルドされたモデルパッケージ例

 

DataRobot内に構築されたモデルについては、リーダーボードに移動し、デプロイしたいモデルをクリックします。次のタブをクリックします、予測 > デプロイ。 以下の3つの展開オプションがあります。

  • MLOpsにアップロードするパッケージを作成します。モデルパッケージはモデルの移植性を提供し、別のMLOps環境にアップロードできるようにします。
  • AutoML 環境内に配置します。これは、AutoMLまたはAutoTSインスタンスに接続されたローカルMLOpsにワンクリックでモデルをデプロイし、予測要求を受信するためにすぐに利用できるようにします。
  • モデルレジストリに自動的に投稿されるパッケージを生成し、そこから手動でデプロイします。

この3つのケースでは、モデル・レジストリにモデル・パッケージが作成されます。

図13. リーダーボードからデプロイの作成図13. リーダーボードからデプロイの作成

オプション1を使用してモデルパッケージを作成した場合、モデルパッケージファイルをファイルシステムに保存した後、モデルレジストリからアップロード先のMLOps環境にアップロードします。

図14. ファイルからの新しいモデルパッケージの追加図14. ファイルからの新しいモデルパッケージの追加

カスタムモデルのためのモデルパッケージ作成

図15. カスタムモデルのモデルパッケージ例図15. カスタムモデルのモデルパッケージ例

MLOpsでは、あらかじめ訓練されたモデルをDataRobotやMLOps環境に持ち込むことができます。これらのモデルはカスタム予測モデルと呼ばれます。ここでの推論は、サービスの予測要求に対してモデルが実装されていることを意味します。カスタム推論モデルをアップロードすることで、実行環境や実行に必要なライブラリのバージョンを指定し、予測要求を受け付ける準備ができているかどうかをテストすることができます。テストに合格したら、デプロイするか、モデルレジストリにパッケージを追加してください(そこからさらに編集を行い、準備ができたらデプロイします)。DataRobotは、Python、Scala、Javaなど様々なコーディング言語で構築されたカスタムモデルをサポートしています。

カスタムモデルの使用は、このドキュメントの範囲を超えています。DataRobotのライセンスをお持ちのお客様は、アプリ内のプラットフォーム ドキュメントの「カスタム モデル ワークショップ」のセクションに詳細な情報があります。

図16. カスタムモデルワークショップ図16. カスタムモデルワークショップ

外部モデル用のモデルパッケージを作成する

MLOpsエージェントを使用すると、外部モデル、つまりDataRobot MLOpsの外部で実行されているモデルを監視および管理することができます。この機能を使用すると、これらのモデルからの予測や情報をDataRobot MLOpsデプロイメントの一部としてレポートすることができます。同じモデル管理ツールを使用して、モデルが実行されている場所に関係なく、精度、データドリフト、予測分布、レイテンシーなどを監視することができます。

MLOpsエージェントが監視する外部モデルのモデルパッケージを作成するために、モデル登録 > モデルパッケージ をクリックしてください。そして、新しいパッケージと 新しい外部モデルパッケージに移動してください。


図17. 外部モデルパッケージの追加図17. 外部モデルパッケージの追加

結果のダイアログボックスで、統計情報を取得するMLOPsエージェント監視モデルに関連するフィールドを入力します。(エージェント・ソフトウェアは、モデルとMLOps外部モデル展開との間のブリッジとして機能するために、お使いの環境にインストールされている必要があります。エージェントを設定するための完全な情報は、他の記事や MLOps エージェントの tarball に含まれているドキュメントで提供されています。必要に応じてMLOpsのagentファイルの情報のインテグレーションタブやブラウザ内のアプリプラットフォームのDocをご覧ください

図18. 新しいモデルパッケージの追加における入力値図18. 新しいモデルパッケージの追加における入力値

Step 4: Creating a Deployment

モデルパッケージがモデルレジストリにある場合は、モデルパッケージの右端にあるメニューに移動し、デプロイを選択するだけです。

図19. モデル登録のモデルパッケージからのデプロイ図19. モデル登録のモデルパッケージからのデプロイ

次のページでは、予測とモデルの精度を追跡するために必要な残りの情報を入力します。

図20. 新しいデプロイのページ図20. 新しいデプロイのページ

 

モデルセクションに表示される情報(名前やターゲットなど)は、モデルパッケージファイルの内容からすでに提供されています。

同様に、学習セクションでは、モデルを訓練するために使用されたデータもすでに知られていることがわかります。DataRobotは、AutoMLまたはAutoTSプロジェクトを作成したときの情報を保存しています。

推論 セクションでは予測値の取得に関する情報が記載されており、まだ部分的にしか完成していないことがわかります。DataRobotはAPIコールを介して受信した予測データを、提供されたURLエンドポイントに保存します。 DataRobotインスタンスがマネージドAIクラウドでホストされている場合、サブドメイン名はアカウントから派生し、オンプレミスでインストールされている場合、エンドポイントはドメインでホストされます。

予測値をキャプチャすることで、DataRobotは、入力される予測データの性質がトレーニングデータとどのように異なるかを評価することができます。 その違いを捉えるために、 データドリフトの有効化をクリックします。セグメント分析を実行するボタンにチェックを入れると、DataRobotはリクエストを行ったユーザーの権限レベルやリクエスト元のIPアドレスなど、受信データの特徴を特定することができます。

図21. データドリフトの有効化図21. データドリフトの有効化

しかし、予測精度を追跡したいのであれば、モデルが行う予測を実際の結果と関連付けする必要があります。一般的に、実際の結果は数日後、数週間後、数ヶ月後までわかりません。これらは単に実績としています。ここで、予測値を実際の値と関連付けるための識別子が必要になります。関連付けID は各予測を一意に識別し、リクエストデータの行に追加される追加の列に表示されます。実際のデータセットをアップロードするときには、関連付けIDと実際に起こったことの実際の値を提供します。

図22. 関連付けID図22. 関連付けID

 

実績の出力の最後のセクションに移ります。 デプロイが作成され実績が取得されたあと、それをアップロードするためにデータの追加をクリックします。あとは画面に従い数ステップです。実績のアップロード

図23. 実績データの追加図23. 実績データの追加

あとは、デプロイに名前を付け、[デプロイを作成]をクリックして、配置の重要度を指定するだけです。これで新しいデプロイが作成されます。これでデプロイされたモデルが予測要求を受信する準備が整い、MLOps が予測の追跡を開始します。 モデルの重要度の設定の詳細については以下を参照してください Step 9: ガバナンス

図24. デプロイの作成図24. デプロイの作成

図25. 有用性図25. 有用性

上記で示唆したように、モデルの種類によってはデプロイを作成するための近道があります。DataRobotモデルの場合は、リーダーボードから直接デプロイすることができます。カスタムモデルの場合はカスタムモデルワークショップからデプロイできます。

図26. リーダーボードからのDataRobotモデルのデプロイ図26. リーダーボードからのDataRobotモデルのデプロイ

 

図27. カスタムモデルワークショップからのカスタムモデルのデプロイ図27. カスタムモデルワークショップからのカスタムモデルのデプロイStep 5: 実績のアップロード

デプロイを行い、予測を行っていますが、モデルのパフォーマンスを確認したいと思います。そのためには、実際の結果データをアップロードして、行われた予測と関連付ける必要があります。

モデルの精度を追跡するには、AIカタログか、API経由でアップロード、あるいはドラッグ&ドロップでデータをインポートする必要があります。ここではAIカタログを経由した説明をします。AIカタログは、お客様専用のストレージ・リソースであり、さまざまなデータ・ソースからのデータ・セットを一元的に管理する方法を提供します。私たちは、あなたの実際のデータをここにアップロードして保存すると言うことを除いて、それが持っている多くの機能に入ることはありません。AI Catalog選択し、カタログへの追加をします。すると アップロードするデータのソースを選択します。

図28. AIカタログ図28. AIカタログ

 

デプロイダッシュボード画面へ戻りデプロイを選択してください。デプロイを作成した前のページに戻るには、[設定]メニュー項目をクリックして、[実績]セクションが有効になっていることを確認します。

データの追加をクリックし、AIカタログから実績データを検索します。ここから、以下を指定します:実績のレスポンスカラム(実際の結果を保持します)、行われた予測にリンクするための関連付けIDカラム、結果からどのようなアクションが取られたかを記録するためのオプションのカラム名、実際の値がいつ取得されたかを追跡したい場合は、タイムスタンプ付きのオプションのカラム名です。

図29. 実績データの登録図29. 実績データの登録

 

この情報を入力終えたらアップロードをクリックします。精度 タブをクリックすると、実際の結果と比較して、予測がどのように実行されるかがわかります。

Step 6: サービスの正常性、データのドリフト、および精度によるパフォーマンスの監視

サービスの正常性は、予測要求に迅速かつ確実に対応するデプロイの能力に関するメトリクスを追跡します。これにより、速度と応答時間に影響を与えるボトルネックを特定するのに役立ちます。また、スループットとキャパシティの評価にも役立ちます。これは、良好なパフォーマンスとレイテンシレベルをサポートするために適切なリソースプロビジョニングを行うために重要です。

図30. サービス正常性図30. サービス正常性

 

大抵の場合、モデルは時間の経過とともに劣化していきます。データの構成や種類が変わったり、データの収集や保存方法が変わったりすることがあります。

精度ページにおいて、この場合、モデルがかなり一貫して実際の値を過小予測していることが下の画像でわかります。ほとんどの場合、劣化した予測はデータの構成の変化の結果であると考えられます。

図31. 精度図31. 精度

データドリフトページは、最初にモデルを訓練するために使用したデータから、予測データが時間の経過とともにどのように変化するかを示しています。左側のプロットでは、緑、黄、赤の各ドットが特徴を表しています。X軸には特徴の重要度が、Y軸にはデータドリフトの深刻度の計算が示されています。右側のプロットでは、元の訓練データが紺色、最近の予測データが水色で、それぞれの選択された特徴の値の範囲が示されています。いくつかの例を見ると、データの構成がどのように変化したかがわかります。

図32. データドリフト図32. データドリフト

 

そのため、必然的に最新のデータに基づいてモデルを再訓練し、現在デプロイ中のモデルを新しいモデルに置き換える必要があります。DataRobot MLOpsは、モデルを交換するためのシンプルなインターフェースを提供することで、これを簡単に実現します。そして、これはサービスを中断することなく、シームレスに行われます。

Step 7: モデルの置換

モデルをリプレイスするために、デプロイデプロイリスト  そして、モデルの置換を選択します。ただし、このオプションはデプロイの所有者である場合にのみ選択できます。配置の行のデプロイダッシュボードの同じメニューからモデルの置換を選択することもできます。

次に、別のモデルパッケージファイルをアップロードするか、モデルレジストリ内のモデルを参照することで、DataRobotに使用したいモデルを指定します。DataRobotはデータタイプが一致しているかどうかをチェックし、データドリフトで見られる劣化など、変更の理由を示すように促します。そして、承諾 して 置換をクリックし、変更を保存します。

図33. モデル置換の承認図33. モデル置換の承認

 

ガバナンスワークフローを有効にすると、管理担当者には、保留中の変更が承認確認準備ができたことが通知され、承認されると更新が行われます。モデル置き換えのためにガバナンスワークフローを有効にしていない場合、更新はデプロイに即時に行われます。

図34. ガバナンス図34. ガバナンス

 

これで、デプロイメント 概要 ページの 履歴 列に新しいモデルが表示されるようになりました。サービスの健全性、データのドリフト、および精度ページを移動すると、同じドロップダウンメニューが表示され、探索したいモデルのバージョンを選択することができます。

図35. モデルのバージョン図35. モデルのバージョン

 

Step 8: 通知の設定

すべての機械学習モデルは時間の経過とともに劣化する傾向があります。DataRobotはリアルタイムでデプロイメントを監視していますが、モデルの正常性を確認するためにいつでもチェックすることができます。さらに支援するために、DataRobotは通知システムで自動監視を提供しています。サービスの正常性、受信予測データ、モデルの精度が定義された許容レベルを超えた場合にアラートを出すように通知を設定することができます。

通知の条件を構成するには、デプロイ> 設定メニューに移動し、通知をクリックします。

メールでのコントロール通知配信には、3つのオプションがあります。

  • すべてのイベント通知を受信する重要な、危険を含むような、そして配信予定のメールが含まれています。
  • クリティカルイベントのメールだけを受信する
  • デプロイメントの通知を無効にする

図35. 通知設定図35. 通知設定

モニタリングタブでは、通知のトリガーとなる値を正確に設定します。オーナーの役割を持つユーザーはこれらの設定を変更することができますが、配置が共有されているユーザーは誰でも、通知タブに示されているように、受信したい通知のレベルを設定することができます。デプロイの所有者ではないユーザでも、同じ設定情報を表示できます。

モニタリングは、サービスの正常性、データ ドリフト、および精度で利用できます。 チェックボックスをオンにすると、サービスの正常性については最短で 1 時間ごと、または最長で四半期に 1 回まで、定期的にスケジュールされた間隔で通知を配信できます。


図37. デプロイ通知のモニタリング設定図37. デプロイ通知のモニタリング設定

Step 9: ガバナンス

MLOpsのガバナンスは、モデル開発のワークフローとプロセスのための権利管理フレームワークを組織に提供します。特定のユーザーは、デプロイに関連するイベントをレビューして承認するように指定されています。制御可能なイベントの種類には、デプロイの作成や削除、デプロイの基礎となるモデルの置き換えなどがあります。

図38. 承認が必要なデプロイ図38. 承認が必要なデプロイ

ガバナンス承認ワークフローを有効にすると、モデルをデプロイする前に、重要度レベルを割り当てるように促されます。重要度、高、中、低のいずれかに割り当てます。重要度レベルは、配置の優先順位付けと管理方法を支援します。配置の重要度をどのように指定するかは、モデルを適用している場所と方法のビジネス価値を促進する要因に基づいています。 一般的に、これは予測量、潜在的な財務上の影響、または規制上のエクスポージャーなど、これらの要因の集合体を反映しています。


図39. デプロイの有用性レベル図39. デプロイの有用性レベル

デプロイが作成されると、レビュー担当者にはレビューが必要であることが電子メールで通知されます。レビューアは MLOps 配置管理者の役割を割り当てられたユーザーで、デプロイを承認することが主な機能の 1 つです。レビューを待っている間、デプロイダッシュボード(デプロイリスト)では、その配置は"承認が必要です"としてフラグが立てられます。 レビュー担当者が承認を必要とする配置にアクセスすると、通知が表示され、レビュー プロセスの開始を促されます。


図40. 「承認が必要な」デプロイ図40. 「承認が必要な」デプロイ

 

最後に

DataRobotのMLOpsプラットフォームは、作成場所やデプロイ先に関わらず、すべての本番モデルを1か所で管理することができます。本番環境での複数の機械学習プラットフォームからのモデルのデプロイと管理を簡素化することで、AIの価値を提供することができるようになりました。これにより、生産モデルをプロアクティブに管理して生産上の問題を防ぎ、モデルの信頼性とパフォーマンスの両方を確保することができます。これには、リアルタイムのダッシュボードによるモデルの正常性のライブ監視、データの逸脱に関する自動監視アラート、および主要なモデル・メトリクスが含まれます。

モデルが劣化していることが判明した場合、MLOpsモデルリプレイスにより、既存のビジネスプロセスを中断することなくモデル更新プロセスを合理化するためのホットスワップ可能にします。また、ガバナンスを適用することで、AIプロジェクトを安全にスケールアップし、生産モデルの制御を維持してリスクを最小限に抑え、規制を遵守することができます。

バージョン履歴
最終更新日:
‎10-23-2020 09:32 AM
更新者:
寄稿者