機械学習のための継続的インテグレーション/継続的デリバリー入門

Machine Learning のための CI/CD

Ravi Bhadauria

Machine Learning Engineer

SDLC の概要

  • SDLC:Software Development Life Cycle(ソフトウェア開発ライフサイクル)
  • ソフトウェア開発を最初から最後まで体系的に扱う手法です
  • SDLCワークフローとは、特定の目標を達成するための一連の手順を指します:
    • ビルド:コードのコンパイルやパッケージ化、依存関係の解決を行う工程です
    • テスト:コードベースの機能性、品質、信頼性を確認する工程です
    • デプロイ:特定の環境でソフトウェアを利用可能にする工程です

  SDLCワークフローの各ステップの依存関係を示す図。最初にビルド、続いてテストとデプロイが行われます。

Machine Learning のための CI/CD

機械学習における SDLC

  • 機械学習の開発は複雑で時間がかかることがあります
    • モデルは動的に進化するアルゴリズムです
    • データエンジニアリングが重要です
  • 継続的インテグレーション/継続的デリバリーはエラーを減らし、高品質な ML ソフトウェアの迅速な提供を実現します
  • 効率的な機械学習と実験に不可欠です
1 https://cloud.google.com/blog/products/ai-machine-learning/making-the-machine-the-machine-learning-lifecycle
Machine Learning のための CI/CD

CI/CD とは?

  • 継続的インテグレーション(CI):コードの変更を頻繁にビルド、テストし、共有リポジトリにマージする手法です
  • 開発者が統合の問題を早期に発見し、一貫性のあるコードベースを維持できます
  • 継続的デリバリー(CD):コードの変更をいつでも本番環境にデプロイできる状態を保ちますが、手動承認が必要です
  • 継続的デプロイメント(CD):手動介入なしでコードの変更を自動的に本番環境にデプロイします
Machine Learning のための CI/CD

機械学習における CI/CD

  • データ依存関係:データのバージョン管理と運用戦略
  • 実験:ハイパーパラメータチューニングの自動化
  • モデルのバージョン管理:コラボレーションの改善
  • テストのパラダイム:従来の機能テストや単体テストを超える範囲
  • 継続的デプロイメントの課題:モデルの提供、監視、更新における複雑さ
Machine Learning のための CI/CD

このコースの範囲

機械学習プロジェクトの各ステップを示す図。データ準備、モデル開発、モデル評価とチューニングの各ステップを強調しています。

Machine Learning のための CI/CD

まとめ

  • ソフトウェア開発ライフサイクル(SDLC)のワークフローには、コードのビルド、テスト、デプロイが含まれます
  • 継続的インテグレーション(CI)により、頻繁なコードのマージと問題の早期発見が可能になります
  • 継続的デリバリー(CD)では、手動承認を経てコードの変更をデプロイできます
  • 継続的デプロイメント(CD)は、手動介入なしでコードのデプロイを自動化します
  • 機械学習における CI/CD は次のことを可能にします
    • データのバージョン管理
    • モデルの構築とバージョン管理
    • 実験の自動化
    • テスト
    • デプロイ
Machine Learning のための CI/CD

練習しましょう!

Machine Learning のための CI/CD

Preparing Video For Download...