ホームページ  >  記事  >  テクノロジー周辺機器  >  MLOps と DevOps: 違いは何ですか?

MLOps と DevOps: 違いは何ですか?

WBOY
WBOY転載
2023-04-11 20:37:192914ブラウズ

Machine Learning Operations (略して MLOps) は、機械学習 (ML) エンジニアリングの重要な側面であり、ML モデルを運用環境に提供し、保守および監視するプロセスを簡素化および高速化することに重点を置いています。 MLOps には、データ サイエンティスト、DevOps エンジニア、IT 専門家など、さまざまなチーム間のコラボレーションが含まれます。

MLOps は、組織が AI および機械学習ソリューションを作成し、品質を向上させるのに役立ちます。 MLOps を採用すると、機械学習エンジニアとデータ サイエンティストが協力して、継続的インテグレーションと継続的デプロイ (CI/CD) プラクティスを実装することでモデルのパフォーマンスを向上させることができます。 ML モデルの適切な監視、ガバナンス、検証を統合することで、ML モデルの開発プロセスを加速します。

MLOps と DevOps: 違いは何ですか?

DevOps とは何ですか?

DevOps は、開発と運用の概念を組み合わせたもので、通常、アプリケーション開発チームと IT 運用チームが別々に関係するタスクを実行するための協調的なアプローチを説明します。最も広い意味で、DevOps は、組織内のこれら (および他の) チーム間のコミュニケーションとコラボレーションの向上を促進する哲学です。

最も狭い意味では、DevOps は、反復的なアプリケーション開発、自動化、およびプログラム可能なインフラストラクチャの展開と保守を可能にするプラクティスの導入を指します。これには、開発者、システム管理者、その他のチーム メンバー間の信頼構築やつながりなど、職場文化の変化も含まれます。 DevOps はテクノロジーをビジネス目標に合わせて調整し、ソフトウェア配信チェーン、職務機能、サービス、ツール、ベスト プラクティスを変革できます。

MLOps と DevOps: 主な違い

MLOps と従来の DevOps の主な違いをいくつか示します。

開発

開発の概念はモデルごとに異なるものを指し、CI/CD パイプラインは若干異なります。

DevOps:

  • 通常、コードはインターフェイスまたはアプリケーションを作成します。
  • デプロイおよび一連のチェックを使用してテストする前に、コードを実行可能ファイルまたはアーティファクトにラップします。
  • 理想的には、この自動化されたサイクルは、最終製品の準備が整うまで継続されます。

MLOps:

  • このコードにより、チームは機械学習モデルを構築またはトレーニングできます。
  • 出力アーティファクトには、データ入力を受け取って推論を生成できるシリアル化されたファイルが含まれます。
  • 検証には、トレーニングされたモデルのパフォーマンスをテスト データに対してチェックすることが含まれます。
  • このサイクルも、モデルが指定されたパフォーマンスしきい値に達するまで継続する必要があります。

バージョン管理

DevOps:

  • バージョン管理は通常、コードとアーティファクトの変更のみを追跡します。
  • 追跡するメトリクスはほとんどありません。

MLOps:

  • MLOps パイプラインには通常、追跡する要素がさらにあります。 ML モデルの構築とトレーニングには、実験ごとにさまざまなメトリクスとコンポーネントを追跡する必要がある反復的な実験サイクルが含まれます (後の監査にとって重要です)。
  • 追跡するその他のコンポーネントには、トレーニング データセット、モデル構築コード、モデル アーティファクトなどがあります。
  • メトリクスには、ハイパーパラメータとモデルのパフォーマンス メトリクス (エラー率など) が含まれます。

再利用性

DevOps:

  • DevOps パイプラインは再現性に重点を置いていますプロセス。
  • チームは、特定のワークフローに従わなくても、プロセスを組み合わせて使用​​できます。

MLOps:

  • MLOps パイプラインは、同じワークフローを繰り返し適用します。プロジェクト間で共通のフレームワークを使用すると、一貫性が向上し、チームは使い慣れたプロセスから開始できるため、より早く進捗を進めることができます。
  • プロジェクト テンプレートは構造を提供し、各ユースケースの固有のニーズを満たすカスタマイズを可能にします。
  • 一元的なデータ管理を使用して組織のデータを統合し、検出とトレーニングのプロセスを加速します。一元化への一般的なアプローチには、単一の真実の情報源とデータ ウェアハウスが含まれます。

継続的モニタリング

モニタリングは DevOps と MLOps の両方にとって不可欠ですが、その理由は若干異なります。

DevOps:

  • サイト信頼性エンジニアリング (SRE) はここ数年のトレンドであり、開発から開発まですべてを重視しています。本番展開監視ソフトウェアの必要性。
  • ソフトウェアは ML モデルのように劣化しません。

MLOps:

  • 機械学習モデルは急速に劣化するため、継続的な監視と更新が必要です。
  • 実稼働環境の状況は、モデルの精度に影響を与える可能性があります。実稼働環境にデプロイされた後、モデルは現実世界からの新しいデータに基づいて予測の生成を開始します。このデータは常に変化および適応しており、モデルのパフォーマンスが低下します。
  • MLOps は、継続的なモニタリングとモデルの再トレーニングを容易にする手順を組み込むことで、アルゴリズムが本番環境に対応した状態を維持できるようにします。

インフラストラクチャ

DevOps と MLOps はどちらもクラウド テクノロジーに大きく依存していますが、運用要件は異なります。

DevOps は、次のようなインフラストラクチャに依存します。

  • コードとしてのインフラストラクチャ (IaC)
  • サーバーの構築
  • CI/CD 自動化ツール

MLOps は次のインフラストラクチャに依存しています:

  • ディープ ラーニングと機械学習フレームワーク
  • 大規模なデータセット用のクラウド ストレージ
  • ディープ ラーニングおよびコンピューティング集約型の ML モデル用の GPU

DevOps と MLOps のトレンド

DevOps と MLOps を推進する主要なトレンドのいくつかを次に示します。

GitOps

DevOps ワークフローの新たな進化として、GitOps はインフラストラクチャを制御および自動化するための新しいパラダイムです。 Kubernetes のパラダイムにより、開発者と運用チームは Git を使用して Kubernetes クラスターを管理し、コンテナ化されたアプリケーションを配信できるようになります。運用チームと開発チームに Git ワークフローを実装すると、開発者は Git プル リクエストを活用してソフトウェアのデプロイメントとインフラストラクチャを管理できるようになります。

GitOps は既存の開発ツールを統合し、CI/CD を通じてクラウドネイティブおよびクラスターベースのアプリケーションを管理します。 Git リポジトリを唯一の信頼できる情報源として使用し、クラウドネイティブ アプリケーションを自動的にデプロイ、監視、保守します。

GitOps は、Kubernetes でクラスターを実装および維持する方法です。継続的な配信と展開により、開発者は増分リリースを通じてソフトウェアをより迅速に構築、テスト、展開できるようになります。 Kubernetes の継続的インテグレーションとランタイム パイプラインは、ファイルの読み取りと書き込み、コンテナー リポジトリの更新、Git からのコンテナーのロードができる必要があります。 GitOps は、バージョン管理、リアルタイム監視、構成変更アラートを通じて企業がインフラストラクチャを管理するのに役立ちます。

合成データ

合成データとは、実際のイベントから収集されたものではなく、人為的に生成された情報です。このアルゴリズムは、運用テスト データ セットおよび実稼働テスト データ セットの代用として使用される合成データを生成します。合成データセットは、数学的モデルの検証や機械学習モデルのトレーニングにも使用できます。

合成データの利点は次のとおりです。

  • 機密データや規制されたデータの使用に関連する制限を最小限に抑えます。
  • 実際のデータでは利用できない特定の要件や条件に基づいてデータをカスタマイズします。
  • DevOps チームがソフトウェアの品質とパフォーマンスをテストするためのデータを生成します。

コードレスの機械学習と人工知能

機械学習には、モデルのトレーニングをセットアップして処理するためのコンピューター コードが含まれることがよくありますが、常にそうであるとは限りません。コードレス機械学習は、ML アプリケーションが時間のかかるプロセスを実行する必要をなくすプログラミング アプローチです。

CodelessML を使用すると、専門家がシステム ソフトウェアを開発する必要がなくなります。また、展開と実装がより簡単かつ低コストになります。機械学習中にドラッグ アンド ドロップ入力を使用すると、次のようなトレーニングが簡素化されます。

  • 結果を評価する。
  • トレーニング データをドラッグ アンド ドロップします。
  • 予測レポートを作成します。
  • プレーン テキスト クエリを使用します。

#コードレス ML により、開発者は機械学習アプリケーションに簡単にアクセスできるようになりますが、高度で微妙なプロジェクトに代わるものではありません。このアプローチは、社内のデータ サイエンス チームを維持する資金が不足している中小企業に適しています。

TinyML

TinyML は、機械学習および人工知能モデル開発への新しいアプローチです。これには、スマートカー、冷蔵庫、電力メーターに電力を供給するマイクロコントローラーなど、ハードウェア制約のあるデバイス上でモデルを実行することが含まれます。この戦略はアルゴリズムを高速化するため、サーバー上でデータをやり取りする必要がないため、これらのユースケースに最適です。これは大規模サーバーでは特に重要であり、ML 開発プロセス全体を高速化できます。

TinyML プログラムを IoT エッジ デバイスで実行すると、

  • エネルギー消費の削減など、多くの利点があります。
  • レイテンシを短縮します。
  • ユーザーのプライバシーは保証されます。
  • 帯域幅要件を削減します。

TinyML を使用すると、計算プロセスが完全にローカルであるため、プライバシーが強化されます。消費電力と帯域幅が少なくなり、処理のためにデータを中央の場所に送信する必要がないため、待ち時間が短くなります。このイノベーションを活用している業界には、農業や医療などがあります。通常、TinyML アルゴリズムが組み込まれた IoT デバイスを使用して、収集されたデータを使用して現実世界のイベントを監視および予測します。

#結論

この記事では、MLOps と DevOps の主な違いを紹介します。

  • #開発 - DevOps パイプラインは以下に焦点を当てます。 MLOps は効果的な機械学習モデルの提供に重点を置きながら、ソフトウェア製品の新しいバージョンを開発します。
  • バージョン管理 – DevOps は主にバイナリとソフトウェア アーティファクトの追跡に焦点を当てますが、MLOps はハイパーパラメータやモデルのパフォーマンスなどの他の要素を追跡します。
  • 再利用性 – DevOps と MLOps は両方とも、再利用可能なプロセスとパイプラインの作成に努めていますが、再利用性を実現するために異なる戦略を使用します。
  • 継続的なモニタリング - モニタリングは DevOps では重要ですが、モデルとデータのドリフトによってモデルのパフォーマンスが低下する可能性があるため、MLOps ではさらに重要です。

最後に、近い将来に DevOps と MLOps を変える重要なトレンドをいくつか紹介します。この記事が、新しくエキサイティングな開発エコシステムの中で自分の位置を見つけるのに役立つことを願っています。

以上がMLOps と DevOps: 違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。