Утечка данных

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Объединение с Утечка данных в машинном обучении; ссылки)
 
Строка 1: Строка 1:
-
{{well|Статья написана с использованием LLM '''ChatGPT 5.6 Sol - xhigh''' и проверена участником [[Участник:Roman Iuкharev|Roman Iuкharev]] 09:43, 15 июля 2026 (MSD)}}
+
{{well|Статья объединена из материалов страниц [[Утечка данных]] и [[Утечка данных в машинном обучении]]. Исходные тексты написаны с использованием LLM '''GPT-5.6 Sol Hight''' и '''ChatGPT 5.6 Sol - xhigh''' и проверены участниками [[Участник:Aleksandra Ivanova|Aleksandra Ivanova]] и [[Участник:Roman Iuкharev|Roman Iuкharev]].}}
{{TOCright}}
{{TOCright}}
-
'''Утечка данных''' (англ. ''data leakage'') в [[Машинное обучение|машинном обучении]] — использование при построении модели информации, которая не была бы доступна в момент реального предсказания или должна была оставаться независимой при оценке качества. Утечка создаёт искусственную связь между обучением и проверкой, поэтому измеренная метрика может существенно завышать ожидаемое качество на новых данных.<ref name="kaufman">Kaufman S., Rosset S., Perlich C., Stitelman O. [https://dl.acm.org/doi/10.1145/2382577.2382579 Leakage in Data Mining: Formulation, Detection, and Avoidance] // ''ACM Transactions on Knowledge Discovery from Data''. 2012. Vol. 6, No. 4. Article 15.</ref>
+
'''Утечка данных''' (англ. ''data leakage'') в [[Машинное обучение|машинном обучении]] — использование при обучении, настройке или оценке модели информации, которая недоступна в момент реального предсказания либо должна оставаться независимой от процесса разработки. Утечка создаёт искусственную связь между обучением и проверкой, поэтому измеренная метрика перестаёт характеризовать качество на новых данных.<ref>Kaufman S., Rosset S., Perlich C., Stitelman O. Leakage in Data Mining: Formulation, Detection, and Avoidance // ACM Transactions on Knowledge Discovery from Data. 2012. Vol. 6, No. 4. Article 15. P. 1–21.</ref>
-
Утечка не обязательно означает, что целевая переменная была явно добавлена в признаки. Она возникает также при неправильном разбиении связанных объектов, вычислении статистик по всей выборке до [[Кросс-валидация|кросс-валидации]], выборе [[Гиперпараметр|гиперпараметров]] по тестовым данным, использовании будущих наблюдений во временном ряду или попадании тестовых заданий в обучающий корпус [[Большая языковая модель|большой языковой модели]]. Общий признак этих случаев — оценочная процедура получает информацию через канал, которого не будет в заявленном режиме применения.
+
Термин не следует смешивать с утечкой конфиденциальной информации в информационной безопасности. В машинном обучении речь идёт о нарушении условий вычислительного эксперимента: модель получает сведения о целевой переменной, будущих событиях, проверочных объектах или итоговой тестовой выборке.
 +
 
 +
Утечка отличается от [[Переобучение|переобучения]]. При переобучении модель слишком точно приспосабливается к случайным особенностям корректно сформированной обучающей выборки. При утечке неверно устроен сам эксперимент. Регуляризация способна ограничить сложность модели, но не исправляет признак, содержащий последствия целевого события. Увеличение объёма данных также не устраняет ошибку, если проверочные наблюдения продолжают влиять на обучение.
== Формальная постановка ==
== Формальная постановка ==
-
Пусть <tex>D_{\mathrm{train}}</tex> — обучающая выборка, <tex>D_{\mathrm{test}}</tex> — независимая тестовая выборка, а алгоритм обучения строит модель
+
Пусть <tex>D_{\mathrm{train}}</tex> — обучающая выборка, <tex>D_{\mathrm{test}}</tex> — независимая тестовая выборка, а алгоритм обучения <tex>\mathcal A</tex> строит модель <tex>\hat f=\mathcal A(D_{\mathrm{train}})</tex>.
-
:<tex>\hat f=\mathcal A(D_{\mathrm{train}}).</tex>
+
Её тестовый риск оценивается величиной <tex>\widehat R_{\mathrm{test}}=\frac{1}{|D_{\mathrm{test}}|}\sum_{(x_i,y_i)\in D_{\mathrm{test}}}L(y_i,\hat f(x_i))</tex>, где <tex>L</tex> — функция потерь.
-
Тестовый риск оценивается как
+
Эта оценка характеризует качество на новых объектах только тогда, когда тестовые данные не влияли на обучение, выбор признаков, архитектуры, гиперпараметров, порога решения и правил предварительной обработки.
-
:<tex>\widehat R_{\mathrm{test}}=\frac{1}{|D_{\mathrm{test}}|}\sum_{(x_i,y_i)\in D_{\mathrm{test}}}\ell(\hat f(x_i),y_i).</tex>
+
Если преобразование признаков имеет вид <tex>z=g(x;\hat\eta)</tex>, то параметры <tex>\hat\eta</tex>, например среднее, дисперсия, словарь, компоненты [[Метод главных компонент|PCA]] или правила заполнения пропусков, должны оцениваться только по разрешённой обучающей части. Использование параметров <tex>\hat\eta=h(D_{\mathrm{train}}\cup D_{\mathrm{test}})</tex> делает представление обучающих объектов зависимым от тестовой выборки.
-
Интерпретация этой величины как качества на новых объектах требует, чтобы тестовые данные не влияли на построение <tex>\hat f</tex>, выбор признаков, [[Гиперпараметр|гиперпараметров]], порогов и правил [[Предобработка данных|предобработки]]. Если преобразование признаков имеет вид
+
Для временных задач дополнительно задаётся момент прогноза <tex>t</tex>. Допустимый признак должен вычисляться только по информации, существовавшей к этому моменту. Если признак зависит от будущего события, целевой переменной или сведений, появившихся после <tex>t</tex>, он содержит утечку.
-
:<tex>z=g(x;\hat\eta),</tex>
+
Решающее значение имеет не название столбца, а время и способ возникновения информации. Итоговый диагноз допустим при анализе завершённых медицинских случаев, но недопустим в модели ранней диагностики. Статус возврата товара подходит для описания выполненных заказов, но не для прогноза возврата в момент покупки.
-
то параметры <tex>\hat\eta</tex> — например средние, дисперсии, словарь, [[Метод главных компонент|компоненты PCA]] или правила заполнения пропусков — должны оцениваться только по разрешённой обучающей части. Использование
+
== Утечка целевой переменной ==
-
:<tex>\hat\eta=h(D_{\mathrm{train}}\cup D_{\mathrm{test}})</tex>
+
'''Утечка целевой переменной''' возникает, когда один или несколько признаков прямо либо косвенно кодируют предсказываемый результат.
-
делает представление обучающих объектов зависимым от тестовой выборки и нарушает независимость оценки.
+
Наиболее очевидный случай — присутствие самой метки среди признаков. На практике чаще встречаются её замаскированные копии:
-
Следует различать '''утечку при обучении''' и '''несоответствие режима применения'''. В первом случае запрещённая информация попадает в процедуру построения или выбора модели. Во втором признак может быть честно известен в собранном наборе, но отсутствовать или вычисляться иначе при эксплуатации. Для метрики последствия сходны: проверка моделирует более лёгкую задачу, чем реальная.
+
* служебный код, присвоенный после наступления события;
 +
* дата закрытия обращения;
 +
* сумма фактического убытка;
 +
* результат ручной проверки;
 +
* назначенное после диагноза лечение;
 +
* признак начала процедуры взыскания;
 +
* итоговая сумма возврата;
 +
* пропуск, возникающий только после определённого исхода.
-
== Основные виды утечки ==
+
Такие поля могут иметь нейтральные названия, но их значения появляются только после того, как результат уже известен. Модель не прогнозирует событие, а распознаёт его последствия.
-
{| class="wikitable"
+
Особенно опасны агрегаты без временной границы. Среднее число просрочек клиента, вычисленное по всей истории, может включать периоды после рассматриваемой кредитной заявки. Сам столбец выглядит как обычная характеристика клиента, хотя часть его значения относится к будущему.
-
! Вид
+
-
! Канал утечки
+
-
! Пример
+
-
|-
+
-
| Утечка целевой переменной
+
-
| Признак прямо или косвенно кодирует ответ
+
-
| В прогнозе госпитализации используется код процедуры, назначенной после госпитализации
+
-
|-
+
-
| Контаминация разбиений
+
-
| Один объект или его близкий дубликат встречается в разных частях
+
-
| Кадры одного видео случайно распределены между обучением и тестом
+
-
|-
+
-
| Утечка [[Предобработка данных|предобработки]]
+
-
| Преобразование обучается до разбиения или на всех фолдах сразу
+
-
| Отбор признаков по полной выборке перед кросс-валидацией
+
-
|-
+
-
| Утечка при выборе модели
+
-
| Проверочная часть многократно используется для настройки
+
-
| Гиперпараметры выбираются по тому же тесту, которым затем отчитываются
+
-
|-
+
-
| Временная утечка
+
-
| При прогнозировании доступна информация из будущего
+
-
| Центрированное скользящее среднее включает наблюдения после момента прогноза
+
-
|-
+
-
| Групповая утечка
+
-
| Связанные объекты одной сущности попадают в разные части
+
-
| Записи одного пациента присутствуют и в обучении, и в тесте
+
-
|-
+
-
| Контаминация языковой модели
+
-
| Тестовые задания или их решения входят в предобучение, дообучение либо данные предпочтений
+
-
| Публичный бенчмарк с ответами скопирован в веб-корпус
+
-
|}
+
-
Границы между видами не всегда однозначны. Например, дубликат тестового документа в обучающем корпусе одновременно является контаминацией разбиений и каналом запоминания ответа.
+
Поиск утечки нельзя свести к анализу корреляций. Сильная связь с целью может быть как полезным прогнозным сигналом, так и следствием нарушения временной или причинной последовательности. Для каждого признака необходимо установить источник, момент появления и доступность в рабочей системе.
-
== Утечка целевой переменной ==
+
== Загрязнение обучающей и проверочной выборок ==
-
'''Утечка цели''' (''target leakage'') возникает, когда признак содержит сведения о <tex>y</tex>, недоступные в момент предсказания. Наиболее очевидный случай — сама целевая переменная или её детерминированное преобразование присутствует среди признаков. Чаще утечка скрывается в последовательности бизнес-процесса:
+
'''Загрязнение выборок''', или '''контаминация''', означает, что сведения о проверочных объектах влияют на построение модели. Для этого необязательно передавать алгоритму их метки. Достаточно вычислить по полному набору параметры предварительной обработки.
-
* признак регистрируется после события, которое требуется предсказать;
+
При стандартизации признак преобразуется по формуле <tex>z=(x-\mu)/\sigma</tex>. Если среднее <tex>\mu</tex> и стандартное отклонение <tex>\sigma</tex> рассчитаны до разделения данных, распределение проверочной выборки уже повлияло на представление обучающих объектов.
-
* агрегат рассчитан с использованием всего периода, включая будущее;
+
-
* идентификатор категории присваивается на основании результата;
+
-
* пропуск или код состояния появляется только после наступления цели;
+
-
* экспертное решение, принятое с учётом исхода, используется как вход модели.
+
-
Для поиска такой утечки недостаточно изучить корреляции. Требуется восстановить временную и причинную последовательность получения каждого признака: кто его создаёт, в какой момент, по каким исходным данным и будет ли он доступен в рабочей системе до выдачи прогноза.
+
Особенно сильное смещение возникает при отборе признаков по всему набору. Если тысячи переменных сначала сравниваются с целевой переменной, а затем выбранные признаки проверяются с помощью кросс-валидации, каждая проверочная часть уже участвовала в их выборе. Высокая метрика может отражать случайные корреляции, обнаруженные благодаря использованию всего набора.<ref>Ambroise C., McLachlan G. J. Selection Bias in Gene Extraction on the Basis of Microarray Gene-Expression Data // Proceedings of the National Academy of Sciences. 2002. Vol. 99, No. 10. P. 6562–6566.</ref>
-
Высокое качество само по себе не доказывает утечку, но неожиданно сильный одиночный признак, почти нулевая ошибка или резкое падение качества после переноса по времени являются поводом для аудита.
+
К обучаемой предварительной обработке относятся:
-
=== Численный пример ===
+
-
Рассмотрим условную выборку из 200 кредитов, из которых 40 закончились дефолтом. Среди признаков оказался индикатор начала процедуры взыскания, который в действительности формируется уже после исхода кредита. Модель, опирающаяся на этот признак, при оценке на имеющейся таблице дала 38 истинно положительных, 4 ложноположительных, 156 истинно отрицательных и 2 ложноотрицательных ответа. Тогда
+
* заполнение пропусков;
 +
* масштабирование;
 +
* кодирование категорий;
 +
* построение текстового словаря;
 +
* отбор признаков;
 +
* понижение размерности;
 +
* удаление выбросов по статистикам выборки;
 +
* балансировка классов;
 +
* обучение векторных представлений.
-
:<tex>{\rm Accuracy}=\frac{38+156}{200}=0{,}97,\qquad {\rm Recall}=\frac{38}{40}=0{,}95,\qquad {\rm Precision}=\frac{38}{42}\approx0{,}905.</tex>
+
Каждая такая операция является частью алгоритма. При кросс-валидации она должна заново настраиваться внутри каждой обучающей части.
-
В рабочей системе значение этого индикатора в момент выдачи прогноза ещё неизвестно. Если вместо него подставлять ноль, та же модель может отнести все 200 случаев к классу без дефолта: точность составит <tex>160/200=0{,}80</tex>, но полнота по дефолтам станет равна нулю. Поэтому высокая исходная точность не свидетельствовала о способности предсказывать будущие дефолты.
+
Практический способ сохранить правильный порядок — объединить преобразования и модель в единый [[Конвейер обработки данных|конвейер]]. Метод <code>fit</code> вызывается только на обучающей части текущего разбиения, после чего уже настроенные преобразования применяются к проверочной части.
-
Утечка влияет не только на итоговую метрику. Такой признак может оказаться первым по важности, изменить выбранный класс модели и сместить подбор гиперпараметров в пользу алгоритма, который особенно эффективно использует недоступный сигнал.
+
Отсутствие целевой переменной в преобразовании не гарантирует отсутствия утечки. Среднее, дисперсия, частоты категорий и структура главных компонент также содержат сведения о распределении проверочных объектов.
-
== Разбиение данных и дубликаты ==
+
== Временная утечка ==
-
Случайное разбиение корректно только тогда, когда наблюдения достаточно независимы и одинаково распределены относительно будущего применения. Если несколько строк относятся к одной сущности, разбиение выполняют по группам:
+
'''Временная утечка''' возникает, когда модель использует информацию, появившуюся позже момента прогноза. Она характерна не только для временных рядов: естественный порядок событий существует в кредитовании, медицине, торговле, промышленном мониторинге и анализе поведения пользователей.
-
* все визиты одного пациента помещают в одну часть;
+
Случайное разделение может поместить будущие наблюдения в обучение, а прошлые — в проверку. Тогда модель оценивается в более лёгких условиях, чем условия реального применения.
-
* все кадры одного ролика или снимки одного объекта не разделяют;
+
-
* варианты одного текста, аугментированные изображения и синтетические копии наследуют часть исходного объекта;
+
-
* данные одного пользователя, устройства, магазина или географической зоны группируют, если обобщение на новые группы является целью.
+
-
Точные дубликаты находят хешированием нормализованного содержимого. Для почти одинаковых объектов применяют перцептивные хеши изображений, сравнение n-грамм, MinHash, расстояния между эмбеддингами и предметно-ориентированные ключи. Дедупликацию желательно выполнять до окончательного разбиения, сохраняя происхождение производных объектов.
+
При прогнозе спроса на январь нельзя обучаться на данных февраля того же года. При оценке риска новой кредитной заявки нельзя использовать профиль клиента, пересчитанный после завершения кредита.
-
Важно согласовать разбиение с постановкой. Если модель будет предсказывать новые события для уже известных пользователей, допустима одна схема; если требуется работа с полностью новыми пользователями — нужна групповая проверка. Один и тот же набор может давать разные честные протоколы для разных сценариев применения.
+
Утечка возникает и внутри признаков. Центрированное скользящее среднее включает будущие значения. Средний объём продаж за текущую неделю неизвестен в её начале. Агрегат по последним тридцати дням допустим только тогда, когда все эти дни предшествуют моменту прогноза.
-
== Предобработка и отбор признаков ==
+
Корректное временное разбиение сохраняет причинный порядок: модель обучается на прошлом и проверяется на более позднем периоде. Применяются фиксированная временная граница, расширяющееся окно или скользящее окно.
-
К обучаемой предобработке относятся стандартизация, заполнение пропусков, кодирование категорий, построение словаря, отбор признаков, понижение размерности, балансировка классов и обучение представлений. Каждая такая операция является частью алгоритма и должна обучаться только на тренировочной части текущего разбиения.
+
Между обучающим и проверочным интервалами иногда оставляют зазор. Он необходим, если окна признаков, метки или наблюдения около границы перекрываются.
-
Неправильная последовательность:
+
== Утечка между связанными объектами ==
-
<pre>
+
Случайное разбиение предполагает достаточную независимость наблюдений. Во многих наборах это предположение нарушается.
-
оценить преобразование на всех данных
+
-
преобразовать все данные
+
-
выполнить кросс-валидацию модели
+
-
</pre>
+
-
Корректная последовательность внутри каждого фолда:
+
Один пациент может быть представлен несколькими обследованиями, пользователь — несколькими действиями, документ — несколькими фрагментами, устройство — серией измерений. Если записи одной сущности попадают и в обучение, и в проверку, модель способна запомнить её устойчивые особенности.
-
<pre>
+
Такая оценка показывает качество распознавания уже встречавшихся объектов, а не перенос на новые.
-
для каждого разбиения train_fold, validation_fold:
+
-
оценить преобразование только на train_fold
+
-
преобразовать train_fold и validation_fold
+
-
обучить модель на преобразованном train_fold
+
-
оценить на преобразованном validation_fold
+
-
</pre>
+
-
Особенно сильное смещение возникает при отборе признаков по связи с целью до кросс-валидации. В исследовании экспрессии генов было показано, что отбор на всей выборке, а затем кросс-валидация уже выбранных признаков приводит к оптимистической оценке; отбор должен повторяться внутри каждого обучающего фолда.<ref name="ambroise">Ambroise C., McLachlan G. J. [https://doi.org/10.1073/pnas.102102699 Selection Bias in Gene Extraction on the Basis of Microarray Gene-expression Data] // ''Proceedings of the National Academy of Sciences''. 2002. Vol. 99, No. 10. P. 6562–6566.</ref>
+
Та же проблема возникает с дубликатами и производными объектами. Два соседних кадра видеоролика могут почти не отличаться. Фрагменты одного сигнала сохраняют общий фон. После аугментации исходное изображение и его изменённая копия не должны попадать в разные выборки.
-
Практический способ сохранить порядок операций — объединить преобразования и модель в единый [[Конвейер обработки данных|конвейер]], метод <code>fit</code> которого вызывается заново внутри каждого фолда. Документация scikit-learn отдельно рекомендует <code>Pipeline</code> как средство предотвращения утечки тестовых данных в обучаемые преобразования.<ref name="sklearn">[https://scikit-learn.org/stable/common_pitfalls.html Common Pitfalls and Recommended Practices] // Документация scikit-learn.</ref>
+
Разделение выполняется по независимым группам:
-
== Кросс-валидация и выбор модели ==
+
* пациентам;
 +
* пользователям;
 +
* документам;
 +
* устройствам;
 +
* видеороликам;
 +
* временным сессиям;
 +
* исходным файлам.
-
Обычная k-блочная кросс-валидация может оценить фиксированную процедуру. Если по тем же результатам выбираются гиперпараметры, признаки или архитектура, минимальная наблюдавшаяся ошибка становится оптимистически смещённой: из множества шумных оценок выбирается наиболее удачная.
+
Точные дубликаты можно искать по хешам нормализованного содержимого. Для близких объектов применяются перцептивные хеши изображений, сравнение n-грамм, MinHash, расстояния между векторными представлениями и предметно-ориентированные идентификаторы.
-
Для независимой оценки применяют '''вложенную кросс-валидацию''':
+
Схема разделения определяется будущим применением. Если модель должна работать с новыми событиями известных пользователей, допустимо разделение событий. Если требуется перенос на новых пользователей, тестовая выборка не должна содержать сущности, встречавшиеся при обучении.
-
# внешний цикл откладывает фолд для оценки всей процедуры;
+
== Утечка при выборе модели ==
-
# внутренний цикл на оставшихся данных выбирает гиперпараметры и выполняет предобработку;
+
-
# выбранная внутренняя процедура переобучается на обучающей части внешнего фолда;
+
-
# внешний фолд используется один раз для оценки;
+
-
# результаты усредняются по внешним фолдам.
+
-
Моделирование и оценивание нельзя считать разделёнными, если один и тот же внешний фолд используется для исправления признаков, выбора случайного зерна или ручного перебора вариантов. Исследования показывают, что кросс-валидационная оценка после выбора модели по тем же фолдам может иметь существенное смещение; внутренний и внешний уровни должны быть разделены.<ref name="varma">Varma S., Simon R. [https://doi.org/10.1186/1471-2105-7-91 Bias in Error Estimation When Using Cross-validation for Model Selection] // ''BMC Bioinformatics''. 2006. Vol. 7. Article 91.</ref><ref name="cawley">Cawley G. C., Talbot N. L. C. [https://www.jmlr.org/papers/v11/cawley10a.html On Over-fitting in Model Selection and Subsequent Selection Bias in Performance Evaluation] // ''Journal of Machine Learning Research''. 2010. Vol. 11. P. 2079–2107.</ref>
+
Валидационная выборка используется для выбора признаков, алгоритма, гиперпараметров и порога решения. После такого выбора она перестаёт быть независимой: информация о её результатах уже повлияла на итоговую модель.
-
После окончательного выбора модели отдельная тестовая выборка открывается один раз. Если результат теста повлиял на следующую версию процедуры, этот набор фактически стал валидационным и для новой итоговой оценки требуется другой независимый тест.
+
Это не является ошибкой, если окончательное качество измеряется на отдельной тестовой выборке. Утечка возникает, когда тестовые результаты начинают использоваться при разработке.
-
== Временные ряды ==
+
Повторный подбор параметров после просмотра тестовой метрики постепенно превращает тестовую выборку в валидационную, даже если её объекты формально не добавляются в обучение. Каждый просмотр результата передаёт информацию о тестовых данных.
-
В задачах прогнозирования случайное перемешивание часто позволяет модели обучаться на будущем и проверяться на прошлом. Корректная схема сохраняет временной порядок: обучающий интервал заканчивается раньше проверочного. Распространены:
+
После большого числа экспериментов выбирается конфигурация, которая совпала не только с общей закономерностью, но и со случайными особенностями конкретного теста. Оценка оказывается смещённой вверх.<ref>Cawley G. C., Talbot N. L. C. On Over-fitting in Model Selection and Subsequent Selection Bias in Performance Evaluation // Journal of Machine Learning Research. 2010. Vol. 11. P. 2079–2107.</ref>
-
* фиксированная граница по времени;
+
При интенсивном подборе гиперпараметров применяется '''вложенная кросс-валидация'''. Во внутреннем цикле выбирается конфигурация. Во внешнем оценивается вся процедура выбора модели.<ref>Varma S., Simon R. Bias in Error Estimation When Using Cross-validation for Model Selection // BMC Bioinformatics. 2006. Vol. 7. Article 91.</ref>
-
* расширяющееся окно, в котором обучающая история накапливается;
+
-
* скользящее окно фиксированной длины;
+
-
* последовательная проверка с несколькими точками происхождения прогноза.
+
-
Для <tex>k</tex>-го разбиения расширяющегося окна можно записать
+
Внешний проверочный блок нельзя использовать для исправления признаков, выбора случайного зерна или ручного перебора архитектур. После окончательного выбора модели отдельная тестовая выборка открывается один раз. Если её результат повлиял на следующую версию системы, для итоговой оценки требуется другой независимый тест.
-
:<tex>D_{\mathrm{train}}^{(k)}=\{(x_t,y_t):t\leq \tau_k\},\qquad D_{\mathrm{test}}^{(k)}=\{(x_t,y_t):\tau_k+g<t\leq \tau_k+g+h\},</tex>
+
== Контаминация больших языковых моделей ==
-
где <tex>h</tex> — горизонт проверочного блока, а <tex>g</tex> — зазор между обучением и проверкой. Зазор нужен, если признаки, метки или окна наблюдений перекрываются около границы. Реализация <code>TimeSeriesSplit</code> в scikit-learn использует последовательные обучающие префиксы и поддерживает параметр <code>gap</code>.<ref name="timesplit">[https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.TimeSeriesSplit.html Документация TimeSeriesSplit] // scikit-learn.</ref>
+
Для [[Большая языковая модель|больших языковых моделей]] контаминацией называют попадание тестовых заданий, ответов или близких производных материалов в предобучение, дообучение, обучение на предпочтениях или синтетические данные.
-
Допустимость обычной кросс-валидации зависит от структуры временного процесса и задачи; её нельзя решать только по наличию столбца времени. Сравнение методов для прогнозирования временных рядов показывает важность специального анализа зависимости и схемы оценки.<ref name="bergmeir">Bergmeir C., Benítez J. M. [https://doi.org/10.1016/j.ins.2011.12.028 On the Use of Cross-validation for Time Series Predictor Evaluation] // ''Information Sciences''. 2012. Vol. 191. P. 192–213.</ref>
+
Модель может не получать явного указания, что текст относится к тесту. Однако воспроизведение знакомого вопроса, решения или шаблона перестаёт измерять обобщение на новую задачу.
-
Типичные источники временной утечки:
+
Различаются несколько случаев:
-
* центрированные окна и сглаживание, использующие будущие значения;
+
* точное совпадение вопроса или документа;
-
* нормализация по всему временному диапазону;
+
* присутствие опубликованных ответов и разборов;
-
* признаки «время до события», рассчитанные после события;
+
* совпадение после изменения форматирования;
-
* поздно исправленные справочники и статусы, применённые задним числом;
+
* парафраз или перевод задания;
-
* случайное распределение соседних, почти одинаковых моментов между частями;
+
* обучение на большом числе примеров того же шаблона;
-
* выбор модели по периоду, объявленному итоговым тестом.
+
* использование тестовых ответов для выбора системного запроса или версии модели.
-
== Контаминация больших языковых моделей ==
+
Точные совпадения обнаруживаются сравнением строк и n-грамм. Для приближённых совпадений применяются MinHash, поиск по векторным представлениям и семантическое сравнение.
-
Для языковых моделей термин '''контаминация''' обычно обозначает попадание тестовых заданий, ответов или тесно связанных производных материалов в предобучение, инструкционное дообучение, обучение на предпочтениях или синтетические данные. Модель может не получать явную метку «это тест», но воспроизведение знакомой формулировки или решения перестаёт измерять обобщение на новую задачу.
+
Проверка закрытых моделей сложнее, поскольку обучающие данные неизвестны. Предложены чёрноящичные статистические методы, основанные на предпочтении канонического порядка примеров и распознавании исходной формулировки среди изменённых вариантов.<ref>Oren Y., Meister N., Chatterji N., Ladhak F., Hashimoto T. Proving Test Set Contamination in Black-Box Language Models // International Conference on Learning Representations. 2024.</ref><ref>Golchin S., Surdeanu M. Data Contamination Quiz: A Tool to Detect and Estimate Contamination in Large Language Models // Transactions of the Association for Computational Linguistics. 2025.</ref>
-
Различают несколько уровней:
+
Отрицательный результат такого теста не доказывает отсутствия контаминации. Он может не обнаружить перевод, парафраз, производное решение или обучение по результатам предыдущих оценок.
-
* '''точное совпадение''' — в корпусе присутствует тот же вопрос или документ;
+
Риск снижается с помощью временного разделения корпусов и тестов, удаления вопросов вместе с ответами и разборами, хранения части заданий в закрытом доступе и регулярного обновления проверочных наборов. Динамические тесты используют новые источники и изменяемые задания, чтобы уменьшить вероятность их присутствия в обучающих данных.<ref>White C. et al. LiveBench: A Challenging, Contamination-Limited LLM Benchmark // International Conference on Learning Representations. 2025.</ref>
-
* '''совпадение вопроса и ответа''' — опубликованы ключи, разборы или репозитории решений;
+
-
* '''приближённое совпадение''' — форматирование, порядок вариантов или отдельные слова изменены;
+
-
* '''семантическая контаминация''' — присутствует парафраз или эквивалентная задача;
+
-
* '''контаминация задания''' — модель обучалась на многочисленных примерах именно этого шаблона и формата;
+
-
* '''контаминация процесса оценки''' — ответы теста используются для дообучения, выбора системного запроса или модели после предварительного прогона.
+
-
Проблема особенно сложна для закрытых моделей, когда обучающий корпус и веса недоступны. Предложены чёрноящичные статистические тесты, использующие, например, предпочтение канонического порядка примеров перед случайными перестановками, а также задания на распознавание исходной формулировки среди возмущённых вариантов.<ref name="oren">Oren Y., Meister N., Chatterji N., Ladhak F., Hashimoto T. [https://proceedings.iclr.cc/paper_files/paper/2024/hash/46e624c244cff669223d488defd4e835-Abstract-Conference.html Proving Test Set Contamination in Black-Box Language Models] // ''International Conference on Learning Representations''. 2024.</ref><ref name="golchin">Golchin S., Surdeanu M. [https://aclanthology.org/2025.tacl-1.37/ Data Contamination Quiz: A Tool to Detect and Estimate Contamination in Large Language Models] // ''Transactions of the Association for Computational Linguistics''. 2025.</ref>
+
== Числовой пример ==
-
Такие тесты дают свидетельства, а не универсальное доказательство отсутствия контаминации. Неспособность обнаружить точное совпадение не исключает парафразы, перевод, производные решения или обучение на результатах предыдущих оценок.
+
Модель должна в момент выдачи кредита предсказывать дефолт в течение следующих девяноста дней. В проверочной выборке находятся 200 кредитов: 40 завершились дефолтом, 160 были погашены.
-
=== Снижение риска контаминации LLM ===
+
Среди признаков по ошибке оставлено поле «передан ли клиент в службу взыскания в течение девяноста дней после выдачи кредита». Для 38 из 40 дефолтных кредитов оно равно единице. Среди остальных кредитов единица встречается четыре раза.
-
* сравнивать обучающий корпус с тестом до обучения, используя точный и приближённый поиск;
+
Правило относит кредит к дефолтным, если поле равно единице. Оно даёт 38 истинно положительных, 4 ложноположительных, 156 истинно отрицательных и 2 ложноотрицательных ответа.
-
* удалять не только вопросы, но и ответы, разборы и близкие производные документы;
+
-
* документировать временную границу корпуса и даты публикации тестов;
+
-
* хранить часть заданий закрытой и ограничивать доступ к ответам;
+
-
* регулярно обновлять тест задачами из новых источников;
+
-
* использовать процедурно генерируемые варианты с проверяемыми ответами;
+
-
* отделять разработочный набор от окончательного закрытого теста;
+
-
* сообщать критерий совпадения и результаты аудита вместе с метриками.
+
-
Примером динамического подхода является LiveBench: задания обновляются из недавних источников и оцениваются по объективным ответам, чтобы ограничить риск попадания теста в обучение последующих моделей.<ref name="livebench">White C. et al. [https://proceedings.iclr.cc/paper_files/paper/2025/hash/e4a46394ba5378b3f9a186a5b4c650d1-Abstract-Conference.html LiveBench: A Challenging, Contamination-Limited LLM Benchmark] // ''International Conference on Learning Representations''. 2025.</ref>
+
Доля правильных классификаций равна <tex>Accuracy=(38+156)/200=0{,}97</tex>. Полнота дефолтного класса составляет <tex>Recall=38/40=0{,}95</tex>. Точность положительного прогноза равна <tex>Precision=38/42\approx0{,}905</tex>.
 +
 
 +
Эти показатели не характеризуют прогнозирование. В момент выдачи кредита поле ещё не существует, поскольку решение о взыскании принимается позже.
 +
 
 +
Если заменить неизвестное значение нулём, модель отнесёт все заявки к недефолтному классу. Доля правильных ответов составит <tex>160/200=0{,}80</tex>, а полнота дефолтного класса упадёт до <tex>0</tex>.
 +
 
 +
Разница между 0,97 и 0,80 возникла не из-за изменения распределения данных. Первая оценка измеряла способность обнаруживать уже наступивший дефолт по его последствиям.
 +
 
 +
== Последствия утечки ==
 +
 
 +
Утечка систематически занижает оценку ошибки на новых данных. Чем сильнее недопустимая информация связана с целью, тем убедительнее выглядит ошибочный результат.
 +
 
 +
Искажается не только метрика, но и интерпретация модели. Признак, содержащий сведения о результате, получает высокую важность и вытесняет слабые, но действительно доступные предикторы. Анализ причин события подменяется анализом его последствий.
 +
 
 +
После внедрения качество резко падает. Некоторые признаки невозможно вычислить в режиме реального времени, другие поступают с задержкой или имеют иное распределение. Ошибка может долго оставаться незаметной, поскольку обучение и внутренняя проверка повторяют один и тот же неверный процесс.
 +
 
 +
Сравнение алгоритмов также теряет смысл. Модель, лучше использующая утечку, может превзойти более устойчивый метод. Выбор архитектуры, признаков и порога тогда основан на эксперименте, не соответствующем реальной задаче.
== Обнаружение утечки ==
== Обнаружение утечки ==
-
Ни один тест не обнаруживает все виды утечки. Аудит сочетает несколько подходов:
+
Проверка начинается с происхождения каждого признака. Необходимо установить:
 +
 
 +
* из какой системы он поступает;
 +
* когда формируется;
 +
* как часто обновляется;
 +
* какие исходные данные использует;
 +
* существовал ли он в момент прогноза;
 +
* можно ли воспроизвести его в рабочей системе.
 +
 
 +
Особого внимания требуют служебные статусы, даты завершения процессов, результаты ручной проверки, идентификаторы и агрегаты без временной границы.
 +
 
 +
Необычно высокая метрика служит поводом для аудита, но сама по себе не доказывает утечку. Более содержательны следующие признаки:
 +
 
 +
* резкое падение качества после удаления одного столбца;
 +
* большой разрыв между случайным и временным разбиением;
 +
* ухудшение на новых группах объектов;
 +
* невозможность вычислить признаки в момент эксплуатации;
 +
* сильное расхождение внутренней и внешней оценки;
 +
* почти однозначная связь служебного признака с целью.
 +
 
 +
Пересечения между выборками проверяются явно. Для табличных данных ищутся повторяющиеся идентификаторы и дубликаты строк. Для изображений, текстов и сигналов учитываются близкие копии, фрагменты одного источника и результаты аугментации.
 +
 
 +
Полезны абляционные эксперименты: подозрительный признак или группа источников удаляется, после чего весь процесс обучения и оценки повторяется.
 +
 
 +
== Предотвращение утечки ==
 +
 
 +
Сначала определяется момент и объект предсказания. Любая информация, появившаяся позднее этого момента, исключается. Такой подход надёжнее попыток распознать утечку по названиям столбцов.
 +
 
 +
Данные разделяются до обучаемых преобразований. Заполнение пропусков, масштабирование, отбор признаков, понижение размерности и балансировка классов настраиваются только на обучающей части.
 +
 
 +
При кросс-валидации преобразования повторяются внутри каждого разбиения. Нельзя один раз выбрать признаки или построить компоненты по всей выборке, а затем оценивать уже подготовленные данные.
 +
 
 +
Временные задачи требуют последовательного разделения. Для каждого объекта агрегаты вычисляются по состоянию базы на соответствующий момент.
 +
 
 +
Связанные наблюдения распределяются по группам. Все записи одного пациента, пользователя, документа, устройства или исходного файла должны находиться в одной части выборки. Аугментация выполняется после разделения.
 +
 
 +
Тестовая выборка сохраняется до завершения разработки. По ней не выбираются признаки, гиперпараметры, порог, архитектура или лучший случайный запуск.
-
=== Проверка происхождения данных ===
+
Данные, код разделения, временные срезы и правила построения признаков должны версионироваться. Это позволяет воспроизвести не только модель, но и условия её оценки.
-
Для каждого признака фиксируют источник, время появления, правила исправления и доступность при предсказании. Полезен вопрос: «Можно ли вычислить это значение в производственной системе в тот момент, когда модель должна ответить?»
+
== Типичные ошибки ==
-
=== Проверка конвейера ===
+
К утечке приводят следующие действия:
-
Изучают фактический порядок вызовов <code>fit</code> и <code>transform</code>, границы фолдов, кэширование, сохранённые словари и промежуточные таблицы. Недостаточно, чтобы основной оцениватель обучался только на train: это должно выполняться для всех обучаемых компонентов.
+
* стандартизация и заполнение пропусков до разделения данных;
 +
* отбор признаков по всему набору;
 +
* целевое кодирование категорий с использованием проверочных меток;
 +
* балансировка классов до формирования выборок;
 +
* случайное разбиение временных наблюдений;
 +
* распределение записей одной сущности между обучением и проверкой;
 +
* использование признаков, рассчитанных после целевого события;
 +
* помещение аугментированных копий в разные части;
 +
* многократная настройка модели по тестовой метрике;
 +
* выбор лучшего запуска по итоговому тесту;
 +
* удаление только точных дубликатов при наличии близких копий;
 +
* предположение, что кросс-валидация автоматически защищает от всех видов утечки.
-
=== Сравнение разбиений ===
+
Наличие поля в исходной базе не подтверждает его допустимость. База часто хранит сведения о завершённом процессе, тогда как модель должна работать в его начале.
-
Сравнивают случайное, групповое и временное разбиения. Резкое ухудшение на более строгой схеме не доказывает ошибку, но показывает, что исходная метрика опиралась на сходство объектов или периодов, которое может отсутствовать в целевом режиме.
+
== Независимая оценка модели ==
-
=== Поиск дубликатов и аномально сильных признаков ===
+
Оценка модели должна приближать её ожидаемый риск на новых данных: <tex>R(f)=\mathbb{E}[L(Y,f(X))]</tex>. Тестовая ошибка оценивает этот риск только тогда, когда тестовые данные не участвовали ни в обучении, ни в выборе модели.
-
Проверяют точные и близкие совпадения, идентификаторы, метаданные файлов, временные метки, порядок строк и признаки, почти однозначно определяющие ответ. Полезны абляции: удаление подозрительного признака или группы источников и повторная честная оценка.
+
Независимость относится ко всей процедуре разработки. Недостаточно не обучать параметры модели на тестовых объектах, если тестовая метрика использовалась для выбора признаков, архитектуры, числа итераций или порога решения.
-
== Предотвращение ==
+
Корректная тестовая выборка имитирует данные, которые поступят после завершения разработки. Для временной задачи это более поздний период. Для системы, предназначенной для новых пользователей, тест должен содержать пользователей, отсутствующих в обучении. Для применения в другом учреждении наиболее строгой проверкой становится внешняя выборка из этого учреждения.
-
# Сформулировать момент и объект предсказания до построения признаков.
+
Внешняя проверка не исправляет ошибочный обучающий процесс, но выявляет зависимости от конкретного источника, периода или способа сбора данных.
-
# Зарегистрировать единицу разбиения: строка, пользователь, пациент, документ, устройство или период.
+
-
# Сначала зафиксировать независимый тест, затем выполнять исследование только на train/validation.
+
-
# Поместить всю обучаемую предобработку внутрь конвейера и фолдов.
+
-
# Использовать вложенную кросс-валидацию, если одновременно выбирается модель и оценивается её качество.
+
-
# Для временных данных соблюдать порядок, горизонт прогноза и необходимый зазор.
+
-
# Дедуплицировать исходные и производные объекты между частями.
+
-
# Версионировать датасет, признаки, код разбиения и временные срезы.
+
-
# Ограничить число обращений к итоговому тесту; после адаптации к нему считать его валидационным.
+
-
# Для LLM проверять пересечение корпусов и тестов несколькими методами и документировать ограничения аудита.
+
-
== Типичные ошибки интерпретации ==
+
При ограниченном объёме данных применяются повторная кросс-валидация и вложенная кросс-валидация. При этом внешний цикл должен оценивать всю процедуру, включая предварительную обработку и выбор гиперпараметров.<ref>Vabalas A., Gowen E., Poliakoff E., Casson A. J. Machine Learning Algorithm Validation with a Limited Sample Size // PLoS ONE. 2019. Vol. 14, No. 11. e0224365.</ref>
-
* '''«Преобразование не использует метки, значит утечки нет».''' Даже статистика признаков теста делает процедуру зависимой от тестового распределения.
+
Методологический смысл независимой оценки состоит в разделении двух видов информации: данных, использованных для построения решения, и данных, предназначенных для проверки его обобщающей способности. Если это разделение нарушено, измеряется приспособленность к конкретному набору, а не способность модели работать с новыми наблюдениями.
-
* '''«Кросс-валидация автоматически защищает от утечки».''' Она защищает только операции, повторяемые внутри каждого фолда.
+
-
* '''«Достаточно удалить точные дубликаты».''' Парафразы, кадры одного видео и производные объекты могут оставаться почти идентичными.
+
-
* '''«Временная метка гарантирует корректное разбиение».''' Будущее может проникать через агрегаты, исправленные справочники и перекрывающиеся окна.
+
-
* '''«Закрытая модель нельзя проверить».''' Полная проверка невозможна, но существуют чёрноящичные статистические тесты и временные сравнения; их отрицательный результат не доказывает чистоту.
+
-
* '''«После обнаружения утечки достаточно вычесть несколько пунктов метрики».''' Влияние зависит от примеров и модели; обычно требуется заново построить разбиение и повторить весь выбор модели.
+
== См. также ==
== См. также ==
Строка 251: Строка 254:
* [[Временной ряд]]
* [[Временной ряд]]
* [[Большая языковая модель]]
* [[Большая языковая модель]]
 +
* [[Конвейер обработки данных]]
== Примечания ==
== Примечания ==
-
{{примечания}}
+
<references />
== Литература ==
== Литература ==
-
* Kaufman S., Rosset S., Perlich C., Stitelman O. Leakage in Data Mining: Formulation, Detection, and Avoidance // ''ACM Transactions on Knowledge Discovery from Data''. 2012. Vol. 6, No. 4. Article 15.
+
* Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning: Data Mining, Inference, and Prediction. 2nd ed. New York: Springer, 2009.
-
* Ambroise C., McLachlan G. J. Selection Bias in Gene Extraction on the Basis of Microarray Gene-expression Data // ''Proceedings of the National Academy of Sciences''. 2002. Vol. 99, No. 10. P. 6562–6566.
+
* Kuhn M., Johnson K. Applied Predictive Modeling. New York: Springer, 2013.
-
* Varma S., Simon R. Bias in Error Estimation When Using Cross-validation for Model Selection // ''BMC Bioinformatics''. 2006. Vol. 7. Article 91.
+
* Kaufman S., Rosset S., Perlich C., Stitelman O. Leakage in Data Mining: Formulation, Detection, and Avoidance // ACM Transactions on Knowledge Discovery from Data. 2012. Vol. 6, No. 4. Article 15. P. 1–21.
-
* Cawley G. C., Talbot N. L. C. On Over-fitting in Model Selection and Subsequent Selection Bias in Performance Evaluation // ''Journal of Machine Learning Research''. 2010. Vol. 11. P. 2079–2107.
+
* Ambroise C., McLachlan G. J. Selection Bias in Gene Extraction on the Basis of Microarray Gene-Expression Data // Proceedings of the National Academy of Sciences. 2002. Vol. 99, No. 10. P. 6562–6566.
-
* Bergmeir C., Benítez J. M. On the Use of Cross-validation for Time Series Predictor Evaluation // ''Information Sciences''. 2012. Vol. 191. P. 192–213.
+
* Varma S., Simon R. Bias in Error Estimation When Using Cross-validation for Model Selection // BMC Bioinformatics. 2006. Vol. 7. Article 91.
-
* Oren Y., Meister N., Chatterji N., Ladhak F., Hashimoto T. Proving Test Set Contamination in Black-Box Language Models // ''International Conference on Learning Representations''. 2024.
+
* Cawley G. C., Talbot N. L. C. On Over-fitting in Model Selection and Subsequent Selection Bias in Performance Evaluation // Journal of Machine Learning Research. 2010. Vol. 11. P. 2079–2107.
-
* Golchin S., Surdeanu M. Data Contamination Quiz: A Tool to Detect and Estimate Contamination in Large Language Models // ''Transactions of the Association for Computational Linguistics''. 2025.
+
* Bergmeir C., Benítez J. M. On the Use of Cross-validation for Time Series Predictor Evaluation // Information Sciences. 2012. Vol. 191. P. 192–213.
-
* White C. et al. LiveBench: A Challenging, Contamination-Limited LLM Benchmark // ''International Conference on Learning Representations''. 2025.
+
* Vabalas A., Gowen E., Poliakoff E., Casson A. J. Machine Learning Algorithm Validation with a Limited Sample Size // PLoS ONE. 2019. Vol. 14, No. 11. e0224365.
 +
* Oren Y., Meister N., Chatterji N., Ladhak F., Hashimoto T. Proving Test Set Contamination in Black-Box Language Models // International Conference on Learning Representations. 2024.
 +
* Golchin S., Surdeanu M. Data Contamination Quiz: A Tool to Detect and Estimate Contamination in Large Language Models // Transactions of the Association for Computational Linguistics. 2025.
 +
* White C. et al. LiveBench: A Challenging, Contamination-Limited LLM Benchmark // International Conference on Learning Representations. 2025.
[[Категория:Машинное обучение]]
[[Категория:Машинное обучение]]
[[Категория:Энциклопедия анализа данных]]
[[Категория:Энциклопедия анализа данных]]

Текущая версия

Статья объединена из материалов страниц Утечка данных и Утечка данных в машинном обучении. Исходные тексты написаны с использованием LLM GPT-5.6 Sol Hight и ChatGPT 5.6 Sol - xhigh и проверены участниками Aleksandra Ivanova и Roman Iuкharev.


Содержание

Утечка данных (англ. data leakage) в машинном обучении — использование при обучении, настройке или оценке модели информации, которая недоступна в момент реального предсказания либо должна оставаться независимой от процесса разработки. Утечка создаёт искусственную связь между обучением и проверкой, поэтому измеренная метрика перестаёт характеризовать качество на новых данных.[1]

Термин не следует смешивать с утечкой конфиденциальной информации в информационной безопасности. В машинном обучении речь идёт о нарушении условий вычислительного эксперимента: модель получает сведения о целевой переменной, будущих событиях, проверочных объектах или итоговой тестовой выборке.

Утечка отличается от переобучения. При переобучении модель слишком точно приспосабливается к случайным особенностям корректно сформированной обучающей выборки. При утечке неверно устроен сам эксперимент. Регуляризация способна ограничить сложность модели, но не исправляет признак, содержащий последствия целевого события. Увеличение объёма данных также не устраняет ошибку, если проверочные наблюдения продолжают влиять на обучение.

Формальная постановка

Пусть D_{\mathrm{train}} — обучающая выборка, D_{\mathrm{test}} — независимая тестовая выборка, а алгоритм обучения \mathcal A строит модель \hat f=\mathcal A(D_{\mathrm{train}}).

Её тестовый риск оценивается величиной \widehat R_{\mathrm{test}}=\frac{1}{|D_{\mathrm{test}}|}\sum_{(x_i,y_i)\in D_{\mathrm{test}}}L(y_i,\hat f(x_i)), где L — функция потерь.

Эта оценка характеризует качество на новых объектах только тогда, когда тестовые данные не влияли на обучение, выбор признаков, архитектуры, гиперпараметров, порога решения и правил предварительной обработки.

Если преобразование признаков имеет вид z=g(x;\hat\eta), то параметры \hat\eta, например среднее, дисперсия, словарь, компоненты PCA или правила заполнения пропусков, должны оцениваться только по разрешённой обучающей части. Использование параметров \hat\eta=h(D_{\mathrm{train}}\cup D_{\mathrm{test}}) делает представление обучающих объектов зависимым от тестовой выборки.

Для временных задач дополнительно задаётся момент прогноза t. Допустимый признак должен вычисляться только по информации, существовавшей к этому моменту. Если признак зависит от будущего события, целевой переменной или сведений, появившихся после t, он содержит утечку.

Решающее значение имеет не название столбца, а время и способ возникновения информации. Итоговый диагноз допустим при анализе завершённых медицинских случаев, но недопустим в модели ранней диагностики. Статус возврата товара подходит для описания выполненных заказов, но не для прогноза возврата в момент покупки.

Утечка целевой переменной

Утечка целевой переменной возникает, когда один или несколько признаков прямо либо косвенно кодируют предсказываемый результат.

Наиболее очевидный случай — присутствие самой метки среди признаков. На практике чаще встречаются её замаскированные копии:

  • служебный код, присвоенный после наступления события;
  • дата закрытия обращения;
  • сумма фактического убытка;
  • результат ручной проверки;
  • назначенное после диагноза лечение;
  • признак начала процедуры взыскания;
  • итоговая сумма возврата;
  • пропуск, возникающий только после определённого исхода.

Такие поля могут иметь нейтральные названия, но их значения появляются только после того, как результат уже известен. Модель не прогнозирует событие, а распознаёт его последствия.

Особенно опасны агрегаты без временной границы. Среднее число просрочек клиента, вычисленное по всей истории, может включать периоды после рассматриваемой кредитной заявки. Сам столбец выглядит как обычная характеристика клиента, хотя часть его значения относится к будущему.

Поиск утечки нельзя свести к анализу корреляций. Сильная связь с целью может быть как полезным прогнозным сигналом, так и следствием нарушения временной или причинной последовательности. Для каждого признака необходимо установить источник, момент появления и доступность в рабочей системе.

Загрязнение обучающей и проверочной выборок

Загрязнение выборок, или контаминация, означает, что сведения о проверочных объектах влияют на построение модели. Для этого необязательно передавать алгоритму их метки. Достаточно вычислить по полному набору параметры предварительной обработки.

При стандартизации признак преобразуется по формуле z=(x-\mu)/\sigma. Если среднее \mu и стандартное отклонение \sigma рассчитаны до разделения данных, распределение проверочной выборки уже повлияло на представление обучающих объектов.

Особенно сильное смещение возникает при отборе признаков по всему набору. Если тысячи переменных сначала сравниваются с целевой переменной, а затем выбранные признаки проверяются с помощью кросс-валидации, каждая проверочная часть уже участвовала в их выборе. Высокая метрика может отражать случайные корреляции, обнаруженные благодаря использованию всего набора.[1]

К обучаемой предварительной обработке относятся:

  • заполнение пропусков;
  • масштабирование;
  • кодирование категорий;
  • построение текстового словаря;
  • отбор признаков;
  • понижение размерности;
  • удаление выбросов по статистикам выборки;
  • балансировка классов;
  • обучение векторных представлений.

Каждая такая операция является частью алгоритма. При кросс-валидации она должна заново настраиваться внутри каждой обучающей части.

Практический способ сохранить правильный порядок — объединить преобразования и модель в единый конвейер. Метод fit вызывается только на обучающей части текущего разбиения, после чего уже настроенные преобразования применяются к проверочной части.

Отсутствие целевой переменной в преобразовании не гарантирует отсутствия утечки. Среднее, дисперсия, частоты категорий и структура главных компонент также содержат сведения о распределении проверочных объектов.

Временная утечка

Временная утечка возникает, когда модель использует информацию, появившуюся позже момента прогноза. Она характерна не только для временных рядов: естественный порядок событий существует в кредитовании, медицине, торговле, промышленном мониторинге и анализе поведения пользователей.

Случайное разделение может поместить будущие наблюдения в обучение, а прошлые — в проверку. Тогда модель оценивается в более лёгких условиях, чем условия реального применения.

При прогнозе спроса на январь нельзя обучаться на данных февраля того же года. При оценке риска новой кредитной заявки нельзя использовать профиль клиента, пересчитанный после завершения кредита.

Утечка возникает и внутри признаков. Центрированное скользящее среднее включает будущие значения. Средний объём продаж за текущую неделю неизвестен в её начале. Агрегат по последним тридцати дням допустим только тогда, когда все эти дни предшествуют моменту прогноза.

Корректное временное разбиение сохраняет причинный порядок: модель обучается на прошлом и проверяется на более позднем периоде. Применяются фиксированная временная граница, расширяющееся окно или скользящее окно.

Между обучающим и проверочным интервалами иногда оставляют зазор. Он необходим, если окна признаков, метки или наблюдения около границы перекрываются.

Утечка между связанными объектами

Случайное разбиение предполагает достаточную независимость наблюдений. Во многих наборах это предположение нарушается.

Один пациент может быть представлен несколькими обследованиями, пользователь — несколькими действиями, документ — несколькими фрагментами, устройство — серией измерений. Если записи одной сущности попадают и в обучение, и в проверку, модель способна запомнить её устойчивые особенности.

Такая оценка показывает качество распознавания уже встречавшихся объектов, а не перенос на новые.

Та же проблема возникает с дубликатами и производными объектами. Два соседних кадра видеоролика могут почти не отличаться. Фрагменты одного сигнала сохраняют общий фон. После аугментации исходное изображение и его изменённая копия не должны попадать в разные выборки.

Разделение выполняется по независимым группам:

  • пациентам;
  • пользователям;
  • документам;
  • устройствам;
  • видеороликам;
  • временным сессиям;
  • исходным файлам.

Точные дубликаты можно искать по хешам нормализованного содержимого. Для близких объектов применяются перцептивные хеши изображений, сравнение n-грамм, MinHash, расстояния между векторными представлениями и предметно-ориентированные идентификаторы.

Схема разделения определяется будущим применением. Если модель должна работать с новыми событиями известных пользователей, допустимо разделение событий. Если требуется перенос на новых пользователей, тестовая выборка не должна содержать сущности, встречавшиеся при обучении.

Утечка при выборе модели

Валидационная выборка используется для выбора признаков, алгоритма, гиперпараметров и порога решения. После такого выбора она перестаёт быть независимой: информация о её результатах уже повлияла на итоговую модель.

Это не является ошибкой, если окончательное качество измеряется на отдельной тестовой выборке. Утечка возникает, когда тестовые результаты начинают использоваться при разработке.

Повторный подбор параметров после просмотра тестовой метрики постепенно превращает тестовую выборку в валидационную, даже если её объекты формально не добавляются в обучение. Каждый просмотр результата передаёт информацию о тестовых данных.

После большого числа экспериментов выбирается конфигурация, которая совпала не только с общей закономерностью, но и со случайными особенностями конкретного теста. Оценка оказывается смещённой вверх.[1]

При интенсивном подборе гиперпараметров применяется вложенная кросс-валидация. Во внутреннем цикле выбирается конфигурация. Во внешнем оценивается вся процедура выбора модели.[1]

Внешний проверочный блок нельзя использовать для исправления признаков, выбора случайного зерна или ручного перебора архитектур. После окончательного выбора модели отдельная тестовая выборка открывается один раз. Если её результат повлиял на следующую версию системы, для итоговой оценки требуется другой независимый тест.

Контаминация больших языковых моделей

Для больших языковых моделей контаминацией называют попадание тестовых заданий, ответов или близких производных материалов в предобучение, дообучение, обучение на предпочтениях или синтетические данные.

Модель может не получать явного указания, что текст относится к тесту. Однако воспроизведение знакомого вопроса, решения или шаблона перестаёт измерять обобщение на новую задачу.

Различаются несколько случаев:

  • точное совпадение вопроса или документа;
  • присутствие опубликованных ответов и разборов;
  • совпадение после изменения форматирования;
  • парафраз или перевод задания;
  • обучение на большом числе примеров того же шаблона;
  • использование тестовых ответов для выбора системного запроса или версии модели.

Точные совпадения обнаруживаются сравнением строк и n-грамм. Для приближённых совпадений применяются MinHash, поиск по векторным представлениям и семантическое сравнение.

Проверка закрытых моделей сложнее, поскольку обучающие данные неизвестны. Предложены чёрноящичные статистические методы, основанные на предпочтении канонического порядка примеров и распознавании исходной формулировки среди изменённых вариантов.[1][1]

Отрицательный результат такого теста не доказывает отсутствия контаминации. Он может не обнаружить перевод, парафраз, производное решение или обучение по результатам предыдущих оценок.

Риск снижается с помощью временного разделения корпусов и тестов, удаления вопросов вместе с ответами и разборами, хранения части заданий в закрытом доступе и регулярного обновления проверочных наборов. Динамические тесты используют новые источники и изменяемые задания, чтобы уменьшить вероятность их присутствия в обучающих данных.[1]

Числовой пример

Модель должна в момент выдачи кредита предсказывать дефолт в течение следующих девяноста дней. В проверочной выборке находятся 200 кредитов: 40 завершились дефолтом, 160 были погашены.

Среди признаков по ошибке оставлено поле «передан ли клиент в службу взыскания в течение девяноста дней после выдачи кредита». Для 38 из 40 дефолтных кредитов оно равно единице. Среди остальных кредитов единица встречается четыре раза.

Правило относит кредит к дефолтным, если поле равно единице. Оно даёт 38 истинно положительных, 4 ложноположительных, 156 истинно отрицательных и 2 ложноотрицательных ответа.

Доля правильных классификаций равна Accuracy=(38+156)/200=0{,}97. Полнота дефолтного класса составляет Recall=38/40=0{,}95. Точность положительного прогноза равна Precision=38/42\approx0{,}905.

Эти показатели не характеризуют прогнозирование. В момент выдачи кредита поле ещё не существует, поскольку решение о взыскании принимается позже.

Если заменить неизвестное значение нулём, модель отнесёт все заявки к недефолтному классу. Доля правильных ответов составит 160/200=0{,}80, а полнота дефолтного класса упадёт до 0.

Разница между 0,97 и 0,80 возникла не из-за изменения распределения данных. Первая оценка измеряла способность обнаруживать уже наступивший дефолт по его последствиям.

Последствия утечки

Утечка систематически занижает оценку ошибки на новых данных. Чем сильнее недопустимая информация связана с целью, тем убедительнее выглядит ошибочный результат.

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

После внедрения качество резко падает. Некоторые признаки невозможно вычислить в режиме реального времени, другие поступают с задержкой или имеют иное распределение. Ошибка может долго оставаться незаметной, поскольку обучение и внутренняя проверка повторяют один и тот же неверный процесс.

Сравнение алгоритмов также теряет смысл. Модель, лучше использующая утечку, может превзойти более устойчивый метод. Выбор архитектуры, признаков и порога тогда основан на эксперименте, не соответствующем реальной задаче.

Обнаружение утечки

Проверка начинается с происхождения каждого признака. Необходимо установить:

  • из какой системы он поступает;
  • когда формируется;
  • как часто обновляется;
  • какие исходные данные использует;
  • существовал ли он в момент прогноза;
  • можно ли воспроизвести его в рабочей системе.

Особого внимания требуют служебные статусы, даты завершения процессов, результаты ручной проверки, идентификаторы и агрегаты без временной границы.

Необычно высокая метрика служит поводом для аудита, но сама по себе не доказывает утечку. Более содержательны следующие признаки:

  • резкое падение качества после удаления одного столбца;
  • большой разрыв между случайным и временным разбиением;
  • ухудшение на новых группах объектов;
  • невозможность вычислить признаки в момент эксплуатации;
  • сильное расхождение внутренней и внешней оценки;
  • почти однозначная связь служебного признака с целью.

Пересечения между выборками проверяются явно. Для табличных данных ищутся повторяющиеся идентификаторы и дубликаты строк. Для изображений, текстов и сигналов учитываются близкие копии, фрагменты одного источника и результаты аугментации.

Полезны абляционные эксперименты: подозрительный признак или группа источников удаляется, после чего весь процесс обучения и оценки повторяется.

Предотвращение утечки

Сначала определяется момент и объект предсказания. Любая информация, появившаяся позднее этого момента, исключается. Такой подход надёжнее попыток распознать утечку по названиям столбцов.

Данные разделяются до обучаемых преобразований. Заполнение пропусков, масштабирование, отбор признаков, понижение размерности и балансировка классов настраиваются только на обучающей части.

При кросс-валидации преобразования повторяются внутри каждого разбиения. Нельзя один раз выбрать признаки или построить компоненты по всей выборке, а затем оценивать уже подготовленные данные.

Временные задачи требуют последовательного разделения. Для каждого объекта агрегаты вычисляются по состоянию базы на соответствующий момент.

Связанные наблюдения распределяются по группам. Все записи одного пациента, пользователя, документа, устройства или исходного файла должны находиться в одной части выборки. Аугментация выполняется после разделения.

Тестовая выборка сохраняется до завершения разработки. По ней не выбираются признаки, гиперпараметры, порог, архитектура или лучший случайный запуск.

Данные, код разделения, временные срезы и правила построения признаков должны версионироваться. Это позволяет воспроизвести не только модель, но и условия её оценки.

Типичные ошибки

К утечке приводят следующие действия:

  • стандартизация и заполнение пропусков до разделения данных;
  • отбор признаков по всему набору;
  • целевое кодирование категорий с использованием проверочных меток;
  • балансировка классов до формирования выборок;
  • случайное разбиение временных наблюдений;
  • распределение записей одной сущности между обучением и проверкой;
  • использование признаков, рассчитанных после целевого события;
  • помещение аугментированных копий в разные части;
  • многократная настройка модели по тестовой метрике;
  • выбор лучшего запуска по итоговому тесту;
  • удаление только точных дубликатов при наличии близких копий;
  • предположение, что кросс-валидация автоматически защищает от всех видов утечки.

Наличие поля в исходной базе не подтверждает его допустимость. База часто хранит сведения о завершённом процессе, тогда как модель должна работать в его начале.

Независимая оценка модели

Оценка модели должна приближать её ожидаемый риск на новых данных: R(f)=\mathbb{E}[L(Y,f(X))]. Тестовая ошибка оценивает этот риск только тогда, когда тестовые данные не участвовали ни в обучении, ни в выборе модели.

Независимость относится ко всей процедуре разработки. Недостаточно не обучать параметры модели на тестовых объектах, если тестовая метрика использовалась для выбора признаков, архитектуры, числа итераций или порога решения.

Корректная тестовая выборка имитирует данные, которые поступят после завершения разработки. Для временной задачи это более поздний период. Для системы, предназначенной для новых пользователей, тест должен содержать пользователей, отсутствующих в обучении. Для применения в другом учреждении наиболее строгой проверкой становится внешняя выборка из этого учреждения.

Внешняя проверка не исправляет ошибочный обучающий процесс, но выявляет зависимости от конкретного источника, периода или способа сбора данных.

При ограниченном объёме данных применяются повторная кросс-валидация и вложенная кросс-валидация. При этом внешний цикл должен оценивать всю процедуру, включая предварительную обработку и выбор гиперпараметров.[1]

Методологический смысл независимой оценки состоит в разделении двух видов информации: данных, использованных для построения решения, и данных, предназначенных для проверки его обобщающей способности. Если это разделение нарушено, измеряется приспособленность к конкретному набору, а не способность модели работать с новыми наблюдениями.

См. также

Примечания


Литература

  • Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning: Data Mining, Inference, and Prediction. 2nd ed. New York: Springer, 2009.
  • Kuhn M., Johnson K. Applied Predictive Modeling. New York: Springer, 2013.
  • Kaufman S., Rosset S., Perlich C., Stitelman O. Leakage in Data Mining: Formulation, Detection, and Avoidance // ACM Transactions on Knowledge Discovery from Data. 2012. Vol. 6, No. 4. Article 15. P. 1–21.
  • Ambroise C., McLachlan G. J. Selection Bias in Gene Extraction on the Basis of Microarray Gene-Expression Data // Proceedings of the National Academy of Sciences. 2002. Vol. 99, No. 10. P. 6562–6566.
  • Varma S., Simon R. Bias in Error Estimation When Using Cross-validation for Model Selection // BMC Bioinformatics. 2006. Vol. 7. Article 91.
  • Cawley G. C., Talbot N. L. C. On Over-fitting in Model Selection and Subsequent Selection Bias in Performance Evaluation // Journal of Machine Learning Research. 2010. Vol. 11. P. 2079–2107.
  • Bergmeir C., Benítez J. M. On the Use of Cross-validation for Time Series Predictor Evaluation // Information Sciences. 2012. Vol. 191. P. 192–213.
  • Vabalas A., Gowen E., Poliakoff E., Casson A. J. Machine Learning Algorithm Validation with a Limited Sample Size // PLoS ONE. 2019. Vol. 14, No. 11. e0224365.
  • Oren Y., Meister N., Chatterji N., Ladhak F., Hashimoto T. Proving Test Set Contamination in Black-Box Language Models // International Conference on Learning Representations. 2024.
  • Golchin S., Surdeanu M. Data Contamination Quiz: A Tool to Detect and Estimate Contamination in Large Language Models // Transactions of the Association for Computational Linguistics. 2025.
  • White C. et al. LiveBench: A Challenging, Contamination-Limited LLM Benchmark // International Conference on Learning Representations. 2025.