継続的インテグレーションでAI/MLワークフローを強化しましょう。テストの自動化、コード品質の向上、モデル開発の効率化が容易になります。
継続的インテグレーション(CI)は、ソフトウェア開発の基本的なプラクティスである。 コードの変更を中央の共有リポジトリにマージする。大規模なアップデートを定期的に統合するのではなく、CIは以下のことを推奨している。 自動化されたビルドとテストシーケンスのトリガーとなる、小規模で定期的なコミットを推奨している。ダイナミックな 人工知能(AI)と 機械学習(ML)のダイナミックな分野では、この実践は の要である。 機械学習オペレーション(MLOps)の要である。これは、コード、データ、またはハイパーパラメータへの変更が、既存のハイパーパラメータを破壊しないことを保証するものである。 ハイパーパラメータを変更しても、既存のシステム またはモデルのパフォーマンスを低下させないようにする。
CIの第一の目的は、エラーをできるだけ早期にdetect することである。 と呼ばれる概念だ。このプロセスは、コードベースを管理するためにGitのようなバージョン管理システムに大きく依存している。 のようなバージョン管理システムに大きく依存している。開発者が変更をプッシュすると、CIサーバー-たとえば GitHub Actions、 GitLab CIや JenkinsのようなCIサーバーが自動的に などが自動的に新しい環境を立ち上げます。
MLプロジェクトの場合、この環境では のようなコンテナ化ツールを使うことが多い。 Dockerのようなコンテナ化ツールを使うことが多い。CI パイプラインは一連のチェックを実行する:
MLのCIの重要な側面は、コードはエラーなく実行されるがモデルの知性が低下する「サイレント・エラー」を防ぐことである。 を防ぐことである。これは モデルテストをCIワークフローに直接統合することである。
次のPython スニペットは、CIスクリプトがどのように YOLO11モデルをロードし、そのパフォーマンス・メトリクスが特定の コードをマージする前に、そのパフォーマンスメトリックが特定の基準を満たしていることを保証します。
from ultralytics import YOLO
# Load the model to be tested (e.g., a newly trained artifact)
model = YOLO("yolo11n.pt")
# Run validation on a standard dataset (e.g., coco8.yaml for quick CI checks)
results = model.val(data="coco8.yaml")
# Extract the mAP50-95 metric
map_score = results.box.map
# Assert performance meets the minimum requirement for the pipeline to pass
print(f"Current mAP: {map_score}")
if map_score < 0.30:
raise ValueError("Model performance regression detected! mAP is too low.")
継続的インテグレーションの適用は、信頼性が譲れない業界では不可欠である。
CI/CDとして一緒に語られることが多いが、継続的インテグレーションと以下のものを区別することが重要である。 継続的デプロイメント
ビジョンAI製品のライフサイクルを加速する合理的なパイプラインを形成します。 ビジョンAI製品のライフサイクルを加速する合理的なパイプラインを形成します。 品質とセキュリティの高水準を維持しながら