3577
Канал о пути к Kaggle competitions (теперь уже) GrandMaster и поте, которым обливаешься в процессе Последний авторский канал про мл, претендующий на искренность и позволяющий ставить клоунов Для контакта пишите в сообщения канала, они бесплатные
Ваш проект называют стартапом-внутри-компании не из-за его перспективности и инновационности, а потому что Эрику Рису в »Lean Startup« нужно было продать свою книжку не только предпринимателям, но и менеджерам среднего звена без специального образования.
Весь кейс построен на примере компании Intuit, где они в качестве эксперимента сделали систему отчетности для малого бизнеса. Но вот шутка в том, что команде дали карт-бланш на самоуправление. Полный. Дают ли стартапам-внутри-нашего-сувереннного-бигтеха такой карт-бланш? Вопрос риторический
Скелетрон вернется с умными мыслями завтра
3 место в #BirdClef2025
Данные:
1. Выкорчевали человеческий голос с помощью паблик кернела с каггла.
2. Взяли весь датасет 2025 года и к нему доложили 80% датасета 2023 года, добавив 112 новы классов. Оставшиеся 20% данных 2023 использовали для валидации. Локальная валидация не билась с ЛБ, но такая схема давала лучшую оценку сходимости модели.
3. Дополнительно вытянули еще данных из обоих открытых источнико, Xeno-Canto и INaturalist.
4. Запсевдолейбили всю неразмеченную часть, чтобы еще немного улучшить итоговые модели
Модели:
Обучили зоопарк моделей на двух видах спектрограмм. Вообще почти всегда есть смысл покрутить параметы построения спектрограмм для того, чтобы увеличить разнообразие и не потерять в качестве. Главное одну модель не учить на двух видах.
Список моделей
tf_efficientnet_b0_ns
tf_efficientnetv2_b3
tf_efficientnetv2_s.in21k_ft_in1k
mnasnet_100
spnasnet_100
Интересные приемы для обучения:
1. Семплировали случайные отрезки, а не честную нарезку по 5 сек. Говорят, так лучше училось
2. Добавляли человеческий голос для аугментации. На мой взгляд не сильно вяжется с удалением голоса из изначального датасета, но видимо использовали этот прием чтобы голос 'равномерно' размазать по всему датасету
3. FocalLoss
4. Использовали Model Soup. Это способ 'ужать' в одну модель несколько чекпоинтов. Усредняем веса например 20 resnet c одинаковой архитектурой и обученных на одних данных. Получаем почти ту же стабильность, что и усреднение 20 отдельных предикшнов этих моделей, но со скоростью инференса и весом одного resnet.
Кстати, тут можно обычно докрутить и делать только GreedySoup: пробовать в ансамбль добавлять только те модели, которые делают предикты лучше. Но опять же, тут надо верить в свой CV, а в этом соревновании наверно никто не верил в свой CV.
Для сабмита использовали Post-processing with power adjustment. Идея проста, работает для очень классификации с очень большим числом классов. Берем предикты, из них выбираем n самых 'уверенных' и усиливаем их, занижая скоры для прочих классов.
#соревнование
Обзор международных соревнований в DS за прошлый год: на каких платформах, что используют победители, какие конкурсы проходят и т.п. Такие отчёты каждый год выходят (но тут ни разу ссылок на них не давал).
https://mlcontests.com/state-of-machine-learning-competitions-2024/
Пятое место #Birdclef2025
Мануальная обработка данных
Это вообще та самая 'секретная техника', которую все ленятся делать. Данные полезно ковырять/слушать смотреть руками
Использовали Silero для того, чтобы найти записи с человеческим голосом, затем слушали их уже своими ушами и вырезали все фрагменты, где слышен человек.
Вообще у Silero есть бот, так что я им пожалуй и озвучу этот раздел поста.
Для классов с низкой частотностью (меньше 30 семплов в трейне) дополнительно послушали все записи и из каждой вычистили участки, где птиц не слышно.
Для трейна брали только первые 30 сек записи, а для низкочастотных 60 сек. Там, где семплов было меньше 20 для класса- апсемплили, чтобы 'разудть' трейн.
Модели
Стакали кучу эффишентнетов. Благо они с легкостью влезали в ограничения по CPU
• 4x tf_efficientnetv2_s
• 3x tf_efficientnetv2_b3
• 4x tf_efficient_b3_ns
• 2x tf_efficient_b0_ns
Но важно что тренировали в три стейджа. В каждом FocalLoss, Adam, Cosine Annealing + warmup
Первый стейдж:
только основной набор данных, только основной таргет
Второй стейдж:
Основной таргет + псевдолейблы, только основные размеченные данные + двухэтапная самодистилляция
Третий стейдж:
Использовали все данные. Для каждого батча брали половину из размеченных данных, половину из неразмеченных. Для основного набора испольовали основные лейблы + псевдолейблы с второго этапа, для неразмеченных- только псевдолейблы
Ну и еще дважды самодистилляция.
Если вы шарите, то объясните плз в комментах почему самодистилл работает и почему его есть смысл больше двух раз делать? Там еще и перфоманс на самодистиллах растет. В комментах есть график того, какие резульатты получаются от уровня дистилла
Ну я пост про решение написал, вот вам тизер
Читать полностью…
Птичное соревнование закончилось, так что на этой неделе будут разборы птичного соревнования. Удивительно, но оно птичное даже в UMAP эмбедах, как можно увидеть выше
Ну или на следующей...
Ко мне снова пришли миньоны Рустама. В этот раз их видимо переалайнили: боты перестали хоть как-то отвечать на сообщения или как-то видоизменять скрипт. По ощущениям- там 50 разных фраз внутри и бот моделькой выбирает самый правдоподобный ответ. Скукота, но прогресс на лицо. Боты стали еще скучнее и больше похожими на классических спамеров.
А вот блеклист видимо все еще не прикрутили, чтобы токены на меня и других хейтеров не тратить. Удивительно, насколько Рустам читал lean startup, но не понимал что пишут
Сори что без оригинального контента пока
Читать полностью…
Approved:
Если занять хорошее место на Forams Classification 2025, то позовут выступать на семинаре CVPR.
Продолжая тему академичных соревнований:
Forams Classification 2025
Соревнование от CVPR и хорошее место возможно откроет вам выступление на воркшопе CVPR и приглашение на конфу. Но вообще авторы в соревновании ничего не пишут и не обещают по поводу конфы. Я им на всякий случай написал имейл, так что если они вдруг сподобятся ответить- я вам расскажу. В соревновании нет медалек, так что сильной конкуренции и дядек с личными H20 не будет
Данные тоже забавные:
3D сканы окаменелых моллюсков 128x128x128 вокселей и 15 классов. Загвоздка в том, что на каждый класс дано по 15 размеченных семплов, прямо как у мня на парах по классическому CV в свое время.
Данных всего 18424 примеров, так что подавляющая часть вообще не размечена.
Метрика- F1.
План для изи ачивки в академической карьере:
1. Берем команду из 5 человек
2. Смотрим глазами все классы и каждый размечает по 300 примеров (всего уже 1500 примеров)
3. Учим на jpeg-проекциях вокселей от авторов что-нибудь простое, типа Resnet.
4. Проверяем за резнетом и исправляем ошибки для самых уверенных классов
5. Учимся еще раз
6. Проверяем еще раз
7. ...
8. PROFIT!
🏀Не долго музыка играла, March Mania кончилась и все команды сыграли. 🏀
ПОЛУЧИЛОСЬ ОЧЕНЬ ПЛОХО
В этот раз было достаточно много 'Внезапных побед', так что после первых раундов меня довольно быстро потопило.
Из идей, которые можно вынести на будущее:
🔸 Надо обязательно участвовать. Это буквально лотерейный билет на solo gold — самый сложный шаг на пути к Kaggle Grandmaster, и его вполне можно вытянуть даже из паблик кернела с хорошим сидом
🔸 Вместо ELO — лучше GLIKO (версия 2). Он позволяет задавать разную дисперсию силы для разных команд, что особенно важно для нестабильных команд
🔸 Смотреть надо не на разницу очков, как Raddar, а на offense-defense метрики, как Джордж. Например, в попытках атак на кольцо хорошо видно, что одни команды закидывают трёшки, а другие играют в проход под кольцо. Результаты тоже сильно разные.
🔸 Женский баскетбол требует очень "неуверенного" подхода. Уровень команд более ровный, денег меньше, тренировки проще. В гранд-финале центровая проходит под кольцо и забивает сверху, а ее даже никто не пытается заблокировать. Фэнтези-баскет какой-то.
🔸 Последние матчи команды до турнира — самые важные. Игроки в NCAA проводят максимум 4 года, а звёзды уходят в профи уже через 2. Значит, старая статистика быстро устаревает и баланс сил меняетя.
㊙ Секретный хинт: можно взять отношения шансов на победу у букмейкеров и посмотреть, где модель фатально ошибается с распределением шансов в турнире через прямую симуляцию. Я наверно в следующий раз буду с ней блендить даже. Так можно отловить 'немодельные изменения', например травмы игроков
В строю наших слонов-компетишн-мастеров прибавилось:
/channel/AparinAI/123
🥇 Первое место на NeurIPS Lux AI 3
За первое место соперничали в основном только три топовые команды. Давайте разберем ключевые решения победителей соревы:
Массовый фичинжиниринг
• Создали более 1000+ признаков для каждого тайла (напомню, их размер — 24×24)
•Сами написали PPO с V-trace на PyTorch
• Тоже двухголовая архитектура. Одна голова выбирает действие, а вторая определяет, куда стрелять, если действие связано с выстрелом
• Приделали еще и голову, которая предсказывает, куда шагнут враги в следующий момент, даже если враг не наблюдается. Таким образом, модель научилась стрелять «вслепую» 👀
• Обучались в формате bfloat16 на 1.5 млрд матчей. Всего за всю соревновательную сессию сыграли около 20 млрд матчей ⚡
Все другие секреты PPO уже разобраны, поэтому давайте сосредоточимся на поистине уникальном приеме команды:
🔥 Противодействие Imitation Learning (тут еще есть второе мнение от настоящего грандмастера)
• С первого люкса команда понимала, что многие полагаются на imitation learning, и решила активно противодействовать этому.
• Были обучены две модели — слабая и сильная (предыдущая лучшая и текущая) — с рандомным выбором, какая из них будет играть во время инференса.
• Сильная модель работала всего в 15% случаев, но писала об этом в логи игры, позволяя после матча распарсить и понять какая модель играла и замерять эффект. Все остальное время учили IL оппонентов плохому
• Анализ логов после матчей позволял точно оценить преимущества сильной модели относительно предыдущей. К тому же, топовые команды генерировали около 1000 матчей в день уже на лб (из них ~150 с сильной моделью), так что можно было проверить статзначимость улучшения.
• Под конец модель настолько раздулась, что две модели не помещались в сабмишн, так что пришлось оставить только одну и добавить к её атрибутам шум для того, чтобы портить трейн сет всем подражателям
#lux
Опустился в бронзу из-за драмы:
Marquette, в победе которого моя модель уверена на 97%, проиграли New Mexico, причем из-за пары рандомных трехочковых в начале начали дизморалить и пытаться тоже забить издалека вместо борьбы под кольцом. Даже на графике видно, на сколько они все время были чуть-чуть позади и под конец окончательно сдали нервы. Просто сравните плотность атак из-за трехочковой линии у черных (New Mexico) и синих (Marquette)
UPD:
Драма продолжается
После этого разгона с New Mexico успел побывать на 4 🥇 месте (в деньгах 💰) и опуститься даже из бронзы на 177 место из-за какого-то неожиданно хорошего перфоманса Миссисипи
Ну что же, буду использовать полученный опыт в следующем году
Пока что единственный РУЧНОЙ ЧЕРВЬ мастер в этом казино
Читать полностью…
У вас митинги на работе не полчаса, а 25 минут, не для экономии времени, а потому, что в книжке »Сам себе MBA. Самообразование на 100%. Джош Кауфман« написано, что это способ сэкономить время менеджеров. Причем вообще-то эта идея предложена для оптимизации кастдева и сапорта
Скелетрон вернется с умными мыслями завтра
У вас каждый день дейли не потому, что дейли эффективны. У вас дейли потому, что в книжке »Scrum. Революционный метод управления проектами. Джефф Сазерленд« написано, что их можно делать чтобы инженеры-механики могли рассказать о своих проблемах и о том, что им не хватает запчастей
Скелетрон вернется с умными мыслями завтра
4 место в #BirdClef2025
Коротко, но ценно: иногда простота выигрывает.
Поскольку на BirdCLEF нас оценивают именно по AUC, логично оптимизировать его напрямую.
AUC-лосс устойчив к переобучению, но не поддерживает soft labels, как, например, кросс-энтропия.
class SoftAUCLoss(nn.Module):
def __init__(self, margin=1.0, pos_weight=1.0, neg_weight=1.0):
super().__init__()
self.margin = margin
self.pos_weight = pos_weight
self.neg_weight = neg_weight
def forward(self, preds, labels, sample_weights=None):
# Разделяем положительные и отрицательные предсказания
pos_mask = labels > 0.5
neg_mask = labels < 0.5
pos_preds, pos_labels = preds[pos_mask], labels[pos_mask]
neg_preds, neg_labels = preds[neg_mask], labels[neg_mask]
if pos_preds.numel() == 0 or neg_preds.numel() == 0:
return torch.tensor(0., device=preds.device)
# Веса отражают уверенность soft-label
pos_w = self.pos_weight * (pos_labels - 0.5)
neg_w = self.neg_weight * (0.5 - neg_labels)
if sample_weights is not None:
sw = sample_weights.unsqueeze(1).expand_as(labels)
pos_w *= sw[pos_mask]
neg_w *= sw[neg_mask]
# Считаем pairwise-разности и лог-лосс
diff = pos_preds.unsqueeze(1) - neg_preds.unsqueeze(0)
loss_matrix = torch.log1p(torch.exp(-self.margin * diff))
# Усредняем по всем парам с учётом весов
return (loss_matrix * pos_w.unsqueeze(1) * neg_w.unsqueeze(0)).mean()
BirdCLEF+ 2025
Очередная часть ежегодного соревнования от Cornell Lab of Ornithology.
Дано:
– 12 ГБ аудиозаписей птиц, насекомых, рептилий и т. д.
– Источники (около–опенсорс):
1. xeno-canto.org
2. iNaturalist
3. Colombian Sound Archive (CSA) института Гумбольдта в Колумбии
Первые два источника — чистый краудсорс, разметка «грязная»:
1. у части семплов встречаются продолжительные комментарии колубийского натуралиста на испанском;
2. муха залетает в микрофон и гудит 40 секунд из 50 секунд записи вообще-то птицы;
3. мой любимый фейл — запись птицы, где звук обрывается громким «бултых», а дальше — полная тишина на 90 сек. Видимо не все микрофоны пережили сборку датасета
Разметка (для всех семплов):
1. Основной лейбл — целевая живность, которую нужно предсказывать.
2. Вторичный лейбл — какие ещё виды могут быть слышны. Конечно же не гарантирует то, что все виды на записи хотя бы отмечены
3. Координаты
4. Автор записи
5. Оценка качества (только для xeno-canto)
6. Источник данных (одна из трёх библиотек)
Трейн/тест сплит:
Общий пул разбит по записям, но обработан по-разному:
В train — полные аудиофайлы.
В test — нарезки записей по 5 с.
Например, из записей длительностью 30 сек и 20 сек получится 10 тест-семплов:
первые 6 — с основным лейблом первой записи;
остальные 4 — с лейблом второй.
Метрика:
Macro-ROC-AUC — сортировка вероятностей внутри каждого класса и усреднение без учёта частоты встречаемости.
Ну и конечно же ограничения на железо:
90 минут CPU-only
Тут кстати тренд:
2025- 90 min CPU-only
2024- 120 min CPU-only
2023- 120 min CPU-only
2022- 9 hours с доступом к GPU
2021- 9 CPU часов или 3 GPU часа
Как решать будете?
Теперь образ Рустама приследует меня всюду
Читать полностью…
X X^t can be faster (Score: 150+ in 8 hours)
Link: https://readhacker.news/s/6uANa
Comments: https://readhacker.news/c/6uANa
Человечество:
Изобретает LLM-driven поиск, чтобы не читать булшит от маркетологов и ллмки переписали все без воды и CEO-оптимизации
Маркетологи:
МЫ СОБРАЛИ ДЛЯ ВАС ПЯТНАДЦАТЬ ТЫСЯЧ ПРОМТОВ КОТОРЫЕ ПОЗВОЛЯТ ВАМ ЛУЧШЕ ИСКАТЬ С ПОМОЩЬЮ AI
Python's new t-strings (Score: 154+ in 5 hours)
Link: https://readhacker.news/s/6t8rs
Comments: https://readhacker.news/c/6t8rs
Новое соревнование на Kaggle:
Yale/UNC-CH - Geophysical Waveform Inversion
Цель- инвертировать отражения сейсмических волн. Надо по 3D (два направления и время) предсказать карту глубин.
На kaggle только часть датасета в 108 гб, но полный датасет весит 2.2 террабайта. Тут есть нюанс- для каждой уникальной карты глубин есть 500 замеров, чтобы их усреднить и уменьшить шум.
Метрика MAE по 69 колонкам (мультирегрессия)
По сути нам нужно из данных
p(*), t, x, z и (s + eps) вычислить c(*) в заданных точках.
Мои шесть семестров дифуров из универа напряглись, хотя гиперболическое дифференциальное уравнение в частных производных мы кажется отдельно не разбирали
Мне в свое время очень нравилась идея поженить свои знания МЛ и время потраченное на дифуры и уже была хорошая сорева для этого:
Google Brain - Ventilator Pressure Prediction
Там нужно было моделировать давление в легких в зависимости от нагнетаемого объема воздуха, что хорошо описывается дифурами, но в топовых решениях были просто plug-n-play трансформеры 😭
Мою элитную LMU-магистратуру в этом году закрыли, потому что она оказалась слишком дорогой для немецкого правительства. Но в Германию все еще без проблем берут всех желающих и прошедших конкурсный отбор.
Тут на дружественном канале вышла как раз подборка немецких магистратур:
->>> подборка <<<-
Добавил бы от себя, что с этого года в TUM надо платить 6к евро в год за учебу, но это только в нем и остальные универы стоят порядка 100 евро в семестр + расходы на проживание
Kaggle для академиков
Прямо сейчас проходят соревнования, хорошее место в которых позволит опубликовать свой work-note и выступить с воркшопом на конфах CVPR25 (A+) / CLEF (A)
1. AnimalCLEF25 @ CVPR-FGVC & LifeCLEF
2. FungiCLEF25 @ CVPR-FGVC & LifeCLEF
3. PlantCLEF2025 @ LifeCLEF & CVPR-FGVC
4. GeoLifeCLEF25 @ CVPR & LifeCLEF
5. FathomNet 2025 @ CVPR-FGVC
Отдельно от них стоит BirdCLEF+ 2025. Это потому что за нее, в отличие от 5 предыдущих дают медальки, а значит конкуренция кратно выше. И это на самом деле очень хорошо, потому что можно на мягких лапах подкрасться к хорошим местам на первых пяти соревнованиях и против вас не будет драться на смерть весь консалтинг-отдел NVIDIA с 10к A100 в кармане. Отдел будет драться со мной за медальку на птичках.
А там глядишь, воркшоп с work-note на CVPR, магистратура в École Polytechnique и уютный офис Google в Париже с неплохой французской бытностью.
На фото это Эйфелева башня. Знаю, мыло, но ночью с рук сложно сделать совсем четкий снимок на polaroid. А почему я говорю именно про Париж- вы спросите лучше в лс.
А научиться решать соревы можно прямо вместе с @pseudolabeling
Guess who's back, bitch
Такие конечно эмоциональные качели от 'Я БЫЛ ПРАВ С САМОГО НАЧАЛА' до 'Ну не смог и не смог, ну чего бухтеть то'
March mania начался, все ставки сделаны и ставок больше нет.
Собственно задача этого когда, как и почти все время до этого- это предсказать исход матчей точнее, чем остальные кагглеры в терминах Brier-score
Здесь могла бы быть реклама вашей букмейкерской конторы.
🏀 🏀 🏀
Пока все три прогноза заходят, но и матчи вроде изи
🏀 🏀 🏀
Покупайте экспресс на матчи женской лиги NCAA
Через 19 дней будем знать результаты