MobileNMT: Обеспечение перевода в 15 МБ и 30 мс
MobileNMT: Enabling Translation in 15MB and 30ms
June 7, 2023
Авторы: Ye Lin, Xiaohui Wang, Zhexi Zhang, Mingxuan Wang, Tong Xiao, Jingbo Zhu
cs.AI
Аннотация
Развертывание моделей нейронного машинного перевода (NMT) на мобильных устройствах крайне важно для обеспечения конфиденциальности, низкой задержки и работы в автономных сценариях. Однако модели NMT с высокой емкостью обычно имеют большой размер. Запуск таких моделей на устройствах с ограниченным объемом памяти, вычислительными ресурсами и энергопотреблением представляет собой сложную задачу. Существующие подходы либо сосредоточены на одной метрике, такой как количество операций с плавающей запятой (FLOPs), либо используют универсальные движки, которые неэффективны для авторегрессивного декодирования. В данной статье мы представляем MobileNMT — систему, способную выполнять перевод на устройствах с использованием всего 15 МБ памяти и за 30 мс. Мы предлагаем набор принципов для сжатия моделей в сочетании с квантованием. Кроме того, мы разрабатываем движок, оптимизированный для работы с INT8 и декодированием. Благодаря совместной разработке модели и движка, по сравнению с существующими системами, мы ускоряем выполнение в 47,0 раз и сокращаем использование памяти на 99,5% при потере всего 11,6% по метрике BLEU. Исходный код доступен по адресу https://github.com/zjersey/Lightseq-ARM.
English
Deploying NMT models on mobile devices is essential for privacy, low latency,
and offline scenarios. For high model capacity, NMT models are rather large.
Running these models on devices is challenging with limited storage, memory,
computation, and power consumption. Existing work either only focuses on a
single metric such as FLOPs or general engine which is not good at
auto-regressive decoding. In this paper, we present MobileNMT, a system that
can translate in 15MB and 30ms on devices. We propose a series of principles
for model compression when combined with quantization. Further, we implement an
engine that is friendly to INT8 and decoding. With the co-design of model and
engine, compared with the existing system, we speed up 47.0x and save 99.5% of
memory with only 11.6% loss of BLEU. The code is publicly available at
https://github.com/zjersey/Lightseq-ARM.