本記事は、MLOps Advent Calendar 2020の16日目の記事です。
1 TL;DR
MLOpsの定義で、各企業、各団体で共通している箇所は下記となります。
DevOpsをベースとして、機械学習(ML)特有の問題も含めて対応しようとした実践(プラクティス)であることは共通しています。
明記されていない企業もありますが、職種として下記がある認識です。
- データサイエンティスト (MLのモデル開発を担当)
- エンジニア (MLを動かすためのシステム全体の開発およびモデルの検証環境の構築を担当)
- 運用担当者 (MLを含んだシステムの運用を担当)
これら3職種がうまく協調して、ユーザへの価値提供を最適化しようとしているところも同じと言っていいと思います。
この記事全体としては、「4 まとめ」「5 DevOpsとの違い」を読んだ後に気になった企業の定義について確認するという読み方がお勧めします。「2 各企業の定義」は、分量が多いためです。
2 各企業の定義
企業の選定基準は、IT企業かつ、利益の規模が大きい順にピックアップしています。
GAFAの次は?世界で最も儲かっているIT企業ランキング2020
2.1 Google
2.1.1 Googleの定義
DevOpsと同様に、MLOpsは、MLシステム開発(Dev)とMLシステム運用(Ops)を統合することを目的としたMLエンジニアリングの文化と実践です。DevOpsとは異なり、MLシステムは、継続的インテグレーションや継続的デリバリー(CI / CD)などのDevOps原則の核心にMLシステム特有の課題を提示します。
2.1.2 選定理由
Googleは大きな企業なので、定義と思われる文章も複数見つかりました。
- MLOps: 機械学習における継続的デリバリーと自動化のパイプライン
- Key requirements for an MLOps foundation
- TFX、Kubeflow Pipelines、Cloud Build を使用した MLOps のアーキテクチャ
本記事では2.を採用します。
理由
1.での定義は詳細ですが、少し長いです。
3.はKubeflowとTFXのhow to寄りの内容なので、定義というと少し違う印象です。
2.1.3 DevOpsとMLOpsの違い
Key requirements for an MLOps foundation より引用して翻訳。
用語 | DevOps, MLOps共通 | MLOps特有 |
---|---|---|
CI | コードとコンポーネントのテストと検証 | データ、データスキーマ、およびモデルのテストと検証も行う |
CD | 単一のソフトウェアパッケージまたはサービス | システム(MLトレーニングパイプライン)が別のサービスに自動的にデプロイする必要があり |
CT | DevOpsでは存在しない概念 | テストとサービスのために候補となるモデルを自動的に再トレーニングする |
CM | システムのエラーをキャッチする | 本番環境での推論データとビジネスでの結果に関連付けられたモデルパフォーマンスメトリックを監視する |
- CI: 継続的インテグレーション
- CD: 継続的デリバリー
- CT: 継続的トレーニング
- CM: 継続的監視
2.2 Facebook
Facebookのエンジニアブログを検索しましたが、ヒットしませんでした。
FBLearnerでMLOpsを実践しているものの、定義を書いているわけではなさそうです。
2.3 Intel
Intelのwebサイト内にてMLOpsで検索しましたが、SeldonのCTOの紹介と求人票以外はヒットしませんでした。
https://www.intel.com/content/www/us/en/search.html?ws=text#q=MLOps&t=All
プロセッサを作るのがメインの会社だから、無くても仕方ないですね。
2.4 Microsoft
2.4.1 Microsoftの定義
MLOps:Azure Machine Learning を使用したモデル管理、デプロイ、および監視
Machine Learning 操作 (MLOps) は、ワークフローの効率を向上させる DevOps の原則と実践に基づいています。 たとえば、継続的インテグレーション、配信(注1)、デプロイです。 MLOps では、次のことを目標に、これらの原則を機械学習プロセスに適用します。
- モデルのより迅速な実験と開発
- 実稼働環境へのモデルのより迅速なデプロイ
- 品質保証
(注1) Delivery の訳語。
2.5 SoftBank
【マルチクラウド対応】GCPを使ったゼロから始めるAI活用(後編)
ビジネスでの継続的な運用 - MLOpsとは? の章があるものの、GCPの定義を引用しているのでSoftBankの定義ではないです。
SoftBank technologyのサイトにてMLOpsで検索すると、いくつかヒットするものの、ニュースを紹介しているだけなので、MLOpsの定義はありませんでした。
2.6 Amazon
2.6.1 Amazonの定義
背景
MLOpsとは、DevOpsの実践を機械学習のワークロードに適用することで構築された手法のことを指します。DevOpsは、ソフトウェア開発ライフサイクル(SDLC)全体のソフトウェアのデリバリを合理化するために、開発と運用の分野の共通部分に焦点を当てています。MLOpsは、データサイエンス、データエンジニアリングを既存のDevOpsプラクティスと組み合わせて、機械学習開発ライフサイクル(MLDC)全体でモデルのデリバリを合理化することに重点を置いています。
MLOpsは、MLのワークロードをリリース管理、CI/CD、運用に統合するための規律です。多くの企業では、MLプロジェクトは、データサイエンティストが他のチームから隔離された研究チーム内で活動することから始まります。MLプロジェクトが初期のPoCの結果でその価値を証明すると、企業は当然、それらを本番環境に移行させたいと考えるようになります。DevOpsがソフトウェア開発と運用を統合するように、MLOpsはソフトウェア開発、運用、セキュリティ、データエンジニアリング、データサイエンスを統合する必要があります。
目的
MLOpsのプラクティスをMLワークロードに適用する目的は、顧客がMLワークロードの採用を加速し、MLワークロードの構築、デプロイ、運用のワークロードを最適化できるようにすることです。お客様が初期プロジェクトの典型的な手動での運用段階から、ML ワークロードを大規模に導入できるようになるまでには、一連のプラクティスと特性が採用されていると考えられます。
2.6.2 選定理由
- Machine Learning Lens
-
Amazon SageMaker MLOps
MLOpsの定義そのものの記事は見つけられなかったものの、
MLOpsを対象とするサービスから取得しています。
Machine Learning LensよりもSageMakerの記事のほうがマネージドサービス説明だけでなく、
MLOpsの背景と目的を明記していたので採用しました。
2.7 IBM
2.7.1 IBMでの定義
The Machine Learning Development and Operations
補足
IBMのこの記事は、 "Data - AI - Analytics Reference Architecture" の一部です。
次の方法論の1つとして紹介されています。
- Integrated iterative approach
- MLOps
- DevOps
- DataOps
機械学習の開発と運用について
MLOpsは、2016年にGarter社から出版された「ペースレイヤード・アプリケーション戦略とIT組織設計」に沿ったものです。
MLOpsメソッドは「Systems of Innovation」の開発に合わせたもので、参照アーキテクチャ(reference architecture)に基づいて個々の技術要素を開発するためのプロセスモデルと、参照アーキテクチャを超えてソリューションアーキテクチャ(solution architecture)を拡張するためのアーキテクチャ開発フレームワークで構成されています。このようにして、「イノベーションのシステム」は、長期的には「差別化のシステム」や「記録のシステム」へと移行することができます。この方法では意図して、要求工学や設計タスクは「IBM Cloud Garage Method」でカバーされているので、この方法には含まれていません。後に、データサイエンスのドメインにデザイン思考を採用する必要があると考えた場合は、それを実行します。
- The Lightweight Method for Data Science Process Model
- Understand business needs
- Initial Data Exploration
- Data preparation
- Feature creation
- Model definition
- Model Training
- Model evaluation
- Model deployment
- Project Asset Naming Convention
2.7.2 選定理由
IBMのWebサイトでこれ以外にそれらしい記事がなかったため。
2.8 Oracle
2.8.1 Oracleの定義
- ステップ1:ユースケースを特定する 何をしようとしているのか?
- ステップ2:状態の棚卸しをを開始する。何を所持しているのか?
- ステップ3:本番MVP(Minimum Viable Product)を定義する
- ステップ4:本番に向けてコードを準備する
- ステップ5:機械学習アプリケーションを構築する
- ステップ6:本番で機械学習アプリケーションをデプロイする
- ステップ7:より良いものにする
- ステップ8:継続的な最適化
MLOpsには他に何がありますか?
MLOpsは、本番環境でモデルをデプロイして管理する総合的な実践です。
上記のステップでは、最初のモデルをデプロイすることでMLOpsを始める方法を示しています。上記のステップを踏めば、少なくとも1つのMLアプリケーションを運用し、そのライフサイクルの中で管理する必要があるでしょう。その後、モデルを管理し、ビジネスのあらゆる規制ニーズに準拠するためのガバナンス、MLモデルがビジネスアプリケーションに提供している利益を評価するためのKPIなど、MLライフサイクル管理の他の側面を考慮する必要があるでしょう。
2.8.1 選定理由
Oracle社のホームページより
https://www.oracle.com/jp/index.html の上で MLOpsと検索してもヒットしませんでした。
https://www.oracle.com/index.html で MLOpsと検索するといくつかヒットするものの、
リンク先がPage Not Foundばかりでした。
なおかつ、not foundでなくてもそのページ内にMLOpsというキーワードがヒットしませんでした。
Oracle社のエンジニアブログにて、MLOpsを検索した結果です。
https://blogs.oracle.com/author/?search_terms=mlops
結果として4件ヒットしたので、その中でもっともMLOpsの定義に近いものを選びました。
- How to Move from Experimentation to Building Production Machine Learning Applications
- There is no AI without IA: How to Build Information Architecture
- These five data science tips help you find valuable insights faster
- KI im Unternehmen: So macht starke Informationsarchitektur Ihre Daten wertvoll
2.9 NVIDIA
2.9.1 NVIDIAでの定義
MLOps は既存の規範である DevOps の上にモデル化されています。DevOps は、エンタープライズ アプリケーションを効率的に書き、展開し、運用するための最新プラクティスで、対立の絶えないソフトウェア開発者 (Devs) と IT 運用チーム (Ops) の共同作業を可能にする方法として 10 年前に始まりました。
MLOps ではそのチームに、データセットをキュレートし、それを分析する AI モデルを構築するデータサイエンティストが加わります。また、これらのモデルによるデータセット運用を、統制が取れ自動化された手法で行う機械学習エンジニアも含まれます。
2.9.2 選定理由
NVIDIAの公式サイトで、MLOpsと検索したときの結果が下記です。
MLOps とは何か?以外ににMLOpsの定義と思われる記事がヒットしなかったためです。
2.9.2 余談
MLOps とは何か?のページの
「AIOps、DLOps、DataOps などのバズワードにご用心」の章は意外とためになります。
∵ NVIDIAはハードウェアが主力なので、バズワードを作って利益を得る企業ではないためです。
3 非営利団体での定義
企業だけでなく、可能な範囲で非営利団体の定義も追加しました。
3.1 Wikipedia(英語)
MLOps(「機械学習」と「オペレーション」の複合語)は、データサイエンティストとオペレーションの専門家の間のコラボレーションとコミュニケーションのためのプラクティスであり、本番環境でのML(またはディープラーニング)ライフサイクルの管理を支援するものです。[1]。
DevOpsやDataOpsのアプローチと同様に、MLOpsでは、ビジネスや規制の要件に焦点を当てながら、自動化を進め、本番環境のMLの品質を向上させようとしています。MLOpsもまた、ベストプラクティスの集合体として始まりましたが、MLのライフサイクル管理に対する独立したアプローチへと徐々に進化しています。MLOpsは、モデル生成(ソフトウェア開発ライフサイクル、継続的インテグレーション/継続的デリバリ)、オーケストレーション、デプロイとの統合から、ヘルス、診断、ガバナンス、ビジネスメトリクスまでのライフサイクル全体に適用されます。
ガートナー社によると、MLOpsはModelOpsの部分集合です。MLOpsがMLモデルの運用化に焦点を当てている一方で、ModelOpsはあらゆるタイプのAIモデルの運用化をカバーしています。[2]
ちなみに、Wikipediaの記事は基本的には元ネタがあります。Wikipedia:中立的な観点を参照してください。
その観点で見ると、上記の文章は下記が参照元です。
- [1]は、Why MLOps (and not just ML) is your Business’ New Competitive Frontier
で、DataRobot社のCTOが記載した文章をもとにしています。 - [2]は、ガートナー社のWebサイトの文章がもとになっています。
3.2 MLSys
3.2.1 MLSysでの定義
MLを本番環境に投入することの複雑さから、実際の機械学習自体の能力は複雑なシステムとそのライフサイクルのごく一部です。
このように新たに進化している分野は、MLOpsとして知られています。非公式にはMLOpsとは、データサイエンティストとオペレーションエンジニア(例:SRE)が協力して、組織内でMLのライフサイクルを管理することを指します。
この分野は新しいものであり、研究の観点からはまだ探求されていません。
3.2.2 選定理由
https://mlsys.org/ のサイト内で、MLOps のキーワードにヒットしたページをみて、MLOpsの定義と思われるページを探しました。
具体的には、Google検索で、 "site:https://mlsys.org/ MLOps" で検索した結果です。
検索した結果です。
3.3 USENIX
USENIX自体が提唱しているMLOpsの定義はありませんでした。
理由
https://www.usenix.org/ のサイト内で、MLOps のキーワードにヒットしたページを閲覧し、MLOpsの定義と思われる箇所があるページを探しました。
具体的には、Google検索で、 "site:https://www.usenix.org/ MLOps" で検索した結果です。
この中で、MLOpsの定義を挙げているURLとして、ML Ops and Kubeflow Pipelinesがあったものの、GCPのKazunori Satoさんの発表資料なので、USENIXの定義ではないと判断しました。
4 まとめ
4.1 どの企業・団体でも共通していること
当たり前ですが、、、、
DevOpsをベースとして、機械学習(ML)特有の問題も含めて対応しようとした実践(プラクティス)であることは共通しています。
明記はされていない企業もありますが、職種として下記がある認識です。
- データサイエンティスト (MLのモデル開発を担当)
- エンジニア (MLを動かすためのシステム全体の開発およびモデルの検証環境の構築を担当)
- 運用担当者 (MLを含んだシステムの運用を担当)
MLOpsというワードであるものの、職種の観点からいうとMLDevOpsのほうが、情報の欠損がない分、個人的にはしっくりきます。次のような図もあることですし。
MLOps = ML + DEV + OPS
https://miro.medium.com/max/700/1*2qvAoyQyeZuHH4oOJKPt9w.jpeg より抜粋。
この3職種の人がうまく協調して、ユーザへの価値提供を最適化しようとしているところも同じと言っていいと思います。
4.2 あまり共通していないこと
Google, Microsoft, Amazonは大体同じで開発方法そのものへの言及が多いです。一方で、IBM, Oracleは、SIer色が強いためか、ビジネスサイドへの配慮ともとれる記載が比較的多かった印象です。
4.3 雑感
クラウドベンダーからの発信が主でした。そんな中で、NVIDIAが発信していることは意外でしたし、自社のサービスを使ってもらうような誘導をしなくてよいので、割合中立的な意見と思えました。
5 DevOpsとの違い
5.1 MLOpsとDevOpsでの共通事項
DevOpsでやっていることすべてです。
つまり、DevOps + ML = MLOps
です。
5.2 MLOps特有の事項
MLのモデル作成に関わる事項はMLOps特有の事項です。Googleのドキュメントから再掲してみます。
用語 | DevOps, MLOps共通 | MLOps特有 |
---|---|---|
CI | コードとコンポーネントのテストと検証 | データ、データスキーマ、およびモデルのテストと検証も行う |
CD | 単一のソフトウェアパッケージまたはサービス | システム(MLトレーニングパイプライン)が別のサービスに自動的にデプロイする必要があり |
CT | DevOpsでは存在しない概念 | テストとサービスのために候補となるモデルを自動的に再トレーニングする |
CM | システムのエラーをキャッチする | 本番環境での推論データとビジネスでの結果に関連付けられたモデルパフォーマンスメトリックを監視する |
- CI: 継続的インテグレーション
- CD: 継続的デリバリー
- CT: 継続的トレーニング
- CM: 継続的監視
なおかつ、職種が増えたので、DevOpsでは、Dev と Opsのコミュニケーションだけだったのが、「DSとDev」および「DSとOps」のコミュニケーションも増えています。
6 余談
ModelOps, AIOpsについてガートナー社が提唱しているものの、
ビジネスよりの話が多いので、データサイエンティストやエンジニアは時間があれば眺めておく程度で良さそうです。
7 最後に
hurutoriyaさんには、後出しであったにもかかわらず、テーマを譲っていただきありがとうございました。
この場を借りて、お礼申し上げます。
8. 参考文献
GAFAの次は?世界で最も儲かっているIT企業ランキング2020
- MLOps: 機械学習における継続的デリバリーと自動化のパイプライン
- Key requirements for an MLOps foundation
- TFX、Kubeflow Pipelines、Cloud Build を使用した MLOps のアーキテクチャ
- https://engineering.fb.com/category/data-infrastructure/
- Introducing FBLearner Flow: Facebook’s AI backbone
Intel
Microsoft
Alibaba
SoftBank
- https://www.softbank.jp/biz/future_stride/entry/techblog/20200710/
- https://www.softbanktech.co.jp/result/?q=MLOps
Amazon
- Amazon SageMaker MLOps
- Machine Learning Lens
- MLOps を適用して、Amazon Forecast で AI を利用した予測の自動化を構築する
-
【開催報告 & 資料公開】 AI/ML@Tokyo #7 AWSにおけるMLOps 開催報告
- あくまでこのセミナーでのMLOpsの定義を記載しています
IBM
Oracle
- https://www.oracle.com/index.html
- https://www.oracle.com/jp/index.html
- https://blogs.oracle.com/author/?search_terms=mlops
- How to Move from Experimentation to Building Production Machine Learning Applications
- https://blogs.oracle.com/datascience/there-is-no-ai-without-ia%3a-how-to-build-information-architecture
- https://blogs.oracle.com/datascience/five-data-science-tips
- https://blogs.oracle.com/de-cloud/ki-im-unternehmen
Wikipedia
- https://en.wikipedia.org/wiki/MLOps
-
Why MLOps (and not just ML) is your Business’ New Competitive Frontier
By Nisha Talagala, Co-Founder, CTO & VP Engineering, ParallelM.によるMLOpsの定義
MLSys
- https://mlsys.org/
- https://www.google.com/search?q=site%3Ahttps%3A%2F%2Fmlsys.org%2F+MLOps&oq=site%3Ahttps%3A%2F%2Fmlsys.org%2F+MLOps&aqs=chrome..69i57j69i58.6198j0j7&sourceid=chrome&ie=UTF-8
- https://mlops-systems.github.io/
USENIX
- https://www.usenix.org/conference/
- https://www.usenix.org/conference/opml19
- https://www.usenix.org/conference/opml20
- https://www.google.com/search?q=site%3Ahttps%3A%2F%2Fwww.usenix.org%2F+MLOps&oq=site%3Ahttps%3A%2F%2Fwww.usenix.org%2F+MLOps
- https://www.usenix.org/sites/default/files/conference/protected-files/srecon19apac_slides_sato.pdf
- https://www.usenix.org/system/files/opml20_paper_dakkak.pdf