第11章. MLプラットフォームをアーキテクトする
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
前の章では、ML アプリケーションの全体的なアーキテクチャについて、また、多くの場 合、事前に構築されたMLモデルを使用することについて議論した。場合によっては、MLアプリケーションの核となるMLモデルを開発しなければならない。
この章では、そのようなカスタムMLモデルの開発とデプロイについて掘り下げていく。MLモデルの開発段階と、そのような開発をサポートするフレームワークを見ていく。モデルが作成された後は、この移行を支援するツールや製品を調べることで、学習プロセスを自動化する必要がある。最後に、エンドポイントにデプロイされた学習済みモデルの振る舞いを監視し、推論を行う際にドリフトしていないかどうかを確認する必要がある。
以前の章では、データプラットフォームの様々な部分によって実現されるML機能について説明した。具体的には、MLプラットフォームのデータストレージはデータレイク(第5章)やDWH(第6章)にあり、トレーニングはそのストレージに効率的なコンピュートで実行され、推論はストリーミングパイプライン(第8章)から呼び出されるか、エッジ(第9章)にデプロイされる。この章では、これらの議論をまとめ、これらのML機能には何が必要かを考察する。
ML活動
カスタムMLモデル開発をサポートするためにML プラットフォームを構築する場合、どのような活動をサポートする必要があるのだろうか?アーキテクトが、データサイエンティストやMLエンジニアがプラットフォーム上でできるようにする必要がある多くの活動を考慮せずに、MLフレームワーク(「データサイエンティストが使うものだから、XGBoostとPyTorchをサポートする必要がある」)にすぐに飛びつくのをよく見かける。
通常、MLプラットフォームは図11-1の活動をサポートしなければならない。
図11-1. MLプラットフォームがサポートすべき活動
生データをクリーンにして処理し、MLに適した状態にし、その結果得られる学習済みモデルをより正確なものにする必要がある。データの準備には、データを調べ、その分布をプロットし、そのニュアンスを研究するための探索的データ解析が必要である。次に、MLモデルをデータのサブセットでトレーニングし、別のサブセットを使って評価する。これに基づいて、データサイエンティストはデータ準備やモデリングのステップを変更する。このプロセスは反復的であり、通常は多くの実験を伴う。
モデルのトレーニングが終わったら、テストデータに対して評価し、コンプライアンスとパフォーマンスをチェックし、エンドポイントにデプロイする必要がある。MLモデルのクライアントは、エンドポイントに予測リクエストを送ることができる。
訓練されたモデルは、いつまでも目的に適合しているわけではない。通常、環境は変化し、時間の経過とともにモデルの精度は落ちていく。したがって、モデルのトレーニングとデプロイのステップを自動化し、モデルが常に最新で正確であるようにしなければならない。
また、モデルを注意深く継続的に監視し(入力される予測要求を確実に処理していることを確認する)、評価し(予測が正確であり続け、特徴がドリフトしていないことを確認する)、新しいトレーニングデータや新しいコードがあるとき、あるいはモデルのドリフトが検出されたときはいつでも再トレーニングしなければならない。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access