Ends in 6 weeks
247 participants
792 submissions

Data Fusion Contest 2025 - Задача 1 "Label Craft"

Участникам необходимо предсказать категорию товаров на основе полученных данных о названиях товаров и их описаний.

Правила участия

Нажимая кнопку «Участвовать» и/или «Отправить решение», вы соглашаетесь с Правилами участия в соревновании Data Fusion Contest 2025.

Постановка задачи

В этом соревновании вам предстоит разработать алгоритм для автоматической категоризации товаров по их названию и атрибутам, даже в условиях неполной разметки.

Система категорий устроена в виде иерархического дерева (до 5 уровней вложенности), а данные о товарах поступают с множества торговых площадок, что создает ряд сложностей:

  • Разметка товаров неполная и неидеальная.
  • Атрибуты одних и тех же товаров могут отличаться на разных площадках или вовсе отсутствовать.
  • По мере расширения каталога могут появляться новые площадки и категории, которых не было раньше. 

В этом соревновании мы предлагаем участникам попробовать свои силы в постановке максимально приближенной к реальной: 

  • Задача осложняется тем, что в обучающей выборке категории размечены только для половины товаров, а в тестовой выборке встретятся категории, к которым нет размеченных примеров.
  • При этом вам заранее предоставлен полный список возможных категорий – сможете ли вы учесть их все и точно отнести товары к нужным классам?
  • LLM (большие языковые модели) выглядят многообещающе для подобных задач – но действительно ли они помогут? Это отличный шанс проверить различные подходы!

Подробнее про данные и их структуру можно узнать на странице “Данные

Формат решений

Это контейнерное соревнование:

  1. Обучите модель на предоставленных данных.
  2. Подготовьте Docker-контейнер и код с весами моделей.
  3. Отправьте решение в виде архива.
  4. Ваше решение будет автономно запущено на закрытых тестовых данных.

Решение получает на вход следующие именованные аргументы:

  • --input-path -i путь к файлу с тестовыми товарами (например, test.parquet)
  • --output-path -o имя файла, в который вам нужно сохранить результат (например, submit.csv)

Формат выходного файла — .csv с двумя столбцами: 

  • Столбец hash_id должен содержать предоставленные захэшированные идентификаторы товаров.
  • Столбец cat_id должен быть идентификатором категории в соответствии с предоставленным словарем категорий.

В архиве должны быть все необходимые для работы модели файлы. Как минимум, в архиве должен быть файл metadata.json с указанием используемого докер-образа (рекомендуем `odsai/df25-baseline:1.0`) и строки для запуска вашей модели.

{
   "image": "odsai/df25-baseline:1.0",
   "entry_point": "python -u run.py"
}

При желании вы можете использовать свой образ, выложив его на https://hub.docker.com. Вебинар о том, как собрать докер

ВАЖНО

  • Обратите внимание, что в тестовых данных будут другие товары. 
  • Если в файле отсутствует какой-то из предоставленных тестовых товаров, решение будет отвергнуто (оценочный скрипт выдаст ошибку).
  • Более того, в тестовых данных присутствуют категории товаров из словаря, для которых отсутствует разметка в обучающих данных. Получение разметки недостающих категорий это неотъемлемая часть задачи соревнования. 

Проверка решений

Решения проверяются автоматически:

  • Запуск решений происходит в изолированной среде без доступа в интернет. 
    • Все библиотеки и их версии должны быть уже загружены в вашем Docker образе.
    • Запуск происходит на полностью закрытых тестовых данных, которые не доступны и не передаются участникам.
  • Решения запускаются последовательно на 3 закрытых наборах тестовых данных:
    1. Check, отладочные 10 примеров, которые не идут в рейтинг.
    2. Public test, для результатов на Public лидерорде в течение соревнования. 
    3. Private test, для итоговых результатов Private лидерборда.

ВАЖНО

  • Если решение упало на любом тестовом наборе – оно не оценивается.
  • Победители соревнования определяются по результатам приватной части лидерборда. 

Метрика соревнования — HDA (Hierarchical Discounted Accuracy):

$$HDA = \frac{1}{N} \sum_{i=1}^N D(y_{i}, \hat{y}_{i} ) $$

$$ D(y_{i}, \hat{y}_{i} ) = \begin{cases}0 & \text{if $LCA (y_{i}, \hat{y}_{i})  = \emptyset$}\\  \text{$ e^{ - LevelDiff (y_{i}, \hat{y}_{i} ) } $} & \text{$else$}\end{cases}$$

$$ LevelDiff (y_{i}, \hat{y}_{i} ) = max(0, Level(y_{i}) - Level( LCA (y_{i}, \hat{y}_{i} ) ) )$$

$$\text{Где:}$$

$$N \text{ — число товаров},$$

$$y_{i} \text{ — истинные значения категории товара i},$$

$$\hat{y}_{i} \text{ — предсказанные значения категории товара i},$$

$$ Level(y_{i} ) \text{ — уровень класса категории в дереве категорий},$$

$$ LCA(y_{i}, y_{j} ) \text{ — наименьший общий предок между двумя категориями}.$$

Метрика учитывает структуру категорий:

  • Если решение ошиблось только в последнем уровне категоризации товара, это считает “полу”-ошибкой. Значит вместо 1 балла ваше решение получит 1/exp(1) ≈ 0.37 балла. 
  • Оценка экспоненциально снижается в зависимости от разности уровня наиболее глубокой корректно предсказанной категории и уровня корректной категории. Для ошибки в 2 уровня вы будете получать уже 1/exp(2) ≈ 0.13 балла.
  • Если товар имеет разметку до 4 уровня, а ваш алгоритм предсказывает 5-й, оценка идет по 4-му уровню.

Победители и итоговые результаты определяются по результатам на Private лидерборде. 
Для Private лидерборда можно выбрать до 2 финальных решений.

Доступные ресурсы для решений

  • 8 ядер CPU
  • 96Gb RAM
  • Видеокарта NVidia Tesla V100 (32Gb)

Ограничения для решений

  1. Архив с решением
    1. 5Gb для архива с решением
    2. 60 минут на работу решения: 30 минут на public часть и 30 минут на private
  2. Docker-образ, используемый в решении
    1. Образ должен быть опубликован и публично доступен на Dockerhub
    2. 20Gb ограничение на размер образа

Информация для участников

  • В соревновании можно принимать участие из любой точки мира. Участники могут объединяться в команды до 4-х человек. Участвовать можно в любом количестве из предложенных задач и номинаций. Победители соревнования смогут получить денежные призы только на расчетные счета банков, зарегистрированных на территории Российской Федерации.  Просим вас позаботиться об открытии счета в РФ заранее.
  • Ответы на вопросы по всему Data Fusion Contest 2025 доступны на FAQ странице трека.

Призовой фонд задачи 1, “Label Craft”

1 место: 1 000 000 рублей
2 место: 600 000 рублей
3 место: 350 000 рублей

Спецноминация 1 — 50 000 рублей
Спецноминация 2 — мерч

Cookies help us deliver our services. By using our services, you agree to our use of cookies.