MLOpsとは
MLOpsという単語は今でこそ聞くようになりましたが、まだ本質的に理解している人は少ないかもしれません。
MLOpsというのはDevOps(Development+Operation)の機械学習版であると言えますが、DevOpsと比べてはるかに難しいものです。まずAIはアジャイル型の開発が基本となるため、プログラムのバージョンが数多く発生することになります。さらに、同じコードでもデータセットが異なれば結果が異なります。このように、MLOpsはDevOpsと比較して複雑さにおいて、一気に困難性を増していると言えます。
また、ウォーターフォール型の開発を行っていた人材がMLOpsに入るということも考えられますが、カルチャーギャップが激しいため、やはりDevOpsを経験した方のほうが適していると言えます。
なぜなら、ウォーターフォール型では当初から100点を目指しますが、1年もたてば要件も変わってしまい、結局60~70点になってしまうこともあるためです。そもそも、開発と運用を分けて考えてしまっているところが問題であり、この問題を解決する考え方がDevOpsですが、その考えを承継しつつMLOpsではさらに困難な取り組みを実施する必要があります。
MLOpsの課題と本質
MLOpsには、システムリリース後に大きな課題があります。それは、従来はどのようなデータセットで学習したモデルなのかという認識が次第に薄れてくることです。
実際にあった事例として、アメリカの航空会社のケースがあります。航空会社ではダイナミックプライシングを適用している会社が多いのですが、この航空会社では数十年前に学習したモデルを使い続けていたことによって、「データの賞味期限切れ」が起こっており、年間数十億ドルの機会損失が発生していたのです。
このように、システムの設計当初から時間が経って問題が生じるケースには2つの種類があります。専門用語で「データドリフト」と「概念ドリフト」といいます。「データドリフト」は先ほどの事例のように、学習したデータセットが今の時代とずれてしまうものです。また、AIでは人間が「正解」のラベルをつけることになるのですが、「概念ドリフト」はその「正解」自体の概念が変わってしまうことを言います。
そして、まさに今、新型コロナの感染拡大やウクライナ侵攻という世の中の大きな動きを経て、データドリフトや概念ドリフトが起こっていると言えます。
したがって、運用フェーズ以降においても問題の発生を検知することが必要となるため、検知した際にデータサイエンティストと共に手を打つための体制をあらかじめ構築しておく必要があることも、MLOpsの本質であると言えます。
データサイエンティストに運用まで見てもらうことも考えられなくはないですし、チームを作って運用する体制が作られている事例もあります。
中部電力グループとMLOps
中部電力グループにおけるMLOpsについては、モデル作成者であるTCA、主管部、システム開発者であるCTIという3者が組織を横断して運用するというのが理想ですが、三位一体での動きというのは困難な面もあり、現状ではモデル開発とシステム化が別々になっています。
モデル開発をする会社を立ち上げたものの、他にもシステム開発と保守をする会社があり、さらに本体にもシステム部や主管部がいたことで、やはり、MLOpsの適用がスムーズにいかないという、似た事例もありました。
基本的にはデータサイエンティストが運用フェーズまでの全てを監督するわけではないと考えられるため、このモデルは何がKPIで、どのような兆候が現れたら何を確認する、という体制ができていることが大切です。
具体的なアプローチには色々ありますが、例えば、DevOps経験者には基本が備わっているため、MLOpsとの違いを認識したうえで運用上のKPIを設定してみるなどの方法があります。
中部電力グループはPoCの段階を脱し、いよいよ実装の段階に来ているため適切な運用を考えていかなければなりません。様々な課題がありますが、まずはやってみる、最初は小さい案件でもいいので凡例として作ることが大切です。
Vol .5 中部電力グループにおけるMLOps③ に続きます。