いくつかのグローバル セクターは、機械学習 (ML) により多くの投資を開始しています。
ML モデルは、専門家のチームによって最初に立ち上げて運用することができますが、最大の障害の XNUMX つは、得られた知識を次のモデルに移してプロセスを拡張できるようにすることです。
モデルのライフサイクル管理に関連するプロセスを改善および標準化するために、機械学習モデルを作成するチームで MLOps 手法がますます使用されています。
現在入手可能な最高の MLOps ツールとプラットフォームのいくつかと、それらがツール、開発者、および手続きの観点から機械学習を容易にする方法について詳しく知るために、読み続けてください。
MLOpsとは何ですか?
機械学習モデルのポリシー、規範、およびベスト プラクティスを作成する手法は、「機械学習操作」または「MLOps」として知られています。
MLOps は、戦略なしに多くの時間とリソースを投資するのではなく、構想から展開までの ML 開発のライフサイクル全体が綿密に文書化され、最良の結果を得るために管理されることを保証することを目的としています。
MLOps の目標は、ML オペレーターと開発者にとって機械学習開発をよりスケーラブルにする方法でベスト プラクティスを体系化し、ML モデルの品質とセキュリティを強化することです。
MLOps は、技術開発のより専門的な分野に DevOps の原則を適用することに成功しているため、MLOps を「機械学習の DevOps」と呼ぶ人もいます。
これは MLOps について考えるのに便利な方法です。DevOps と同様に、チームやツール間での知識の共有、コラボレーション、ベスト プラクティスが重視されるからです。
MLOps は、開発者、データ サイエンティスト、および運用チームに協力するためのフレームワークを提供し、その結果、最も強力な ML モデルを作成します。
MLOps ツールを使用する理由
MLOps ツールは、ML チームの幅広い業務を実行できますが、多くの場合、プラットフォーム管理と個々のコンポーネント管理の XNUMX つのグループに分けられます。
一部の MLOps 製品は、データやメタデータの管理など、単一のコア機能のみに焦点を当てていますが、他のツールはより包括的な戦略を採用し、ML ライフサイクルのいくつかの側面を制御する MLOps プラットフォームを提供します。
スペシャリストを探している場合でも、より広範なツールを探している場合でも、チームがこれらの ML 開発領域を管理するのに役立つ MLOps ソリューションを探してください。
- データの取り扱い
- 設計とモデリング
- プロジェクトと職場の管理
- ML モデルのデプロイと継続的な維持
- 通常、フルサービスの MLOps プラットフォームによって提供される、最初から最後までのライフサイクル管理。
MLOps ツール
1. MLフロー
機械学習のライフサイクルは、オープンソース プラットフォーム MLflow によって制御され、中央モデルの登録、デプロイ、および実験が含まれます。
MLflow は、個人でも集団でも、あらゆる規模のチームで使用できます。 ライブラリはツールには関係ありません。
任意のプログラミング言語と機械学習ライブラリで利用できます。
機械学習アプリケーションのトレーニング、デプロイ、および管理をより簡単にするために、MLFlow は、以下を含む多くの機械学習フレームワークと対話します。 TensorFlow そしてパイトーチ。
さらに、MLflow は、既存の機械学習プログラムまたはライブラリに含めることができる使いやすい API を提供します。
MLflow には、実験の追跡と計画を容易にする XNUMX つの主要な機能があります。
- MLflow Tracking – 機械学習コードのパラメーター、バージョン、メトリック、アーティファクトをログに記録し、その後結果を表示して対比するための API と UI
- MLflow プロジェクト – 機械学習コードを再利用可能で再現可能な形式にパッケージ化して、本番環境に転送したり、他のデータ サイエンティストと共有したりします
- MLflow モデル – さまざまな ML ライブラリから、さまざまなモデル サービスおよび推論システムにモデルを維持および展開します。
- MLflow モデル レジストリ – モデルのバージョン管理、ステージ遷移、注釈など、MLflow モデルの全ライフスパンの共同管理を可能にする中央モデル ストア。
2. クベフロー
Kubernetes の ML ツールボックスは Kubeflow と呼ばれます。 Docker コンテナーのパッケージ化と管理は、 機械学習システム.
機械学習ワークフローの実行オーケストレーションと展開を簡素化することで、機械学習モデルのスケーラビリティを促進します。
これは、さまざまな ML ニーズに合わせて調整された補完的なツールとフレームワークの慎重に選択されたグループを含むオープンソース プロジェクトです。
長い ML トレーニング タスク、手動実験、再現性、および DevOps の課題は、Kubeflow Pipelines で処理できます。
トレーニング、パイプライン開発、およびメンテナンスを含む、機械学習のいくつかの段階 Jupyterノートブック、Kubeflow は専門的なサービスと統合を提供します。
AI ワークロードのライフタイムの管理と追跡、および機械学習 (ML) モデルとデータ パイプラインの Kubernetes クラスターへのデプロイが簡単になります。
それは提供しています:
- SDK を利用してシステムとやり取りするためのノートブック
- 実行、ジョブ、および実験を制御および監視するためのユーザー インターフェイス (UI)
- 毎回再構築することなく、エンド ツー エンドのソリューションを迅速に設計し、コンポーネントとパイプラインを再利用します。
- Kubeflow の主要コンポーネントとして、またはスタンドアロン インストールとして、Kubeflow Pipelines が提供されます。
3. データバージョン管理
機械学習プロジェクト向けのオープンソース バージョン管理ソリューションは、DVC またはデータ バージョン管理と呼ばれます。
どの言語を選択しても、これはパイプラインの定義を支援する実験的なツールです。
DVC は、コード、データのバージョン管理、および再現性を利用して、以前のバージョンの ML モデルで問題を発見したときに時間を節約するのに役立ちます。
さらに、DVC パイプラインを使用してモデルをトレーニングし、チーム メンバーに配布することもできます。 ビッグ データの編成とバージョン管理は DVC で処理でき、データは簡単にアクセスできる方法で保存できます。
いくつかの (限定的な) 実験追跡機能が含まれていますが、主にデータとパイプラインのバージョン管理と管理に焦点を当てています。
それは提供しています:
- ストレージに依存しないため、さまざまなタイプのストレージを使用できます。
- 追跡統計も提供します。
- ML ステージを DAG に結合し、パイプライン全体を最初から最後まで実行する事前構築済みの手段
- 各 ML モデルの開発全体は、そのコード全体とデータの来歴を使用して追跡できます。
- 実験の初期構成、入力データ、およびプログラム コードを忠実に保存することによる再現性。
4. 厚皮
Pachyderm は、DVC に似た、機械学習とデータ サイエンス用のバージョン管理プログラムです。
また、を使用して作成されたため、 DockerとKubernetes、任意のクラウド プラットフォームで機械学習アプリケーションを実行およびデプロイできます。
Pachyderm は、機械学習モデルに使用される各データを追跡してバージョン管理できることを保証します。
機械学習モデルの作成、配布、管理、監視に使用されます。 モデル レジストリ、モデル管理システム、および CLI ツールボックスがすべて含まれています。
開発者は、Pachyderm のデータ基盤を使用して機械学習ライフサイクルを自動化および拡張でき、再現性も保証されます。
厳格なデータ ガバナンス基準をサポートし、データ処理とストレージのコストを削減し、企業がデータ サイエンス イニシアチブをより迅速に市場に投入できるよう支援します。
5. ポリアクソン
Polyaxon プラットフォームを使用すると、機械学習プロジェクトと深層学習アプリケーションをライフサイクル全体にわたって複製および管理できます。
Polyaxon はツールをホストおよび管理でき、任意のデータ センターまたはクラウド プロバイダーに配置できます。 最も一般的な深層学習フレームワークをすべてサポートする Torch、Tensorflow、MXNet など。
オーケストレーションに関しては、Polyaxon を使用すると、CLI、ダッシュボード、SDK、または REST API を介してタスクとテストをスケジュールすることで、クラスターを最大限に活用できます。
それは提供しています:
- 今すぐオープンソース版を使用できますが、企業向けの選択肢も含まれています。
- 実行オーケストレーションを含む完全なライフサイクルをカバーしますが、それ以上のことができます。
- テクニカル リファレンス ドキュメント、入門ガイドライン、学習資料、マニュアル、チュートリアル、変更ログなど、十分に文書化されたプラットフォームです。
- 実験インサイト ダッシュボードを使用すると、各最適化実験を監視、追跡、評価することができます。
6. 彗星
Comet は、実験とモデルを追跡、対比、説明、改善するメタ機械学習のプラットフォームです。
すべての実験を XNUMX か所で表示して比較できます。
あらゆる機械学習タスク、コードが実行される場所、あらゆる機械学習ライブラリで機能します。
Comet は、グループ、個人、学術機関、企業、および実験をすばやく視覚化し、作業を合理化し、実験を実施したいすべての人に適しています。
データ サイエンティストとチームは、自己ホスト型およびクラウドベースのメタ機械学習プラットフォームである Comet を使用して、実験とモデルを追跡、明確化、改善、比較できます。
それは提供しています:
- チーム メンバーがタスクを共有するための多くの機能が用意されています。
- 他のテクノロジーとのリンクを簡単にするいくつかの統合があります
- 現在の ML ライブラリでうまく機能する
- ユーザー管理に気を配る
- コード、ハイパーパラメーター、メトリック、予測、依存関係、およびシステム メトリックの比較を含む、実験の比較が有効になります。
- サンプルを視覚化できる視覚、音声、テキスト、および表形式のデータ用の個別のモジュールを提供します。
7. オプトゥナ
Optuna は、機械学習と深層学習の両方だけでなく、他の分野にも適用できる自律的なハイパーパラメーター最適化のためのシステムです。
これには、選択 (またはリンク) できるさまざまな最先端のアルゴリズムが含まれており、多数のコンピューターにトレーニングを簡単に分散でき、魅力的な結果の視覚化を提供します。
PyTorch、TensorFlow、Keras、FastAI、sci-kit-learn、LightGBM、XGBoost などの一般的な機械学習ライブラリがすべて統合されています。
見込みがないと思われるサンプルを迅速に削減することで、顧客がより迅速に結果を得ることができる最先端のアルゴリズムを提供します。
Python ベースのアルゴリズムを使用して、理想的なハイパーパラメータを自動的に検索します。 Optuna は、元のコードを変更することなく、多くのスレッドにわたって並列化されたハイパーパラメーター検索を促進します。
それは提供しています:
- クラスターおよび単一のコンピューター (マルチプロセス) (マルチノード) での分散トレーニングをサポートします。
- 収束を高速化する (そして使用する計算量を減らす) ためのいくつかのトリミング手法をサポートしています。
- スライス プロット、コンター プロット、平行座標など、さまざまな強力な視覚化機能があります。
8. ケドロ
Kedro は、データ サイエンス プロジェクト用に更新および保守できるコードを作成するための無料の Python フレームワークです。
ソフトウェア エンジニアリングのベスト プラクティスから機械学習コードにアイデアをもたらします。 Python は、このワークフロー オーケストレーション ツールの基盤です。
ML プロセスをよりシンプルかつ正確にするために、再現可能で保守可能なモジュール式のワークフローを開発できます。
Kedro は、モジュール性、責任の分離、バージョン管理などのソフトウェア エンジニアリングの原則を機械学習環境に組み込みます。
Cookiecutter Data Science に基づいて、共通の適応可能なプロジェクト フレームワークを提供します。
複数のファイル システムとファイル形式でデータを保存およびロードするために使用される多数の単純なデータ コネクタは、データ カタログによって管理されます。 これにより、機械学習プロジェクトがより効果的になり、データ パイプラインの構築がより簡単になります。
それは提供しています:
- Kedro では、分散または単独のマシン展開が可能です。
- パイプラインの抽象化を使用して、Python コードとワークフローの視覚化の間の依存関係を自動化できます。
- モジュール化された再利用可能なコードを使用することで、このテクノロジはさまざまなレベルでのチーム コラボレーションを促進し、コーディング環境の生産性を向上させます。
- 主な目標は、保守可能なデータ サイエンス プログラミングを作成することにより、Jupyter ノートブック、XNUMX 回限りのスクリプト、およびグルー コードの欠点を克服することです。
9. BentoML
BentoML を使用すると、機械学習 API エンドポイントの構築が容易になります。
学習した機械学習モデルを本番環境に移行するための、典型的でありながら凝縮されたインフラストラクチャを提供します。
これにより、学習したモデルを本番環境で使用するためにパッケージ化し、任意の ML フレームワークを使用して解釈することができます。 オフライン バッチ サービスとオンライン API サービスの両方がサポートされています。
高性能モデル サーバーと柔軟なワークフローが BentoML の特徴です。
さらに、サーバーはアダプティブ マイクロバッチ処理を提供します。 モデルを整理し、展開手順を追跡するための統一されたアプローチは、UI ダッシュボードによって提供されます。
操作メカニズムはモジュール式で、構成は再利用可能であるため、サーバーのダウンタイムはありません。 これは、ML モデルを提供、整理、デプロイするための柔軟なプラットフォームです。
それは提供しています:
- 適応可能なモジュラー設計です。
- これにより、複数のプラットフォームにまたがる展開が可能になります。
- 水平スケーリングを自動的に処理することはできません。
- これにより、単一のモデル形式、モデル管理、モデル パッケージ、および高性能モデル サービスが可能になります。
10. セルドン
データ サイエンティストは、オープンソースの Seldon Core フレームワークを使用して、Kubernetes 上で大規模な機械学習モデルと実験を作成、展開、管理できます。
TensorFlow、sci-kit-learn、Spark、R、Java、および H2O は、サポートされているツールキットのほんの一部です。
また、Kubeflow および RedHat の OpenShift とも連携します。 Seldon コアは、機械学習モデル (ML モデル) または言語ラッパー (Python、Java などの言語) を本番環境の REST/GRPC マイクロサービスに変換します。
機械学習プロセスを改善するための最高の MLOps ツールの XNUMX つがこれです。
Seldon Core を使用すると、ML モデルをコンテナ化し、使いやすさとセキュリティを簡単にテストできます。
それは提供しています:
- モデルのデプロイは、カナリア デプロイなどのいくつかの代替手段を使用して簡単に行うことができます。
- 特定の予測が行われた理由を理解するには、モデルの説明を使用します。
- 問題が発生した場合は、アラート システムを使用して生産モデルを監視します。
まとめ
MLOps は、機械学習の運用を改善するのに役立ちます。 MLOps を使用すると、デプロイを高速化し、データ収集とデバッグを簡素化し、エンジニアとデータ サイエンティスト間のコラボレーションを改善できます。
ニーズに最適な MLOps ツールを選択できるように、この記事では 10 の一般的な MLOps ソリューションを調べました。そのほとんどはオープンソースです。
コメントを残す