この言語は機械翻訳であり、人による確認は行われていません。

人工知能 · 解説記事

機械学習モデルの訓練、最適化、デプロイ方法

公開:

要点

機械学習モデルは3つの広い段階で構築されます。勾配降下法などのアルゴリズムを使用してラベル付きデータで訓練する段階、ハイパーパラメータチューニングを通じた最適化と保留されたテストセットに対する検証、そして本番環境へのデプロイメント(API、バッチジョブ、またはエッジ組み込みサービスとして)です。各段階に続いて継続的な監視が行われ、パフォーマンスが低下した場合に再訓練をトリガーすることができます。

この版は原文(English)の機械翻訳です。 原文を読む

スパムフィルターから大規模言語モデルまで、あらゆる機械学習システムは、ユーザーに到達する前に同じ幅広いアークを経ます。データが準備され、そのデータに対してモデルが訓練され、そのパフォーマンスが測定され調整され、最後に本番環境にリリースされて継続的に監視されます。クラウドプロバイダーとエンジニアリングチームはこのアークをMLライフサイクルと呼び、モデルが小さな分類器であっても数十億パラメータのネットワークであっても、その仕組みはほぼ同じです。

訓練:モデルがデータから学習する方法

Google Cloudのアーキテクチャドキュメンテーションによると、ライフサイクルはデータ処理から始まります。チームは探索的データ分析を実行してデータの構造を理解し、それをクリーンアップし、訓練、検証、テストセットに分割し、データをモデルに適した形式にするための特徴エンジニアリングを行います。この準備の後でのみ、データサイエンティストはアルゴリズムを実装し、訓練を開始します。

ニューラルネットワークの場合、訓練はGeeksforGeeksで説明されているように2つの関連した技術に依存しています。ネットワークが入力データを処理して予測を行うフォワードパスと、その予測が真のラベルからどのくらい離れているかを測定する損失関数です。バックプロパゲーションはその後、連鎖律を使用して層ごとに、その誤差にどの程度各内部パラメータが寄与したかを計算します。勾配降下法はそれらの計算された勾配を使用して、損失を低減する方向に各パラメータを調整します。このフォワードパス/バックワードパス/更新サイクルは、モデルが損失関数の最小値に収束するまで多くのエポック全体で繰り返されます(GeeksforGeeksによると)。

最適化:モデルのチューニングと検証

訓練だけでは使用可能なモデルを保証しません。Google Cloudのドキュメンテーションは、チームが実装されたアルゴリズムのハイパーパラメータチューニングを実施して最高のパフォーマンスを得ることを述べており、学習率、バッチサイズ、またはエポック数などの設定を調整します。これはモデルが独自に学習するパラメータではなく、Googleの開発者向けドキュメンテーション(MLプロジェクトの管理に関する)は、この実験段階がチームが異なる特徴の組み合わせ、ハイパーパラメータの値、およびモデルアーキテクチャをテストする場所であり、多くの場合、実行可能な組み合わせを見つける前に数百の実験を実行することを追加しています。

候補モデルが存在したら、訓練中にモデルが見ていないデータである保留されたテストセットで評価され、品質メトリクスを生成します。IBMはこのステップを、精度と公平性などのメトリクスを使用して見たことのないデータのパフォーマンスを評価することとして説明しています。その後、モデルはベースラインに対して検証されます。Google Cloudのドキュメンテーションは、これがモデルの予測パフォーマンスがデプロイメントに進むことを許可される前に定義されたしきい値より優れていることを確認することを述べています。

デプロイ:モデルを本番環境に導入

デプロイメントは、検証されたモデルが実データに対する予測を開始するポイントです。Snowflakeのドキュメンテーションはモデルデプロイメントを、検証されたモデルの管理されたリリースとして定義しており、その依存関係と推論ロジックとともに、バージョニング、実行、監視、および必要に応じてロールバックが可能な本番環境へのリリースです。

Google CloudとSnowflakeはどちらも比較可能なデプロイメントパターンセットを説明しており、以下に要約されています。

一般的なMLデプロイメントパターン
パターン動作方法典型的な用途
オンライン/リアルタイムマイクロサービスはREST APIを通じてモデルを公開し、低遅延で同期的に予測を返します不正検出、推奨
バッチモデルはスケジュールに従って、またはパイプラインイベントによってトリガーされて、大規模なレコードセットをスコアリングしますレポート、定期的なスコアリングジョブ
サーバーレス/非同期モデルはイベントトリガーで実行され、結果は即座ではなく後で取得されますスパイキーまたは長時間実行されるワークロード
エッジ/組み込みモデルは中央サーバーではなくローカルまたはモバイルデバイスで直接実行されますオフライン動作、データローカリティのニーズ

Snowflakeは各デプロイメントスタイルはトレードオフを伴うことを述べており、リアルタイム配信は遅延、可用性、スケーリングの慎重な処理を要求しますが、バッチシステムは管理しやすいですがスコアリングスケジュール実行の頻度によって制限されます。エッジデプロイメントは遅延を低減し、データをローカルに保ちますが、多くの分散デバイス全体で実行されているモデルバージョンを追跡することをより困難にします。

監視、ドリフト、再訓練

デプロイメントはプロセスの終わりではありません。IBMは、継続的な監視が本番環境でのモデルパフォーマンスを追跡し、精度ドリフトなどの問題を検出し、迅速な介入を可能にし、更新されたデータで再訓練をトリガーできるアラートを生成することを述べています。Snowflakeは同様に、ロールバック計画(以前のモデルバージョンへの戻しのための事前定義されたトリガーと所有権構造)とともに、監視とドリフト検出をコアデプロイメント責任として列挙しています。新しいモデルがパフォーマンスを低下させた場合に備えてです。

Google Cloudのドキュメンテーションはこれを成熟度スペクトラムとしてフレーミングしています。最も自動化されていないレベルでは、すべてのステップ(データ準備からデプロイメントまで)は手動であり、リリースが少ない初期段階プロジェクトで典型的です。より成熟したセットアップはデータとモデルを検証し、ドリフトを検出する自動化されたパイプラインを追加し、最も自動化されたセットアップは継続的なインテグレーションと配信を統合して、実験、テスト、デプロイメント、監視が接続された、ほぼ自動化された段階として実行されます。

ライフサイクルの背後にあるツール

MLOpsとして知られるこの慣行のIBMの概要は、チームが各段階で一般的に依存するツールのカテゴリをリストしており、TensorFlowやPyTorchなどの機械学習フレームワーク(モデルの構築と訓練)、バージョン管理用のGit、JenkinsやGitLab CI/CDなどのCI/CDプラットフォーム(パイプラインステップの自動化)、およびKubeflowやMLflowなどの専用MLOpsプラットフォーム(AWS、Azure、IBM Cloudなどのクラウドインフラストラクチャでの訓練、デプロイメント、監視のオーケストレーション)です。

MLOpsは、機械学習モデルを構築および実行するためのアセンブリラインを作成するために設計された一連の慣行です。

— IBM

よくある質問

機械学習モデルの訓練と最適化の違いは何ですか?
訓練は、モデルのパラメータをデータに適合させるプロセスであり、通常はフォワードパス、損失計算、勾配ベースの更新を通じて行われます。最適化とは、ハイパーパラメータ(学習率またはバッチサイズなど、訓練前に選択された設定)をチューニングして、訓練されたモデルのパフォーマンスを改善することを指します。Google Cloudのドキュメンテーションによると。
ハイパーパラメータチューニングは実際に何を調整するのですか?
訓練中にデータから学習されない設定(学習率、バッチサイズ、または訓練エポック数など)を調整し、最高のパフォーマンスを持つモデルを生成する組み合わせを見つけることを目的としています。Googleの開発者向けドキュメンテーションによると。
モデルは本番環境にどのようにデプロイされますか?
検証されたモデルは、その依存関係と推論ロジックとともにパッケージングされ、Snowflakeのドキュメンテーションによると、リアルタイムAPI、バッチスコアリングジョブ、サーバーレストリガー、またはエッジデバイスの組み込みモデルとして本番環境にリリースされます。
デプロイされたモデルはなぜ起動後に監視が必要なのですか?
本番環境のデータパターンは時間とともに変化し、IBMがドリフトと呼ぶ現象であるモデルの精度を低下させます。継続的な監視はこの低下を検出し、更新されたデータで再訓練をトリガーしてパフォーマンスを復元することができます。
MLライフサイクル全体で一般的に使用されるツールは何ですか?
IBMは、訓練用のTensorFlowやPyTorchなどのフレームワーク、バージョン管理用のGit、パイプライン自動化用のJenkinsまたはGitLab CI/CD、およびクラウドプラットフォーム上での訓練とデプロイメントのオーケストレーション用のKubeflowまたはMLflowをリストしています。

出典

  1. Google Cloud — MLOps: Continuous delivery and automation pipelines in machine learning
  2. IBM — What is MLOps?
  3. Snowflake — What Is Model Deployment in Machine Learning?
  4. Google Developers — ML development phases
  5. GeeksforGeeks — How Does Gradient Descent and Backpropagation Work Together?

この記事は人工知能で作成され、公開前に出典の自動チェックを通過しています。誤りを見つけたら訂正を依頼してください。 訂正・反論を依頼する · 制作方針

関連記事