Duck debugging

Сложность: 800

“The bug disappears when you explain it to a rubber duck.”


Пролог

После череды неудачных релизов, загадочных багов и нервных breakdown’ов инженеры Holmes Industries
пришли к выводу: код чинится не усилием воли, а объяснением проблемы резиновой уточке.

Исследование показало, что если программист внятно рассказывает утке,
почему что-то не работает, — баг самоуничтожается из стыда.

Тогда компания внедрила корпоративную систему Duck Debugging AI,
где разговоры программистов с уточкой автоматически анализируются,
а эффективность “разговора” предсказывает ИИ.

Ваша миссия — создать модель, которая определит,
когда разработчик действительно понял проблему
(и утка может быть отпущена с миром).


Задача

Дан датасет реальных (ладно, синтетических) диалогов с уточкой.
Каждый диалог — это короткий фрагмент, где разработчик объясняет свою проблему.
Иногда в процессе объяснения наступает озарение (aha-момент) — баг исправлен.
Иногда — нет, и утка остаётся разочарованной.

Ваша задача:

определить вероятность p_fix, что диалог приведёт к устранению ошибки.


Примеры

dialogue_id text label
42 "Wait... why am I sorting twice? Oh." 1
256 "It works on my machine, so must be the CI's fault." 0
404 "print(x) — huh, it’s None. oh… OH NO." 1
666 "I’ll just add one more if-statement, nothing can go wrong." 0
9001 "Maybe the async function needs await… never mind, it’s fixed!" 1

Формат данных

duck_dialogues.csv

dialogue_id,text,label

где: - text — реплика программиста, - label — 1 (разговор помог), 0 (не помог).

duck_avatars/

5 аватарок уточек (duck_1.pngduck_5.png),
которые смотрят на вас с непониманием и грустью.
(никак не влияют на метку, но повышают продуктивность на 10%)

duck_vectors.npy

векторное представление эмбеддинга фразы "Thanks, duck!"
используется в бонусной метрике.


Вы должны

Построить модель, которая предсказывает p_fix
вероятность того, что объяснение приведёт к исправлению бага.

Выходной файл submission.csv: dialogue_id,p_fix


Метрика

Основная метрика: ROC-AUC
(потому что даже утке нужен AUC)

Бонусная метрика: DuckScore™
$$ DuckScore = AUC + 0.05 \cdot \text{sim}("Thanks, duck!", \text{your mean embedding}) $$

где
(\text{sim}) — косинусное сходство между усреднённым эмбеддингом ваших предсказаний
и вектором благодарности "Thanks, duck!".

Если ваша модель не понимает благодарность —
она не понимает и человека.


"Sometimes, the real debugger was the friend we made along the way."

"Quack." — Duck, 2025

Данные для обучения: train_data

Отправить решение

Чтобы отправить решение, войдите в аккаунт.

Мои 5 посылок по задаче: Duck debugging

Пока нет посылок по этой задаче.
ID Дата Статус Детали
Нет посылок