Вступ до Continuous Integration/Continuous Delivery для машинного навчання

CI/CD для машинного навчання

Ravi Bhadauria

Machine Learning Engineer

Огляд SDLC

  • SDLC: Software Development Life Cycle
  • Системний підхід до розробки ПЗ від початку до кінця
  • Робочий процес SDLC — послідовність кроків для досягнення цілей:
    • Build: компіляція й/або пакування коду, розв'язання залежностей
    • Test: забезпечує функціональність, якість і надійність кодової бази
    • Deploy: робить ПЗ доступним у певному середовищі

  Граф залежностей кроків SDLC. Спочатку Build, далі test і deploy.

CI/CD для машинного навчання

SDLC у машинному навчанні

  • Розробка в машинному навчанні є складною й тривалою
    • Модель — алгоритм, що динамічно змінюється
    • Інженерія даних має велике значення
  • Continuous Integration/Continuous Delivery зменшує помилки й пришвидшує постачання якісного ML‑ПЗ
  • Критично важливо для ефективного ML та експериментів
1 https://cloud.google.com/blog/products/ai-machine-learning/making-the-machine-the-machine-learning-lifecycle
CI/CD для машинного навчання

Що таке CI/CD?

  • Continuous Integration (CI): практика частого збирання, тестування та злиття змін коду в спільний репозиторій
  • Дозволяє рано виявляти проблеми інтеграції та підтримувати узгоджену кодову базу
  • Continuous Delivery (CD): забезпечує можливість розгортати зміни в продакшн у будь‑який час, але потребує ручного затвердження
  • Continuous Deployment (CD): автоматично розгортає зміни коду в продакшн без ручного втручання
CI/CD для машинного навчання

CI/CD у машинному навчанні

  • Залежність від даних: версіонування та керування даними
  • Експерименти: автоматизація підбору гіперпараметрів
  • Версіонування моделей: краща співпраця
  • Парадигма тестування: виходить за межі класичних функціональних і модульних тестів
  • Виклики безперервного розгортання: складності у сервінгу моделей, моніторингу та оновленнях
CI/CD для машинного навчання

Межі цього курсу

Схема кроків ML‑проєкту з акцентом на Підготовку даних, Розробку моделі та Оцінювання й налаштування моделі.

CI/CD для машинного навчання

Підсумок

  • Робочий процес Software Development Life Cycle охоплює збирання, тестування й розгортання коду
  • Continuous Integration (CI) забезпечує часті злиття коду й раннє виявлення проблем
  • Continuous Delivery (CD) дає змогу розгортати зміни з ручним затвердженням
  • Continuous Deployment (CD) автоматизує розгортання без ручного втручання
  • CI/CD у Machine Learning дає змогу
    • Версіонування даних
    • Побудову моделей і версіонування моделей
    • Автоматизацію експериментів
    • Тестування
    • Розгортання
CI/CD для машинного навчання

Давайте потренуємось!

CI/CD для машинного навчання

Preparing Video For Download...