予測とデプロイ¶
MLOps defined¶
MLOpsとは?
機械学習運用(MLOps)自体は、DevOpsから派生したものです。通常のソフトウェアには「Ops」(運用)分野全体が存在し、ML(機械学習)にもそうした分野が生まれる必要があると考えられました。 (DataRobot AutoMLを含む)テクノロジーにより、予測モデルの構築は容易になりましたが、モデルから価値を引き出すには、モデルのデプロイ、監視、保守が必要です。 この方法を知っている人は非常に少なく、優れたモデルの作り方を知っている人よりもさらに少ないでしょう。
そこで登場するのがDataRobotです。 DataRobotは、モデリング(AutoML)に加えて、MLの「デプロイ、監視、保守」の要素(MLOps)を実行する製品を提供しています。この製品は、ベストプラクティスを組み込んでコアタスクを自動化し、コスト、パフォーマンス、スケーラビリティ、信頼性、精度などの改善を実現します。
Who can benefit from MLOps?
MLOpsは、モデルの運用に問題を抱えているAutoMLユーザーや、AutoMLは必要ないが既存のモデルを運用するためのシステムが欲しいという組織を支援することができます。
MLOpsの主な要素は次のとおりです。
- モデル管理 モデルを監視し、パフォーマンスの統計データを追跡します。
- カスタムモデル DataRobotで作成されていない既存モデルの99.9%にも利用できます。
- 追跡エージェント DataRobotに取り込まれないモデルにも利用できます。これにより、既存のモデルの監視を開始するのがはるかに簡単になります (運用パイプラインを変更する必要はありません) 。
MLOpsの詳細を参照してください。
スタックされた予測¶
スタックされた予測とは
DataRobotは、「スタックされた予測」を行うことで、トレーニングデータ行の予測を生成します。つまり、DataRobotは、予測されたデータの各行に対して、指定された行を含まないデータでトレーニングされたモデルを慎重に使用します。
ELI5の例
あなたは、5人の異なる生徒に数学を教える教師で、自分の教育資料が、数学の概念を教えるのに効果的かどうかを確かめたいと思っているでしょう。
そのため、100個の数学問題を取り、それらを5セットの質問と回答のペアに分割します。 各学生に、学習資料として使用する4つの異なるコレクションセットを提供します。 その学生の試験として使用する残りの5番目の数学問題のセット
他の教師に調査結果を提示するとき、学習教材にある学習の答えを、学習の証拠として提示することは避けたいものです。学生たちはすでに答えを知っており、概念を理解することなく、ただそれをコピーしただけかもしれません。 その代わりに、答えが与えられていない試験で、それぞれの学生がどのように実行したかを示しています。
この類似性によると、学生はモデルで、質問と回答のペアはデータの行で、質問と答えのペアのさまざまなセットは異なる交差検定パーティションとなります。 他の先生方へのプレゼンテーションでは、モデルのパフォーマンスを理解するために、DataRobotが作成するすべてのチャート(リフトチャート、ROC曲線など)をご覧いただきます。 試験での生徒の回答が、スタックされた予測です。
スタックされた予測の詳細を参照してください。
専用予測サーバー vs. ポータブル予測サーバー¶
What is the difference between a Dedicated Prediction Server and a Portable Prediction Sever?
-
専用予測サーバー(DPS):自宅にはガレージがあり、いつでもドアを開けて愛車をチェックできます。
-
ポータブル予測サーバー(PPS): ガレージを所有しているが、自宅から離れたところにある。 仕事場を広く取りたいことと、10代のドライバーが駐車しようとしたときに、コレクションの車が傷つかないようにするため、あなたはそれを通りの下に置いています。 ただし、コレクションを定期的にチェックする場合は、カメラをインストールする必要があります。
-
専用予測サーバー(DPS):DataRobotプラットフォームに組み込まれたサービスで、モデルを簡単にホスティングし、アクセスできるようにします。 このタイプの予測サーバーは、プラットフォームがスコアリングを直接処理しているため、MLOps監視への最も簡単なパスを提供します。
-
ポータブル予測サーバー(PPS):DataRobotの外部で実行され、DataRobotからエクスポートされたモデルを提供するコンテナ化されたサービス このタイプの予測サーバーでは、モデルをホストする場所の柔軟性を高めながら、MLOpsエージェントを設定するときに監視を実行できるようになります。 データの分離やネットワーク性能が障害となり、従来のDPSによるスコアリングが困難なケースに有効です。 スコアリングコードの使用を検討しているが、シンプルな予測APIを利用したい場合、または予測の説明を収集する必要がある場合、PPSは良い選択肢となるかもしれません。
Serverless predictions¶
What are serverless predictions?
You are at a huge concert and need to pick up your tickets at Will Call, along with many other concert attendees. There is a bank of people to hand out tickets, each one handles tickets associated with last names starting with a certain letter. In front of this bank of ticket issuers, there is a person who directs people to the correct ticket issuer based on your name. They take the first person in line, ask the name, then lead them to the correct issuer, then wait for that person to get their ticket before returning to the line and doing the same for the next person. In Serverless, you replace the director with a sign pointing people to the correct issuer, which they can all read at pretty much the same time without having to wait for the person ahead of them.
In short, Serverless Predictions means that the DataRobot Prediction API is running on Kubernetes, allowing you to run multiple concurrent batch prediction jobs (previously they were queued) and enable or disable real-time predictions.
動的時間伸縮法(DTW)¶
Robot 1
動的時間伸縮法は、完全には重複していない系列のエンドポイントを一致させようとするものであると理解しています。
今後の封切りからの一連の映画KPIが関与する、クライアントのユースケースを検討してください。 映画が封切りになる週末まで10〜20週間のKPIが得られます。 明らかに多くの時系列は重複していませんが、比較的に並んでいる可能性があります(たとえば、オープンから1週間、オープンから2週間など)。 これは、R/Pythonで行うことができますが、時系列クラスタリングでこれに対処できる可能性があると考えていました。
系列の長さ制限や最小限の重複時間など、何を知る必要がありますか? 動的時間伸縮法についての私の理解は正しいですか?
Robot 2
これは、両端ではなく、一般的に中央のポイントについてより関係するものです。
Robot 3
時系列クラスタリングを実行するには、以下が必要です。
-
10以上の系列。
-
Kクラスターが必要な場合は、20以上の時間ステップを持つK系列が必要です。 (3つのクラスターを指定する場合、系列の少なくとも3つは20以上の長さである必要があります。)
-
すべての系列の和集合を取り込む場合、和集合は合計で少なくとも35の時間ステップにわたる必要があります。
Robot 3
DRでは、DTWのプロセスはモデル構築中に処理されます。ユーザーによる調整は必要ありません。 エラーが表示された場合は、理由を確認するためにフラグを立ててください。
内部
- 時系列でクラスタリングで開始をクリックすると、一部のk平均ブループリントにDTW(その他のブループリントにはソフトDTWと呼ばれる関連技法が含まれます)が含まれ、k平均が系列のクラスタリングに適用されます。
-
DTWの目標は、系列を一致させることです。 たとえば、
sin(x)
、-sin(x)
、およびcos(x)
はすべて異なる関数ですが、同じパターンに従っています。 DTWは、これらの関数を(わずかに)シフトさせて、山と谷を一致させます。 DTWを適用した後、その距離は事実上ゼロになります。 -
しかし...DTWは、シフト以上のことを行うことができます。前述のRobot 2のように、系列の中央の反復値を補完できます。
( ここから抽出された画像。 そのサイトには良い動画がたくさんあります。車からメールしているので、コピーできません。)
画像では、左側の例が本当のユークリッド距離です。 各タイムポイントを取得し、その時点での2つの系列間の距離を計算してから、二乗して追加します。 これがユークリッド距離です。
DTWでは、上位の系列(T
と呼ぶことにします)は、より複雑な方法で下位(B
)にマッピングされます。
- 2つの新しい系列
T*
とB*
を作成し、それらの間のユークリッド距離を計算します。
T1(T
の最初の観測値)は、B1からB6にマッピングされます。これは、T
とB
をマッチさせるために、T1が6回コピーされることを意味します。 したがって、T*1 = T1, T*2 = T1, ... T*6 = T1
です。
- つまり、DTWは
T
を取得し、そのregion-of-time
のために、TとBが調整されるように、T1を5回コピー作成して拡張します。 系列の一部をシフトすることのようなものですが、「last value carried forward imputation」を使用して補完を実行します。 (このサイトの動画は、私の説明よりもうまく示していると思います。)
次に、T*7 = T2, T*8 = T3
などの操作を行います。
これまでのところ、最初の25ステップについてはB* = B
です。 谷の右側に早送りします。 B
はT
内の複数の場所にマッピングされるので、ここでは、B
を定義して、B
の複数のコピーを取ります。
B*25 = B25
B*26 = B25
...
B*30 = B25
次に、B31 = B26, B32 = B27
などの操作を行います。
最終的に、これはB*
とT*
が同じ長さであることを意味するはずです。 次に、B*
とT*
の間のユークリッド距離を計算します。
Robot 3
それで、Robot 1、希望するよりも詳細に(そしてほぼ確実にずっと杜撰に!)、開始ポイントと終了ポイントは調整されますが、その中で系列を拡張する追加の補完操作が発生します。
Robot 3
DataRobotでは、これはすべて内部で行われます。 開発者に感謝します 😉
Robot 1
こんにちは、Robot 3、クライアントはこの情報を非常に感謝しています。ありがとう。時系列クラスタリングに関して、ガードレール / 制約に関するドキュメントがあるかどうか尋ねられました。 どこかで公開されているでしょうか。
Robot 4
その情報は ドキュメントに記載されています。