Data Provenance
Происхождение данных — это запись о том, откуда они получены, кто с ними работал, на каких условиях и как они изменились до обучения модели. Разбираем PROV, применение и инструменты.
Происхождение данных — это документированная история набора данных: откуда он получен, кто его создал или собрал, на каких условиях лицензии или согласия, а также все преобразования, выполненные до передачи данных модели. В машинном обучении происхождение охватывает исходные изображения или тексты, выполненную для них разметку данных, очистку и этапы предварительной обработки данных, разбиение на выборки и версии наборов данных, а также использовавшие их запуски обучения. Благодаря этому каждый развёрнутый модельный артефакт можно связать с конкретными обучающими данными, на которых он был создан. Происхождение данных часто называют их цепочкой происхождения. Если эти понятия различают, цепочка описывает движение и преобразование данных в конвейерах и системах, а происхождение дополнительно указывает на источник, владельца и права на использование.
Модель W3C PROV#
В 2013 году W3C опубликовала PROV — семейство стандартов для представления происхождения данных. В нём любую историю описывают три типа сущностей: объекты, например файлы и наборы данных; действия, например разметка или обучение, использующие и создающие объекты; и агенты — люди, организации или программы, отвечающие за действия. Для набора данных компьютерного зрения запись формирует граф:
Зачем нужно знать происхождение данных#
В первую очередь происхождение данных помогает отлаживать системы и воспроизводить результаты. Когда точность падает или в промышленной среде появляется дрейф данных, инженер может определить, какая партия разметки, исходная камера или этап очистки вызвали проблему, и повторить обучение на точно тех же данных. Те же записи позволяют обнаружить смещение набора данных, например набор пешеходов, снятых только при дневном свете или в одной стране, и выявить отравление данных: если известен источник каждого примера, все примеры из скомпрометированного источника можно удалить.
Второй важный аспект — права. Инициатива по происхождению данных в 2023 году проверила более 1 800 текстовых наборов данных и обнаружила, что на популярных площадках у более чем 70% наборов не указаны лицензии, а лицензии более чем у 50% наборов классифицированы неверно. В анализе медицинских изображений записи о происхождении указывают, какая больница предоставила снимок, какое согласие или правовое основание разрешает его использование и были ли удалены идентификаторы. Организации обязаны предоставлять такие сведения в соответствии с законами о защите данных. По мере распространения в сети сгенерированных изображений и текстов отслеживание синтетических данных также помогает предотвратить коллапс модели, а Content Credentials встраивают сведения о происхождении непосредственно в медиафайлы.
Теперь этого требует регулирование. Закон ЕС об искусственном интеллекте обязывает поставщиков высокорисковых систем документировать процессы сбора данных и их происхождение, а поставщиков моделей ИИ общего назначения — публиковать сводную информацию об обучающих данных по шаблону, выпущенному Европейской комиссией в июле 2025 года.
Практическая фиксация происхождения данных#
Происхождение данных фиксируют на трёх уровнях. Документы для наборов данных, например Datasheets for Datasets, предложенные Тимнит Гебру и её коллегами в 2018 году, описывают мотивацию создания набора данных, его состав, процесс сбора, предварительную обработку и предполагаемое применение; с ними сочетаются карточки моделей, обученных на этом наборе. Средства контроля версий создают снимки наборов данных и идентифицируют файлы по хешу содержимого, чтобы модель могла ссылаться на неизменяемую версию набора данных. Инструменты для конвейеров создают события, отражающие происхождение данных по мере выполнения задач, и следуют открытым спецификациям, таким как OpenLineage.
Третий уровень — метаданные, сохранённые непосредственно в артефактах. Каждый запуск обучения Ultralytics YOLO записывает полную конфигурацию, включая путь к YAML с набором данных и настройки аугментации данных, в args.yaml в каталоге запуска. В сохранённой контрольной точке содержатся те же аргументы обучения, версия Ultralytics и дата сохранения:
from ultralytics import YOLO
# Загрузи контрольную точку: файлы весов Ultralytics содержат запись о запуске, в котором они были созданы
model = YOLO("yolo26n.pt")
ckpt = model.ckpt
# Набор данных и настройки, использованные при обучении, а также версия пакета и дата сохранения
print(ckpt["train_args"]["data"], ckpt["train_args"]["epochs"], ckpt["train_args"]["imgsz"])
print(ckpt["version"], ckpt["date"])Эта запись связывает веса модели со ссылкой на данные и настройками, на основе которых они были получены. На эти сведения опираются проверки прозрачности ИИ и управления ИИ. По завершении обучения Ultralytics удаляет состояние оптимизатора из best.pt, чтобы уменьшить размер файла, но сохраняет эти поля. Поэтому запись остаётся в файле, который развёртывают.










