PyImageSearch опубликовал руководство по созданию воспроизводимого пайплайна машинного обучения с помощью DVC — инструмента для версионирования данных и моделей, который работает с Git. Автор Викрам Сингх показывает, как объединить несколько этапов, от предобработки данных до оценки модели, чтобы перезапускать их одной командой.
В качестве примера используется классический набор данных Iris. Исходный файл iris.csv сначала разделяется на обучающую и тестовую выборки в пропорции 80/20 с сохранением баланса классов. Затем обучается модель логистической регрессии, после чего проводится оценка, вычисляющая точность и формирующая отчёт о классификации. В руководстве указано, что весь проект использует всего три библиотеки: DVC 3.48.4, pandas 2.1.4 и scikit-learn 1.3.2.
Три этапа, связанные файлом конфигурации
Каждый этап описывается в файле dvc.yaml, где указывается команда для выполнения, файлы, от которых зависит этап, и результаты его работы. Выходные данные одного этапа служат входными для следующего. Таким образом, изменение набора данных перезапускает весь пайплайн, а изменение только скрипта обучения — лишь этапы обучения и оценки.
Эти зависимости фиксируются в файле dvc.lock, который записывает точное состояние пайплайна на момент выполнения. По словам автора, этот файл следует версионировать с помощью Git, что позволяет другому члену команды или серверу непрерывной интеграции воспроизвести результаты командами dvc pull и dvc repro. Если ничего не изменилось, DVC сообщает, что этапы актуальны, и не выполняет вычислений.
Инспекция и сравнение запусков
В руководстве представлены несколько команд для инспекции. dvc dag отображает граф этапов в виде схемы, dvc status показывает, какие зависимости изменились, а dvc diff сравнивает выходные данные с последней сохранённой версией. Для отслеживания производительности dvc metrics show отображает метрики последнего запуска, а dvc metrics diff сравнивает их между коммитами.
В представленном примере оценка на 30 тестовых образцах дала точность 0,9333. Автор отмечает, что та же логика позволяет отслеживать влияние изменения параметров или данных, выявляя как улучшения, так и регрессии.
В заключение руководство затрагивает дополнительные возможности. Гиперпараметры можно вынести в файл params.yaml, графики можно отслеживать как выходные данные, а новые этапы, такие как feature engineering или поиск гиперпараметров, можно добавлять в граф, не затрагивая остальные этапы. DVC затем пересчитает только затронутые части.





