用語集

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

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

Ultralytics HUB で
を使ってYOLO モデルをシンプルにトレーニングする。

さらに詳しく

継続的インテグレーション(CI)は、開発者がコードの変更を中央のリポジトリに頻繁にマージし、その後自動ビルドとテストを実行するソフトウェア開発手法である。このプロセスは、AIや機械学習(ML)プロジェクトを含む最新のソフトウェア開発において、バグを迅速に特定して対処し、ソフトウェアの品質を向上させ、新しいソフトウェアのアップデートを検証してリリースするまでの時間を短縮するのに役立つため、非常に重要である。コード変更を継続的に統合することで、チームは、プロジェクトが終わるまで変更をマージするのを待つ場合によく起こる「統合地獄」を避けることができる。

継続的インテグレーションの主な側面

継続的インテグレーションには、いくつかの重要なプラクティスが含まれる。まず、開発者は1日に何度も共有リポジトリにコードをコミットする。各コミットは自動ビルドによって検証され、チームは問題を早期に発見することができる。自動テストはCIのもう一つの基礎であり、ユニットテスト、統合テスト、その他の自動テストが含まれ、ソフトウェアがアップデート後も機能することを保証する。継続的なフィードバックは不可欠であり、開発者に変更の影響に関する洞察を即座に提供する。この迅速なフィードバックループは、問題を迅速に解決し、高いレベルのコード品質を維持するのに役立つ。

AI/MLにおける継続的インテグレーションの利点

AIとMLの文脈では、継続的インテグレーションは多くの利点を提供する。モデルの学習と検証を自動化することで開発ワークフローを合理化し、新しいコードが既存のシステムとシームレスに統合されることを保証する。これは、モデルを新しいデータで頻繁に再トレーニングする必要があるMLプロジェクトでは特に重要である。CIは、モデルの精度、パフォーマンス、その他の重要なメトリクスをチェックするテストを自動的に実行することで、コードの品質を維持するのに役立つ。また、一貫性と透明性のある開発プロセスを提供することで、チームメンバー間のコラボレーションを促進する。CIは問題を早期に発見することで、開発サイクルの後半で大きな問題が発生するリスクを低減し、最終的にはより信頼性が高く堅牢なAI/MLシステムを実現します。

継続的インテグレーションと関連用語

継続的インテグレーションは強力なプラクティスであるが、継続的デリバリー(CD)や継続的デプロイメントのような他の関連概念と一緒に議論されることが多い。継続的デリバリーは、ソフトウェアをいつでも本番環境にリリースできるようにすることでCIを拡張するもので、多くの場合、すべての変更をテスト環境やステージング環境に自動的にデプロイする。継続的デプロイは、本番環境のパイプラインのすべての段階を通過したすべての変更を自動的に本番環境にリリースすることで、これをさらに一歩進めます。CIがビルドとテストの段階に重点を置くのに対して、CDと継続的デプロイはリリースとデプロイの段階に重点を置く。これらのプラクティスを合わせてCI/CDとして知られるパイプラインを形成し、AI/MLプロジェクトを含む最新のソフトウェア開発のベストプラクティスとなっている。

AI/MLにおける継続的インテグレーションの実世界での応用

継続的インテグレーションは、効率性と信頼性を高めるために、様々な実世界のAI/MLアプリケーションで使用されている。例えば、Ultralytics YOLO を使用した物体検出システムを開発している企業は、CIを使用して新しいコード変更を一連のパフォーマンスベンチマークに対して自動的にテストし、更新がモデルの精度や速度を低下させないことを保証するかもしれない。各コードのコミットは、検証データセット上でモデルを訓練し、平均平均精度(mAP)のようなそのパフォーマンスメトリクスを評価する自動ビルドプロセスをトリガーする。このアプローチにより、モデルの継続的な改善と信頼性が保証されます。

もう一つの例は、自然言語処理(NLP)の分野で、チームがセンチメント分析モデルに取り組んでいる場合である。CIを実装することで、すべてのコード変更は、センチメントを正確に分類するモデルの能力への影響を自動的にテストされます。これには、更新されたモデルをテストデータセット上で実行し、以前のバージョンとパフォーマンスを比較することが含まれる。これらのテストからの継続的なフィードバックは、チームが迅速に問題を特定し修正するのに役立ち、モデルが正確で効果的であることを保証します。

継続的インテグレーションのためのツールとプラットフォーム

いくつかのツールやプラットフォームが継続的インテグレーションをサポートしている。Jenkinsはオープンソースの自動化サーバーで、プロジェクトのビルド、デプロイ、自動化をサポートする何百ものプラグインを提供している。Travis CIも人気のある選択肢で、使いやすさとGitHubとの統合で知られている。GitLab CI/CDはGitLabに統合されており、CI/CDパイプラインのための包括的なソリューションを提供している。CircleCIは様々な言語やプラットフォームをサポートしており、様々なプロジェクトのニーズに柔軟に対応できる。GitHub Actionsは、GitHubリポジトリ内で直接ワークフローを自動化することができ、GitHubでホストされているプロジェクトにとって便利なオプションです。これらのツールは、チームがCIを効果的に実装し、AI/MLモデルが継続的にテストされ、改善されることを保証するのに役立ちます。さらに、Ultralytics HUBのようなプラットフォームをCIパイプラインに統合することで、モデルのトレーニングとデプロイを効率化し、開発プロセスの効率をさらに高めることができる。

すべて読む