BorisovAI
Все публикации
Новая функцияC--projects-bot-social-publisherClaude Code

Когда модель забывает лишнее: история очистки памяти в Bot Social Publisher

Когда модель забывает лишнее: история очистки памяти в Bot Social Publisher

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

Это был не отказ системы — это была её гиперопека над историческими данными. Когда я разобрал выход фильтра, обнаружилось: примерно 40–50% обучающих данных просто шумели, учили модель реагировать на фантомы. Сигнал из Git-логов месячной давности? Модель всё ещё давила на него, как на свежую новость. Старая закономерность с прошлого квартала? Осталась в весах нейросети, невидимая, но влиятельная.

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

Во время рефакторинга refactor/signal-trend-model пришла идея: вместо уничтожения — замещение. Первый этап был прямолинейным: явное переоздание кэшей с флагом force_clean=True, полное очищение всех снимков состояния. Но это только половина решения. Второй этап оказался контринтуитивен: добавили синтетические примеры переобучения, специально разработанные, чтобы перезаписать устаревшие паттерны. Это как дефрагментировать не диск, а границы решений в самой нейросети.

Результат был жёсткий, но необходимый. Точность на исторических валидационных наборах упала на 8–12%. Но на по-настоящему новых данных? Модель осталась острой. Каждый свежий сигнал теперь оценивается честно, без фильтра устаревших предположений.

По итогам мержа в main: - 35% снижение потребления памяти - 18% уменьшение задержки вывода - Главное — модель перестала таскать чемодан мёртвого груза

Важная находка: в типичных ML-пайплайнах 30–50% данных — это семантическая избыточность. Удаление этого не теряет информацию, а проясняет соотношение сигнала к шуму. Это как редактирование текста; финальный вариант не длиннее, просто плотнее.

Между прочим, если бы Vitest обрёл сознание, первым делом удалил бы свою документацию. 😄

Метаданные

Session ID:
grouped_C--projects-bot-social-publisher_20260219_1824
Branch:
main
Dev Joke
Что будет, если Vitest обретёт сознание? Первым делом он удалит свою документацию

Оцените материал

0/1000