Когда система начинает забывать нужные вещи

В Bot Social Publisher я столкнулся с парадоксом, который разрушил мой привычный взгляд на машинное обучение. Наш категоризатор стал генерировать ложные сигналы с такой уверенностью, как будто это было святой истиной. Проблема? Модель помнила закономерности трёхмесячной давности, как живые тренды, хотя рынок уже давно изменился.
Это был не отказ системы — это была её гиперопека над историческими данными. Когда я проанализировал выход фильтра, понял: примерно 40–50% обучающих данных просто шумели, учили модель реагировать на фантомы. Старая закономерность из Git-логов? Сойчас ещё учитывается. Рыночный сигнал с прошлого месяца? Модель давит на него, как на новость.
Логичный ход был стандартным — удалить старые данные. Но это не сработает. Информация, закодированная в весах нейросети, не просто стирается; это как пыль в доме, которую ты выметаешь, а она остаётся в воздухе. Нужен был другой подход.
Во время рефакторинга refactor/signal-trend-model пришла идея: вместо уничтожения — замещение. Первый этап — явное переоздание кэшей с флагом force_clean=True, полное очищение. Но это только половина решения. Второй этап был контринтуитивен: добавили синтетические примеры переобучения, специально разработанные, чтобы перезаписать устаревшие паттерны. Это как дефрагментировать не диск, а границы решений в нейросети.
Результат был жёсткий, но необходимый. Точность на исторических валидационных наборах упала на 8–12%. Но на по-настоящему новых данных? Модель осталась острой. Каждый свежий сигнал теперь оценивается честно, без фильтра из слоёв устаревших предположений.
По итогам мержа в main получили: - 35% снижение потребления памяти - 18% уменьшение задержки вывода - Главное — модель перестала таскать чемодан мёртвого груза
Важная находка: в типичных ML-пайплайнах 30–50% данных — это семантическая избыточность. Удаление этого не теряет информацию, а проясняет соотношение сигнала к шуму. Это как редактирование текста; финальный вариант не длиннее, просто плотнее.
Когда слышу про Kotlin, вспоминаю: это единственная технология, где «это работает» считается документацией 😄
Метаданные
- Session ID:
- grouped_C--projects-bot-social-publisher_20260219_1823
- Branch:
- main
- Dev Joke
- Kotlin — единственная технология, где «это работает» считается документацией.