Итерационный искусственный интеллект CML запускается только в дифференциальном подмножестве.

Вопрос или проблема

Я хотел бы внедрить некоторые элементы MLOps в свой репозиторий и присматриваюсь к CML от Iterative AI. Согласно тому, что я прочитал, это нечто вроде CI для ML, которое рассматривает изменения в данных как изменения в коде, чтобы автоматизировать обучение и т. д. в конвейере CI PR.

Сейчас я сохраняю несколько классификаторов в формате pickle в одном репозитории. Скажем, у меня есть Классификаторы A, B и C. Эти классификаторы были обучены на разных наборах данных (но в рамках одного проекта) и могут иметь разные скрипты для обучения. В кодовом репозитории, например, я могу видеть, что рабочий процесс CI запускает все модульные тесты, несмотря на то, что некоторые из них не изменились. Поэтому с подходом CML мне интересно, возможно ли обучить классификатор, если имеются изменения в коде/данных?

Спасибо!

.

Ответ или решение

Конечно, использование Iterative AI’s CML (Continuous Machine Learning) в вашем репозитории может значительно улучшить процессы MLOps, автоматизируя тренировки моделей на основе изменений в коде и данных, что называется CI для машинного обучения. Давайте подробнее рассмотрим, как именно вам можно это реализовать.

Факты
Iterative AI’s CML — это инструмент для обеспечения непрерывной интеграции (CI) в проектах машинного обучения. Эта концепция позволяет автоматизировать тренировки и оценку изменений прямо в pull request (PR), что повышает эффективность и повторяемость результатов. CML использует изменения в данных и коде как «триггеры» для автоматического исполнения тренировочных скриптов.

Основная идея
Ваша цель — адаптировать CI-подход для работы с машинами обучения, особенно с учетом того, что вы используете разные классификаторы (A, B и C), каждый из которых обучен на различных данных и имеет отдельные скрипты тренировок. При этом необходимо исключить повторные тренировки моделей, код и данные которых не изменились между коммитами.

Решение

  1. Настройка Git и DVC: Используйте DVC (Data Version Control) для управления версиями данных, аналогично тому, как Git управляет версионностью кода. Это позволит отслеживать изменения в данных так же, как и в коде.

  2. Проблема дифференциации: Для автоматизации тренировок на изменившихся данных можно использовать возможность CML по идентификации изменений. Например, с помощью dvc diff, вы можете определить какие именно части набора данных были изменены и определить необходимость переобучения только для тех моделей, которые зависят от этих измененных данных.

  3. Настройка тренировки: Для каждого классификатора создайте свой pipeline, который будет запускаться при обнаружении соответствующих изменений. Интегрируйте команды CML в ваш GitHub Actions или любой другой CI/CD инструментарий, чтобы только специфические классификаторы запускали тренировку.

  4. Автоматизация через CML: Используйте CML для отслеживания изменений и автоматического запуска соответствующих тренировочных скриптов. Это позволяет значительно ускорить процесс отклика на изменения и избегать необоснованных затрат ресурсов на обучение неизменно точных моделей.

Доказательства (Examples)
На примере использования GitHub Actions:

name: Model Training

on:
  pull_request:
    paths:
    - 'data/**'
    - 'models/A/**'
    - 'models/B/**'
    - 'models/C/**'

jobs:
  train-model-a:
    if: contains(github.event.head_commit.message, '[A]')
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Train Classifier A
        run: |
          dvc pull data/A
          python train_A.py

  train-model-b:
    if: contains(github.event.head_commit.message, '[B]')
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Train Classifier B
        run: |
          dvc pull data/B
          python train_B.py

Этот YAML файл настраивает CI pipeline, который запускается при изменениях в PR, а специфические модели обучаются только при изменении данных, затрагивающих эти модели.

Тон
Используя Iterative AI’s CML, вы получаете возможность гибко и эффективно управлять процессом обучения моделей, минимизируя временные и ресурсные затраты и позволяя вашей команде сосредоточиться на улучшении качества моделей, а не на рутинных задачах.

Оцените материал
Добавить комментарий

Капча загружается...