Software2.0、MLOps、milvusでAIを大規模に運用する
機械学習(ML)アプリケーションの構築は、複雑で反復的なプロセスである。非構造化データの未開拓の可能性に気づく企業が増えるにつれ、AIを活用したデータ処理とアナリティクスの需要は高まり続けるだろう。効果的な機械学習オペレーション(MLOps)がなければ、ほとんどのMLアプリケーションへの投資は枯れ木のようになってしまう。調査によると、企業が導入を計画しているAIのうち、実際に導入に至っているのはわずか5%程度だという。多くの企業は「モデル負債」を抱えており、市場環境の変化やそれに適応できなかった結果、モデルへの投資が未実現のままリフレッシュされずに(あるいは最悪、全くデプロイされずに)放置されることになる。
この記事では、AIモデルのライフサイクル管理に対する体系的アプローチであるMLOpsと、オープンソースのベクターデータ管理プラットフォームMilvusを使用してAIを大規模に運用する方法について説明する。
MLOpsとは?
機械学習オペレーション(MLOps)は、モデルオペレーション(ModelOps)またはAIモデルの運用化とも呼ばれ、AIアプリケーションを大規模に構築、維持、展開するために必要なものである。企業は開発したAIモデルを何百もの異なるシナリオに適用しようとするため、使用中のモデルや開発中のモデルを組織全体で運用することがミッションクリティカルとなる。MLOpsは、機械学習モデルをそのライフサイクル全体にわたって監視し、基礎となるデータから特定のモデルに依存する本番システムの有効性まで、あらゆるものを管理する。
01.jpg
ガートナーはModelOpsを、運用化された幅広い人工知能と意思決定モデルのガバナンスとライフサイクル管理と定義している。MLOpsの中核機能は、以下のように分解できる:
継続的インテグレーション/継続的デリバリー(CI/CD):開発者オペレーション(DevOps)から借用した一連のベストプラクティスであるCI/CDは、コード変更をより頻繁に、より確実に提供するための手法である。継続的インテグレーションは、厳密なバージョン管理で監視しながら、コード変更を小ロットで実装することを促進する。継続的デリバリーは、さまざまな環境(テスト環境や開発環境など)へのアプリケーションのデリバリーを自動化する。
モデル開発環境(MDE):モデルの構築、レビュー、文書化、および検証のための複雑なプロセスである MDE は、モデルが反復的に作成され、開発中に文書化され、信頼され、再現可能であることを保証するのに役立ちます。効果的なMDEは、モデルが管理された方法で調査、研究、実験できることを保証する。
チャンピオン・チャレンジャーテスト:マーケティング担当者が使用するA/Bテスト手法と同様に、チャンピオン・チャレンジャー・テストでは、単一のアプローチにコミットすることを進める意思決定プロセスを支援するために、さまざまなソリューションを実験する。この手法では、リアルタイムでパフォーマンスを監視・測定し、どの逸脱が最も効果的かを特定する。
モデルのバージョン管理:他の複雑なシステムと同様に、機械学習モデルは多くの異なる人々によって段階的に開発される。モデルのバージョニングは、データ、モデル、コードが異なる速度で進化する可能性があるML開発の反復プロセスを管理し、統制するのに役立ちます。
モデルの保存とロールバック:モデルがデプロイされると、対応するイメージファイルを保存する必要があります。ロールバックとリカバリ機能により、MLOpsチームは必要に応じて以前のモデルのバージョンに戻すことができます。
本番アプリケーションでモデルを1つだけ使用することは、多くの困難な課題をもたらします。MLOpsは、機械学習モデルのライフサイクル中に発生する技術的またはビジネス上の問題を克服するために、ツール、テクノロジー、およびベストプラクティスに依存する構造化された反復可能な手法である。MLOpsを成功させることで、AIモデルの構築、デプロイ、監視、再学習、管理、および本番システムでの使用に取り組むチーム全体の効率を維持することができる。
なぜMLOpsが必要なのか?
上記のMLモデルのライフサイクルに描かれているように、機械学習モデルの構築は、新しいデータの取り込み、モデルの再トレーニング、時間の経過に伴う一般的なモデルの減衰への対処を含む反復プロセスです。これらはすべて、従来の開発者オペレーション(DevOps)では対処できない、あるいは解決策を提供できない問題だ。MLOpsは、AIモデルへの投資を管理し、生産性の高いモデルのライフサイクルを確保する方法として必要となっている。機械学習モデルは、さまざまな異なる本番システムで活用されるため、MLOpsは、さまざまな環境やさまざまなシナリオの中で要件を満たすことができるようにするために不可欠なものとなっている。
02.jpg
上のシンプルな図は、機械学習モデルがクラウド環境にデプロイされ、アプリケーションに取り込まれる様子を表している。この基本的なシナリオでは、MLOpsが克服に役立つ多くの問題が発生する可能性がある。本番アプリケーションは特定のクラウド環境に依存しているため、MLモデルを開発したデータサイエンティストがアクセスできないレイテンシー要件が存在する。モデルのライフサイクルを運用化することで、モデルについて深い知識を持つデータサイエンティストやエンジニアが、特定の本番環境で発生する問題を特定し、トラブルシューティングすることが可能になる。
機械学習モデルは、使用される本番アプリケーションとは異なる環境でトレーニングされるだけでなく、本番アプリケーションで使用されるデータとは異なる過去のデータセットに依存することも多い。MLOpsを使用することで、モデルの開発担当者からアプリケーションレベルで作業する担当者まで、データサイエンスチーム全体が情報や支援を共有し、要求する手段を持つことができる。データと市場が変化する速度が速いため、特定の機械学習モデルに依存するようになるすべての主要な利害関係者と貢献者間の摩擦を可能な限り少なくすることが不可欠である。
ソフトウェア2.0への移行をサポート
ソフトウェア2.0とは、ソフトウェア・アプリケーションを強化するAIモデルの記述において、人工知能がますます中心的な役割を果たすようになるにつれて、ソフトウェア開発がパラダイム・シフトを経験するという考え方である。ソフトウェア1.0では、プログラマーは特定のプログラミング言語(Python、C++など)を使って明示的な命令を記述する。ソフトウェア2.0は、はるかに抽象的である。人間は入力データを提供し、パラメーターを設定するが、ニューラルネットワークは非常に複雑であるため、人間が理解するのは難しい。典型的なネットワークには、結果に影響を与える数百万の重みが含まれている(時には数十億、数兆)。
DevOpsは、プログラマーが言語を使用して指示する特定の命令に依存するソフトウェア1.0を中心に構築されたが、さまざまな異なるアプリケーションを強化する機械学習モデルのライフサイクルを考慮することはなかった。MLOpsは、ソフトウェア開発を管理するプロセスが、開発中のソフトウェアと共に変化する必要性に対処する。ソフトウェア2.0がコンピュータベースの問題解決の新しい標準となるにつれ、モデルのライフサイクルを管理するための適切なツールとプロセスを持つことが、新しいテクノロジーへの投資を左右することになる。Milvusは、ソフトウェア2.0への移行をサポートし、MLOpsでモデルのライフサイクルを管理するために構築されたオープンソースのベクトル類似性検索エンジンです。
03.jpg
MilvusでAIを大規模に運用する
Milvusはベクトルデータ管理プラットフォームであり、1兆スケールの巨大なベクトルデータセットの保存、クエリ、更新、保守に特化して作られている。このプラットフォームは、ベクトル類似検索を強化し、Faiss、NMSLIB、Annoyなど、広く採用されているインデックスライブラリと統合することができる。非構造化データをベクトルに変換するAIモデルとMilvusを組み合わせることで、新薬開発、生体認証分析、レコメンデーションシステムなど、さまざまなアプリケーションを構築することができる。
ベクトル類似性検索は、非構造化データのデータ処理と分析に最適なソリューションであり、ベクトルデータは中核的なデータタイプとして急速に台頭しています。Milvusのような包括的なデータ管理システムは、以下のような様々な方法でAIの運用を促進します:
モデルトレーニングのための環境を提供することで、開発のより多くの側面が一箇所で行われるようにし、チーム間のコラボレーションやモデルガバナンスなどを促進する。
Python、Java、Goなどの一般的なフレームワークをサポートする包括的なAPIセットを提供し、一般的なMLモデルの統合を容易にする。
ブラウザ上で動作するJupyterノートブック環境であるGoogle Colaboratoryとの互換性により、Milvusをソースコードからコンパイルし、基本的なPython操作を実行するプロセスを簡素化。
自動機械学習(AutoML)機能により、実世界の問題に機械学習を適用する際のタスクを自動化することが可能です。AutoMLは効率改善につながるだけでなく、専門家でなくても機械学習モデルやテクニックを活用することを可能にします。
Milvusは、現在構築中の機械学習アプリケーションや将来のアプリケーションの計画にかかわらず、ソフトウェア2.0とMLOpsを念頭に置いて作成された柔軟なデータ管理プラットフォームです。Milvusの詳細や貢献については、Githubでプロジェクトをご覧ください。コミュニティへの参加や質問については、Slackチャンネルにご参加ください。もっとコンテンツが欲しいですか?以下のリソースをご覧ください:
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word