На что обращать внимание при оценке ML-моделей на нейроданных: teacher forcing на инференсе

Уже довольно много лет популярна тема декодирования речи по данным мозга. Популярность вполне понятна: здесь есть и практическая польза, например речевые протезы, и очень хайповое описание в духе «читаем мысли».

Несколько лет назад для этой задачи начали пробовать большие языковые модели. Идея там обычно такая: модель получает предыдущие слова и активность мозга в момент текущего слова, а дальше предсказывает следующее слово.

Проблема в том, что многие исследователи оценивали свои результаты с teacher forcing, то есть подавали модели не её собственные предсказанные слова с предыдущих шагов, а истинные. Сама по себе эта техника существует давно, ещё со времён RNN, и используется при обучении. Смысл в том, что плохая генерация в начале последовательности, когда модель ещё только учится, не должна сразу «отравить» все следующие шаги и создать накопление ошибки. Для обучения это нормальный приём.

Но на инференсе ситуация уже другая. Когда модель обучена, использовать teacher forcing при оценке просто бессмысленно с точки зрения реального применения. Если мы и так знаем истинные предыдущие слова, то зачем их предсказывать? Более того, такой режим размывает вклад сигнала мозга, потому что языковая модель и сама по себе может довольно осмысленно продолжать текст, если предыдущие слова уже известны.

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