Эффективное глубокое обучение освобождение мощности сжатия модели

Эффективное глубокое обучение освобождение мощности сжатия модели

Изображение от автора

Ускорение скорости вывода модели в производстве

Введение

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

  • Задержка: это время, затрачиваемое на выполнение задачи, например, время загрузки веб-страницы после щелчка по ссылке. Это время ожидания между началом чего-либо и получением результата.
  • Пропускная способность: это количество запросов, которое система может обработать за определенное время.

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

Сжатие модели

Существуют техники, которые направлены на уменьшение размера моделей, поэтому их называют техниками сжатия модели. Другие техники фокусируются на ускорении вывода моделей и относятся к области оптимизации моделей. Однако, зачастую, уменьшение размера моделей также помогает увеличить скорость вывода, поэтому граница между этими двумя областями исследования очень размыта.

Факторизация низкого ранга

Это первый метод, которым мы знакомимся, и он сейчас активно изучается. Фактически, недавно было опубликовано много статей по этой теме.

Основная идея состоит в замене матриц нейронной сети (матриц, представляющих слои сети) на матрицы меньшей размерности, хотя было бы более правильно говорить о тензорах, потому что часто у нас есть матрицы более чем с двумя измерениями. Таким образом, у нас будет меньше параметров сети и быстрее вывод.

Тривиальным случаем является замена 3×3 сверток в сверточной нейронной сети на 1×1 свертки. Такие техники используются сетями, например, SqueezeNet.