Коротко
Автор переобработал открытые нейроданные человека с БАС и снизил долю ошибок слов с 50% до 23,5%, сочетая CTC-декодирование, языковую модель и выбор кандидатов LLM. Главный вывод: LLM надёжнее выбирает из вариантов акустического декодера, чем пытается самостоятельно восстановить фразу.
Контекст
Автор самостоятельно воспроизвёл и расширил офлайн-декодер на наборе Willett et al. (Nature, 2023), опубликованном на Dryad. Данные — попытки произнести предложения одним участником с БАС; задача состояла в переводе активности моторной коры в текст.
Главное
- Источник данных — набор competitionData на Dryad размером 3,67 ГБ, лицензия CC0: 8 800 обучающих и 880 тестовых предложений одного участника с БАС.
- Использовались записи за 24 дня, область моторной коры 6v и сигналы с 128 электродов; признаки формировались каждые 20 мс.
- Уменьшенная двунаправленная GRU-модель имела 3 слоя, 512 единиц и 37,8 млн параметров; обучение заняло 5 ч 12 мин на c7i.4xlarge.
- Исходное сопоставление фонем с ближайшими словами давало 50,0% word error rate (WER); фонемный PER на тесте был 22,2%.
- Claude Sonnet 4.6 с temperature 0 восстанавливал фразу по фонемам, но мог сочинять семантически правдоподобный ответ; ограничение по расхождению числа слов улучшило WER до 34,6%.
- Для словесного CTC-декодирования применялись lexicon, 3-грамма, torchaudio flashlight decoder, beam_size=100, lm_weight=1.5 и word_score=-1.0; лучшую десятку передавали LLM для выбора.
- Лексикон ограничили 6 569 словами языковой модели: полный CMU-словарь примерно из 130 000 слов приводил к WER около 90% из-за оценки неизвестных и редких слов.
- 3-грамма на обучающих предложениях дала 29,7% WER по первому кандидату; добавление около 2,04 млн предложений Tatoeba снизило его до 25,7%, а выбор Sonnet из десяти — до 23,5%.
- LibriSpeech 3-грамма не помогла (29,8%): автор связывает это с тем, что книжный текст хуже соответствует разговорным тестовым предложениям.
- В финальном разделении по 440 предложений Sonnet 4.6 показал 23,0% WER, Opus 4.6 — 23,1%; дополнительная подсказка фонемами ухудшила выбор.
Как сделано
Использованы 8 800 обучающих и 880 тестовых предложений, записанных за 24 дня. Из области 6v взяты пороговые пересечения и мощность spike-band на 128 электродах: 256 признаков на интервал 20 мс, нормализованных отдельно для блоков записей. Целевые метки — 39 фонем и тишина; произношения брались из CMU Dictionary, а неизвестные слова транскрибировались через g2p_en.
Модель на базе PyTorch baseline сглаживала вход гауссовым фильтром, применяла отдельный входной слой для каждого дня, softsign, контекстные окна по 32 бина со stride 4 и двунаправленный GRU. Вместо базовой модели с 5 слоями и 1 024 единицами использована версия с 3 слоями, 512 единицами и 37,8 млн параметров. Обучение на c7i.4xlarge с 8 потоками заняло 5 часов 12 минут на 10 000 батчей.
Затем автор последовательно проверил поиск ближайших слов по фонемам, свободное восстановление фразы Claude Sonnet 4.6 (Amazon Bedrock, temperature 0), CTC-декодер слов с лексиконом и 3-граммной языковой моделью, а также выбор LLM из 10 лучших гипотез. Для итоговой версии добавлены примерно 2,04 млн предложений Tatoeba; совпадающие с тестом 39 предложений исключены. Для финальной проверки тест разделён на development и evaluation по 440 предложений.
Результаты
На тесте фонемная ошибка составила 22,2%. Ошибка распознавания слов снизилась с 50,0% при простом сопоставлении к ближайшим словам до 34,6% с LLM-генерацией и ограничителем по числу слов, затем до 26,0% при выборе LLM из 10 вариантов CTC-декодера с обучающей 3-граммой. С Tatoeba показатель достиг 23,5%; 297 из 880 предложений были распознаны точно, а лучший из десяти кандидатов знал правильный ответ в 80,6% случаев (oracle WER 19,4%).
На чисто отложенной половине теста Sonnet 4.6 с выбором из 10 кандидатов показал 23,0% ошибок, Opus 4.6 — 23,1%, а декодер без LLM — 25,4%. Разница Sonnet и Opus незначительна по приведённому bootstrap-интервалу. LLM ошибочно заменила правильный первый вариант на неверный в трёх предложениях.
Ограничения
Это офлайн-анализ записей одного участника, а не испытание работающего в реальном времени интерфейса. Обучающая ошибка 4,9% против 22,2% тестовой указывает на слабое обобщение. Многие решения подбирались с использованием тестового набора; только финальное сравнение на разделении development/evaluation является чистой отложенной проверкой. Автор не использовал официальную крупную n-граммную модель, для построения графа которой нужно около 60 ГБ памяти. Результат 23,5% нельзя напрямую сравнивать с 23,8% в статье Willett et al.: различались модели, языковые модели, словари и оценивание. Свободная генерация LLM может подменять исходную фразу правдоподобной; подсказка с фонемами ухудшила результаты, а расширение списка кандидатов не помогло модели найти дополнительные правильные ответы.
Что взять себе
- Для речевого BCI полезно разделять акустическое распознавание и языковую правдоподобность: сначала строить набор кандидатов, затем просить LLM выбрать среди них.
- Свободная генерация LLM способна исправлять шумные входы, но также уверенно заменять реальную фразу другой; ограничение выбора кандидатами снижает этот риск.
- Языковая модель должна соответствовать домену: короткие разговорные предложения Tatoeba оказались полезнее книжного корпуса LibriSpeech для этих тестовых фраз.
- Важно проверять утечки и переобучение: автор отдельно оговаривает подбор параметров по тесту и приводит результат на отложенной половине.
Читать оригинал, если…
Откройте оригинал, если нужны код декодера, таблицы по вариантам языковых моделей и подробности настройки лексикона, CTC-поиска и разбиения теста.