NPU в Яндекс Станции
В Станции Миди, Дуо Макс и ТВ Станции устанавливают нейронные процессоры (NPU). О том, зачем они нужны и с какими трудностями специалисты компании столкнулись при их использовании, нашему каналу рассказал ML-разработчик Александр Ростов.
Вычислительные ресурсы Станции ограничены, а если поставить в такое небольшое устройство слишком мощный процессор, он будет сильно нагреваться. Решение — NPU, который берёт на себя расчёты, связанные с моделями. Это чип, созданный специально для работы с нейросетями и ускорения ML-задач.
Так, до внедрения нейронного процессора разработчикам приходилось делать маленькие модели голосовой активации или споттерные модели — до миллиона параметров. Благодаря NPU в Станции теперь есть модели и на десятки миллионов параметров. Это позволило существенно прибавить в качестве, а также снизить число ложных срабатываний и случаев, когда колонка не реагирует на запрос пользователя.
По сути, NPU выступает в роли верификатора, проверяя, не допустила ли ложного срабатывания модель, работающая на CPU. Кроме того, NPU позволяет уменьшить CPU-модель и тем самым снять часть нагрузки с центрального процессора. Из-за этого вся система стала работать быстрее.
NPU работает со свёрточными нейросетями. Они учатся на GPU, затем конвертируются для применения с помощью библиотеки TensorFlow Lite для работы на NPU. Чип полностью используется споттерными моделями, однако на Станции Дуо Макс он отвечает и за распознавание жестов.
При тренировке NPU-моделей возникла проблема: стандартные датасеты оказались непригодны для обучения хорошей NPU-модели. Это было связано как со спецификой работы верификатора, так и с увеличением размера модели. CPU-модель работает на всём потоке звука, и количество негативных примеров преобладает над активациями. В свою очередь, верификатор работает только на активациях CPU-модели, поэтому видит в основном позитивные примеры.
Для снижения числа случаев, когда колонка не реагирует на пользователя, понадобилось «ухудшить» CPU-модель, чтобы она активировалась чаще. Так как обучающие данные изначально состояли из активаций более хорошей CPU-модели, это вызвало появление ложных активаций, которых верификационная модель не видела при обучении.
Чтобы решить эти проблемы, потребовалось собрать новый датасет, а также увеличить его в несколько раз.
ML Underhood
В Станции Миди, Дуо Макс и ТВ Станции устанавливают нейронные процессоры (NPU). О том, зачем они нужны и с какими трудностями специалисты компании столкнулись при их использовании, нашему каналу рассказал ML-разработчик Александр Ростов.
Вычислительные ресурсы Станции ограничены, а если поставить в такое небольшое устройство слишком мощный процессор, он будет сильно нагреваться. Решение — NPU, который берёт на себя расчёты, связанные с моделями. Это чип, созданный специально для работы с нейросетями и ускорения ML-задач.
Так, до внедрения нейронного процессора разработчикам приходилось делать маленькие модели голосовой активации или споттерные модели — до миллиона параметров. Благодаря NPU в Станции теперь есть модели и на десятки миллионов параметров. Это позволило существенно прибавить в качестве, а также снизить число ложных срабатываний и случаев, когда колонка не реагирует на запрос пользователя.
По сути, NPU выступает в роли верификатора, проверяя, не допустила ли ложного срабатывания модель, работающая на CPU. Кроме того, NPU позволяет уменьшить CPU-модель и тем самым снять часть нагрузки с центрального процессора. Из-за этого вся система стала работать быстрее.
NPU работает со свёрточными нейросетями. Они учатся на GPU, затем конвертируются для применения с помощью библиотеки TensorFlow Lite для работы на NPU. Чип полностью используется споттерными моделями, однако на Станции Дуо Макс он отвечает и за распознавание жестов.
При тренировке NPU-моделей возникла проблема: стандартные датасеты оказались непригодны для обучения хорошей NPU-модели. Это было связано как со спецификой работы верификатора, так и с увеличением размера модели. CPU-модель работает на всём потоке звука, и количество негативных примеров преобладает над активациями. В свою очередь, верификатор работает только на активациях CPU-модели, поэтому видит в основном позитивные примеры.
Для снижения числа случаев, когда колонка не реагирует на пользователя, понадобилось «ухудшить» CPU-модель, чтобы она активировалась чаще. Так как обучающие данные изначально состояли из активаций более хорошей CPU-модели, это вызвало появление ложных активаций, которых верификационная модель не видела при обучении.
Чтобы решить эти проблемы, потребовалось собрать новый датасет, а также увеличить его в несколько раз.
ML Underhood
3 113 просмотров · 27 реакций
Открыть в Telegram · Открыть пост на сайте