Оптимизация модели TensorFlow

Набор инструментов для оптимизации моделей TensorFlow сводит к минимуму сложность оптимизации логических выводов машинного обучения.

Эффективность вывода является важной проблемой при развертывании моделей машинного обучения из-за задержки, использования памяти и во многих случаях энергопотребления. В частности, на пограничных устройствах, таких как мобильные устройства и Интернет вещей (IoT), ресурсы еще больше ограничены, и размер модели и эффективность вычислений становятся серьезной проблемой.

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

Сценарии использования

Оптимизация модели полезна, среди прочего, для:

  • Снижение задержки и стоимости вывода как для облачных, так и для пограничных устройств (например, мобильных устройств, Интернета вещей).
  • Развертывание моделей на периферийных устройствах с ограничениями по обработке, памяти и / или энергопотреблению.
  • Уменьшение размера полезной нагрузки для беспроводного обновления модели.
  • Включение выполнения на оборудовании с ограничением или оптимизацией для операций с фиксированной точкой.
  • Оптимизация моделей для аппаратных ускорителей специального назначения.

Методы оптимизации

Область оптимизации модели может включать различные методы:

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

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

Квантование

Квантованные модели - это модели, в которых мы представляем модели с более низкой точностью, такие как 8-битные целые числа в отличие от 32-битных чисел с плавающей запятой. Для использования определенного оборудования требуется более низкая точность.

Редкость и обрезка

Разреженные модели - это модели, в которых связи между операторами (т.е. уровнями нейронной сети) были сокращены, вводя нули в тензоры параметров.

Кластеризация

Кластерные модели - это модели, в которых параметры исходной модели заменяются меньшим количеством уникальных значений.

Совместная оптимизация

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