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

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

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

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

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

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

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

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

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

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

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

Квантование

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

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

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

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

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

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

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