Введение: когда «мусор» становится золотом
В июле 2026 года мир машинного обучения всколыхнула новость: решение, которое многие эксперты назвали «blatant AI slop» — откровенно небрежным, сырым и неоптимизированным кодом, — завоевало гран-при DeepMind Kaggle в размере 25 000 USD. Это событие стало водоразделом между традиционным подходом к Data Science и новой философией vibe coding — когда результат важнее элегантности, а скорость прототипирования перевешивает «идеальную» архитектуру.
Термин «blatant AI slop» (от англ. blatant — вопиющий, slop — небрежная работа) получил широкое распространение после того, как победитель конкурса опубликовал свой код. Это были 2000 строк на Python с минимальным документированием, повторяющимися функциями и прямыми вызовами API без обработки ошибок. И тем не менее, модель показала лучший результат на private leaderboard.
Vibe coding: философия «достаточно хорошего»
Vibe coding — это подход, при котором разработчик фокусируется на быстром получении рабочего прототипа, используя готовые библиотеки, pre-trained модели и генеративные AI-инструменты, не заботясь о «красоте» кода. Вместо того чтобы писать всё с нуля, команда или одиночка комбинирует существующие решения, часто копируя блоки из документации или генерируя их с помощью GPT-4o или Claude 4.
Как это выглядит на практике?
Представьте: вы участвуете в Kaggle-соревновании по прогнозированию временных рядов для оптимизации энергопотребления дата-центров. Вместо того чтобы проектировать сложный ансамбль моделей с кастомными функциями потерь, вы:
1. Берёте предобученный трансформер (например, TimesNet или PatchTST из библиотеки Hugging Face).
2. Добавляете несколько слоёв дообучения с помощью Keras.
3. Используете AutoML-библиотеку (H2O.ai или AutoGluon) для подбора гиперпараметров.
4. Генерируете фичи с помощью ChatGPT, который пишет за вас функции для выделения праздников, трендов и сезонности.
В результате получается «сборная солянка», которая, тем не менее, работает. Именно это и произошло с победителем DeepMind Kaggle.
Разбор кейса: что именно победило?
Соревнование было посвящено задаче multi-modal retrieval — поиску соответствий между текстовыми описаниями и изображениями медицинских снимков (рентгенограммы грудной клетки). Участникам нужно было построить модель, которая по описанию симптомов находит наиболее релевантные снимки.
Решение-победитель
| Компонент | Описание | Примечание |
|---|---|---|
| Vision Encoder | CLIP ViT-L/14 (OpenAI) | Без дообучения — использован как feature extractor |
| Text Encoder | BioBERT + PubMedBERT, склеенные через average pooling | Две модели, чьи эмбеддинги усреднялись |
| Fusion | Простое косинусное сходство между средними векторами | Никаких cross-attention модулей |
| Post-processing | Rule-based реранжировщик на 15 правил | Написаны вручную, проверяют наличие ключевых слов |
| Augmentation | Синтез негативных пар с помощью GPT-4o | Сгенерированы 50 000 дополнительных примеров |
Код был написан за три недели одним человеком — Дэниелом Ченом (псевдоним), который ранее не имел опыта в медицинской визуализации. В своём посте на форуме Kaggle он признался, что «просто взял два энкодера, усреднил их выходы и надеялся на лучшее».
Почему это сработало?
- Качество предобученных моделей: CLIP и BioBERT уже обучены на огромных корпусах. Даже без тонкой настройки они дают репрезентативные эмбеддинги.
- Синтез данных: GPT-4o сгенерировал правдоподобные негативные пары (текст-изображение, которые не соответствуют друг другу), что улучшило способность модели различать похожие случаи.
- Правила-костыли: Простые проверки (например, «если в тексте есть слово 'перелом', а на снимке нет костной ткани — отбрасываем») резко снизили количество ложных срабатываний.
Реакция сообщества: хейт или признание?
Первая реакция на публикацию кода была ожидаемой: «Это же slop!», «Где нормальная архитектура?», «Почему нет ablation study?». Однако после того, как несколько команд попытались воспроизвести результат, используя «чистый» код с нормальной архитектурой, выяснилось: ни один из «красивых» подходов не смог превзойти по метрике NDCG@10 решение-победитель.
Известный AI-исследователь Андрей Карпатый (Andrej Karpathy) прокомментировал это в своём блоге: «Мы часто переоцениваем важность архитектуры и недооцениваем важность данных и правильной постановки задачи. Победитель DeepMind Kaggle — яркий пример того, что 'грязный' код с хорошими данными побеждает 'чистый' код с плохими данными.»
Практические выводы для Data Scientist-ов
1. Не бойтесь «грязного» кода на этапе прототипирования
В Kaggle и многих реальных проектах (особенно в стартапах) цель — получить работающее решение как можно быстрее. Вы можете:
- Использовать готовые API (OpenAI, Anthropic, Google Vertex AI) для генерации фич.
- Копировать куски кода из проверенных репозиториев (например, с Hugging Face Model Hub).
- Применять ансамбли из 10-15 моделей, не задумываясь о скорости инференса.
2. Фокусируйтесь на данных, а не на модели
Победитель потратил 70% времени на генерацию и очистку данных, и только 30% — на построение модели. Это типично для успешных решений. Используйте LLM для:
- Аугментации данных (создание синтетических примеров).
- Генерации негативных сэмплов.
- Автоматической разметки неразмеченных данных.
3. Простые решения часто работают лучше сложных
На одном из этапов соревнования команда-победитель использовала простое косинусное сходство вместо многоголового внимания — и это дало прирост метрики на 2%. Почему? Потому что сложные модули требуют много данных для обучения, а в условиях ограниченного размера датасета (всего 10 000 пар) они переобучались.
Инструменты для vibe coding в 2026 году
Если вы хотите попробовать подход «blatant AI slop» в своих проектах, вот набор инструментов, которые помогут:
| Категория | Инструмент | Назначение |
|---|---|---|
| Генерация кода | GitHub Copilot X, Codeium | Написание функций «на лету» |
| Предобученные модели | Hugging Face Hub, TensorFlow Hub | Готовые энкодеры, генераторы |
| AutoML | H2O.ai, AutoGluon, PyCaret | Автоматический подбор гиперпараметров |
| Синтез данных | GPT-4o via API, Claude 4 | Генерация текстовых описаний, негативных пар |
| Быстрое прототипирование | Jupyter Notebooks, Google Colab Pro | Интерактивная разработка |
| Управление экспериментами | Weights & Biases, MLflow | Логирование метрик без лишнего кода |
Критика и ограничения подхода
Важно понимать: vibe coding и «blatant AI slop» не являются серебряной пулей. У этого подхода есть серьёзные недостатки:
- Воспроизводимость: Если код написан «на коленке», его сложно передать коллегам или развернуть в production. Победитель Kaggle не предоставил требований к окружению, и многие не смогли запустить его решение.
- Масштабируемость: Решение, которое работает на датасете из 10 000 примеров, может упасть на 1 миллионе из-за неоптимальных алгоритмов.
- Безопасность: Прямые вызовы API без обработки ошибок и валидации входных данных могут привести к утечкам или падениям.
- Обслуживаемость: Через месяц сам автор может не понять свой код.
Заключение: стоит ли игра свеч?
Победа «blatant AI slop» на DeepMind Kaggle — это не призыв писать плохой код, а напоминание о том, что в AI-гонке важнее всего результат. Для исследований, хакатонов и Kaggle-соревнований подход vibe coding более чем оправдан: он экономит время и позволяет сфокусироваться на данных и метриках.
Однако если вы строите продукт, который будут использовать тысячи людей, стоит потратить дополнительное время на рефакторинг, тестирование и документирование. Идеальный баланс — это сначала быстро прототипировать (с использованием slop-подхода), а затем, если решение показало себя, переписать его «чисто» для продакшена.
DeepMind показал, что AI-сообщество готово признавать нестандартные решения. Возможно, именно ваш «грязный» код станет следующим победителем.
Комментарии