Но давайте про саму олимпиаду и задачи.
Олимпиада в этом году была устроена так: 2 дня индивидуальных раундов, на каждом дается 3 задачи на 6 часов. Задачи, в целом, были сделаны по такому же принципу, как и в прошлом году: вам дается какая-то задача, которую нужно решить, данные и метрика к ней, бейзлайн решение и ограничения. Вам нужно сделать что-то в рамках ограничений, чтобы получить лучшую метрику на тестовом датасете. Ограничения обычно формулируются так, что можно использовать только определенные модели и/или данные, нельзя менять определенный код, есть ограничение по времени выполнения, и т.п.
В целом, почти Kaggle-like задачи, только ограничений побольше, чтобы задача не решалась простым fit-predict, перебором моделей и stacking, а нужно было немного подумать. Правда, в этом году многие задачи (особенно первого дня) все равно хорошо решались перебором параметров/сменой модели, что лично мне очень не понравилось. Но, как я писала выше, сделать такие задачи, которые будут достаточно интересными, но в которых простые бездумные переборы или подобные вещи не будут давать результата, довольно сложно, поэтому тут сильно ныть не буду
Еще момент: как и в прошлом году, до самой олимпиады (где-то в начале июля) всем странам открывались at-home задачи. Это три задачи по типу тех, которые будут на олимпиаде. А точнее, три задачи первого дня олимпиады — это некоторые модификации at-home задач. То есть, at-home задачи — это возможность понять, какого типа задачи будут на олимпиаде, и подготовиться к ним.
Задачи обоих дней олимпиады — в файлах к посту. Подробно все 6 задачи разбирать пока не буду: во-первых, еще не выложены авторские решения, а во-вторых, у нас с Сашей был план сделать вебинар с разбором задач. На вебинар обязательно позову)
Скажу только про два веселых момента:
- в первой задаче второго дня было всего 10 примеров на паблике, и 30 на привате. В итоге большинство наших школьников выбили 1 (максимум) на паблике, а на привате укатились ниже бейзлайна. Скоры за каждую задачу после контеста нормализовались так, что бейзлайн считался за 0 баллов, а лучший из скоров участников — за 100. В итоге приват по этой задаче получился оочень неожиданным. Если бы не эта задача, у нас было бы первое абсолютное место в индивидуальном зачете)
- третья задача второго дня — это практически моя задача Cuties Segmentation с отбора (NeoAI), который мы проводили в мае ( https://www.kaggle.com/competitions/neoai-2025-cuties-segmentation, а https://github.com/open-cu/neoai-2025.git). Я поняла это сразу, как услышала ее условие, а потом еще на всякий спросила у оргов, какое там авторское решение. И да, оно такое же, как у Cuties Segmentation. И обидно тут то, что при подготовке к межнару я рассказывала решение этой задачи минимум два раза, но никто из наших школьников ее все равно таким способом на IOAI не решил ¯\_(ツ)_/¯
Самое веселое, что когда я рассказывала идею решения этой задачи, школьники мне и до, и после IOAI говорили что-то вроде "да это слишком сложно, так задачи на AI контестах не решаются" ("сложность", в их понимании, там в том, что надо копаться в attention механизме модели CLIP). Ну и на IOAI, в итоге, трое из восьми человек придумали более простое решение, которое давало сопоставимое с авторским решением количество баллов, а пять остальных получили скор ниже. И, опять же, если бы пара из этих пяти человек реализовали решение с NeoAI, то было бы второе абсолютное место и 7 золотых медалей, а не 6.
Честно, мне из-за этого было прям пипец обидно 😢😣