用語集

継続的インテグレーション(CI)

継続的インテグレーションでAI/MLワークフローを強化。テストを自動化し、コード品質を向上させ、モデル開発を効率化します。

CI(Continuous Integration:継続的インテグレーション)とは、開発者がコードの変更を中央のリポジトリに頻繁にマージし、その後に自動ビルドとテストを実行するソフトウェア開発手法である。CIの主な目的は、統合の問題を早期に検出し、コード品質を向上させ、開発ワークフローを合理化することである。人工知能(AI)と機械学習(ML)の文脈では、CIは従来のコードチェックを超えて、データ、モデル、パイプライン全体のパフォーマンスの検証を含み、機械学習オペレーション(MLOps)の重要な構成要素を形成している。

継続的インテグレーションの主要原則

CIプロセスは、自動化と頻繁な反復の基礎の上に構築されている。開発者は、Gitのようなバージョン管理システムを使って、小規模で頻繁な変更を共有リポジトリにプッシュする。それぞれのプッシュは、いくつかの重要なステップを実行する自動化されたワークフロー(パイプライン)をトリガーする:

  • 自動ビルド:システムが自動的にコードをコンパイルし、正しく統合されるようにする。MLプロジェクトの場合、これはDockerのようなコンテナ化ツールを使って環境をセットアップすることを含むかもしれない。
  • 自動テスト:一連のテストは、新しい変更を検証するために実行される。これには、コードロジックの単体テスト、コンポーネントの相互作用の統合テスト、データ検証やモデル評価のようなMLに特化したテストが含まれる。
  • 迅速なフィードバック・ループ:パイプラインのいずれかのステップが失敗した場合、開発チームに即座に通知されます。これにより、問題が複雑化してメインコードベースに統合される前に、迅速に対処することができます。

機械学習のためのCI(CI4ML)

機械学習プロジェクトにCIを適用すると、ユニークな課題が発生する。コードだけでなく、MLシステムにはデータと学習済みモデルが含まれ、これらのバージョン管理と検証も必要です。Ultralytics YOLOモデルを含むようなMLプロジェクトのための効果的なCIパイプラインには、追加のステップが含まれます:

  • データの検証:新しいデータが正しいか、スキーマに準拠しているか、データセットに偏りがないかなどを自動的にチェックする。Great Expectationsのようなツールがこれに使える。
  • モデルテスト:性能の劣化をチェックするためのテストの実行。これには、標準化された検証データセット上で、新しいモデルのパフォーマンス・メトリクスをベースライン・バージョンと比較することが含まれる。
  • トレーニングパイプラインの検証: モデルのトレーニングプロセス自体が再現可能で効率的であることを確認する。これは、データセット管理とトレーニングワークフローを合理化するUltralytics HUBのようなプラットフォームを使用して管理することができます。

実世界での応用

  1. 自律走行開発: 自律走行車用の物体検出モデルに取り組んでいるチームは、CIパイプラインを使用している。開発者がモデルの夜間の歩行者検出能力を向上させるコードを提出すると、パイプラインが自動的に起動する。パイプラインはユニットテストを実行し、YOLO11モデルの軽量版をテストデータセット上で再トレーニングし、そのmAPを評価する。精度が落ちず、すべてのテストがパスすれば、その変更はマージが承認される。これらのワークフローを自動化するには、GitHub Actionsや Jenkinsのような一般的なCIツールがよく使われる。
  2. 医療画像解析: 医療画像の腫瘍検出のために設計されたシステムにおいて、データサイエンティストは、ロバスト性を向上させるために新たな拡張データを追加するかもしれない。CIパイプラインは新しいデータ形式と分布を検証する。その後、事前に訓練されたモデルを使用して検証を実行し、「ゴールデンデータセット」上でのモデルの予測値が一貫性を保つことを確認します。このプロセスは、ヘルスケアにおけるAIにとって重要な高水準の信頼性を維持するのに役立つ。

継続的インテグレーションと継続的デリバリー/デプロイメント(CD)の比較

CIは密接に関連しているが、継続的デリバリーや継続的デプロイメント(CD)とは異なる。

  • 継続的インテグレーション(CI):コード変更の頻繁な統合と自動テストに重点を置く。アウトプットは、次のステージに進む準備ができた検証済みのビルドである。UltralyticsはCIを使用して、すべてのプルリクエストをマージする前にテストします。
  • 継続的デリバリー(CD):検証されたすべての変更をステージング環境または本番環境にリリースするために自動的に準備することで、CIを拡張します。ただし、本番環境への最終的なモデルのデプロイには手動での承認が必要です。このアプローチは、アトラシアンなどのガイドで詳しく説明されています。
  • 継続的デプロイメント(CD):検証済みのすべての変更を、人手を介さずに本番環境に直接デプロイすることで、さらに一歩進めます。これは、ソフトウェアリリースライフサイクルにおける最高レベルの自動化を意味します。

CIとCDのプラクティスは共に、強固なMLOps戦略の基礎となるものであり、最初の実験からデプロイ、継続的なモデル監視に至るまで、機械学習システムの開発と運用を一元化することを目的としている。

Ultralyticsコミュニティに参加する

AIの未来に参加しませんか。世界のイノベーターとつながり、協力し、成長する

今すぐ参加する
クリップボードにコピーされたリンク