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

В Фраза «просто переобучите модель» обманчиво проста. Она стала универсальным решением в сфере машинного обучения, когда показатели падают или результаты становятся неточными. Я был свидетелем того, как целые конвейеры MLOps перестраивались для переобучения раз в неделю, месяц или после обработки больших объёмов данных, и никто не задавался вопросом, уместно ли переобучение.

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

Рефлекс переобучения возникает из-за ложной уверенности

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

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

Цикл переобучения не корректировал систему, а вносил в неё помехи.

Когда переобучение только усугубляет ситуацию

Непреднамеренное обучение на основе временного шума

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

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

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

Отзыв по клику — это не истина в последней инстанции

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

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

Чрезмерное переобучение в сравнении с устранением первопричины (изображение автора)

Устаревание метрик Meta: когда меняется основа модели

В некоторых случаях проблема не в модели, а в данных, и переобучение не поможет.

Именно это произошло недавно, когда в 2024 году были прекращены поддержка и обновление нескольких наиболее важных показателей Page Insights от Meta. Такие показатели, как количество кликов, вовлечённых пользователей и уровень вовлечённости, были прекращены, то есть они больше не обновляются и не поддерживаются в наиболее важных аналитических инструментах.

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

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

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

Итак, что же нам следует обновить?

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

Исправление логики функций, а не весов модели

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

Повторное обучение на точно таком же дефектном представлении позволило исправить ошибку.

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

Осведомленность о сегменте

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

К более продуманной стратегии обновлений

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

Мониторинг ключевых показателей после прогноза

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

Моделируйте Сигналы Доверия

Другой метод — отслеживание снижения уровня доверия. Если пользователи перестают доверять результатам работы модели (например, кредитные специалисты игнорируют прогнозы, а редакторы контента — предложенные ресурсы), это можно считать потерей сигнала. Мы отслеживали случаи, когда прогнозы игнорировались вручную, и использовали это как основание для расследования, а иногда и для переобучения.

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

Переобучение в сравнении со стратегией выравнивания: сравнение систем (Изображение автора)

Заключение

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

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

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

И самое главное: помните, что исправная система — это система, в которой вы можете определить, что именно сломалось, а не система, в которой вы просто заменяете детали.

Источник

От DTScience

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