DVC пишет «данные не изменились». А все ли файлы он видит?
Как проверить .dvcignore до обучения модели: сопоставить правила с входами загрузчика и не потерять незаменимые файлы при пересборке пайплайна.
Перед обучением модели полезно проверить не только версию датасета, но и то, какие файлы вообще попали под контроль DVC. Сообщение о неизменности данных ещё не доказывает, что инструмент учитывает каждый файл в папке.
Сначала определите, что должно входить в набор
В документации .dvcignore описан простой механизм: совпавшие с шаблоном пути исключаются при обходе проекта. Их содержимое не сохраняется в кеше DVC. Это удобно для временных файлов, но требует внимания к обучающим примерам.
Представим учебный набор для классификации изображений: data/train/cat.jpg и data/train/dog.jpg. Вы ждёте, что обе картинки войдут в одну версию. Если правило исключает dog.jpg, файл может оставаться на диске и быть доступным вашему Python-коду, хотя DVC не будет учитывать его изменения. Два инструмента смотрят на одну папку с разными правилами.
Проверьте конкретные пути
В копии проекта с тестовыми данными начните с команды ниже. Она проверяет правила игнорирования, не запускает обучение и не требует менять рабочий датасет. Пути замените своими, сохранив кавычки там, где есть пробелы.
dvc check-ignore --details data/train/cat.jpg data/train/dog.jpgПо справке команды, подробный вывод связывает путь с файлом правил, номером строки и шаблоном. Сопоставьте его с ожидаемым составом набора. Если вывода для пути нет, проверьте также правильность самого пути: отсутствие совпадения не подтверждает наличие файла или его участие в обучении.
Затем сравните перечень входных файлов вашего загрузчика с теми данными, которые собираетесь версионировать. В учебном примере вопрос конкретный: dog.jpg должен быть входом модели или это случайная копия? Решение принимает разработчик; правило игнорирования само этого не знает.
Почему нельзя сразу нажимать «пересобрать»
Документация предупреждает: добавление шаблона для существующего выхода может выглядеть для DVC как удаление файлов. Кроме того, dvc repro и dvc exp run способны удалить игнорируемые файлы внутри управляемых каталогов. Если этап пайплайна их не создаёт, восстановить их может быть неоткуда.
Поэтому сначала сохраните отдельно незаменимые файлы, проверьте правило в тестовой копии и только затем решайте, менять ли состав версии. Не создавайте .dvcignore внутри каталога зависимости или выхода: правила для него размещают выше по дереву.
Критерий готовности прост: ожидаемый состав датасета совпадает с фактическими входами обучения и правилами DVC. Чистый статус полезен после этой сверки. До неё он отвечает на более узкий вопрос — изменилось ли то, что инструменту разрешено видеть.
Комментарии
Войдите, чтобы оставить комментарий
Пока нет комментариев. Начните обсуждение.