"Боремся с проклятыми токенами 😎 Люблю статьи от авторов phi — очень простые с топорными методами, но работают хорошо. В тех репорте phi-4 показали, что 🔹 Проклятые (и благословенные) токены существуют 🔹 Предложили, как с этим бороться Для задач, где есть правильный ответ, мы можем найти токены, которые негативно или позитивно влияют на вероятность успешного ответа `p(success)` Как найти такие токены? — авторы называют их pivotal tokens Считаем условную вероятность, что ответ будет правильным при заданном префиксе ответа. То есть просто эмпирически считаем, какой процент правильных ответов будет при префиксе `import Flask` Таким макаром находим все pivotal tokens в нашем трейн сете. И учим модель различать хорошие токены от плохих. Для этого формируем пары prompt = promt + answer prefix good response = good token bad response = bad token И запускаем DPO на этих парах. Еще раз: мы учим предсказывать только один токен! ⚠️ Если бы мы просто делали SFT или DPO на полных ответах, то учились бы предсказывать эти проклятые токены, которые негативно влияют на вероятность успешного ответа. В таблице 9 можно посмотреть, как DPO на pivotal tokens (stage 1) накидывает в качестве по сравнению с обычным DPO и SFT 🤨 Меня удивило, что проклятыми токенами могут быть вполне безобидные токены в стиле предсказал ""that"" вместо ""the"" (см. скрины в треде) 📖 Статья @neural_cat"