Компания Google официально выпустила TensorFlow 2.21. Самым значительным обновлением в этом релизе является вывод LiteRT из стадии предварительного просмотра и превращение его в полностью готовый к использованию стек. В дальнейшем LiteRT будет служить универсальной системой вывода на устройстве, официально заменив TensorFlow Lite (TFLite).
Основные улучшения в LiteRT
Это обновление упрощает развёртывание моделей машинного обучения на мобильных и периферийных устройствах, расширяя при этом совместимость оборудования и фреймворков.
Производительность и аппаратное ускорение
При развёртывании моделей на периферийных устройствах (например, смартфонах или оборудовании IoT) основными ограничениями являются скорость вывода и эффективность использования батареи. LiteRT решает эту задачу с помощью обновлённого аппаратного ускорения:
* Улучшения GPU: LiteRT обеспечивает в 1,4 раза более высокую производительность GPU по сравнению с предыдущим фреймворком TFLite.
* Интеграция NPU: выпуск представляет собой современное ускорение NPU (Neural Processing Unit) с унифицированным и оптимизированным рабочим процессом как для GPU, так и для NPU на периферийных платформах.
Эта инфраструктура специально разработана для поддержки кросс-платформенного развёртывания GenAI для открытых моделей, таких как Gemma.
Операции с пониженной точностью (квантование)
Чтобы запускать сложные модели на устройствах с ограниченным объёмом памяти, разработчики используют метод, называемый квантованием. Это предполагает снижение точности — количества битов — используемых для хранения весов и активаций нейронной сети.
TensorFlow 2.21 значительно расширяет поддержку tf.lite операторов для типов данных с пониженной точностью, чтобы повысить эффективность:
* Оператор SQRT теперь поддерживает int8 и int16x8.
* Операторы сравнения теперь поддерживают int16x8.
* tfl.cast теперь поддерживает преобразования с участием INT2 и INT4.
* tfl.slice добавил поддержку INT4.
* tfl.fully_connected теперь включает поддержку INT2.
Расширенная поддержка фреймворков
Исторически сложилось так, что преобразование моделей из разных обучающих фреймворков в формат, удобный для мобильных устройств, могло быть затруднено. LiteRT упрощает эту задачу, предлагая первоклассную поддержку PyTorch и JAX через бесшовную конвертацию моделей.
Разработчики теперь могут обучать свои модели в PyTorch или JAX и конвертировать их напрямую для развёртывания на устройствах без необходимости сначала переписывать архитектуру в TensorFlow.
Фокус на обслуживании, безопасности и экосистеме
Компания Google перераспределяет ресурсы TensorFlow Core, чтобы сосредоточиться на долгосрочной стабильности. Команда разработчиков теперь будет заниматься исключительно:
* Безопасностью и исправлением ошибок: быстрое устранение уязвимостей и критических ошибок путём выпуска минорных и патч-версий по мере необходимости.
* Обновлениями зависимостей: выпуск минорных версий для поддержки обновлений базовых зависимостей, включая новые релизы Python.
* Вкладом сообщества: продолжение рассмотрения и принятия критических исправлений ошибок из сообщества с открытым исходным кодом.
Эти обязательства распространяются на более широкую корпоративную экосистему, включая: TF.data, TensorFlow Serving, TFX, TensorFlow Data Validation, TensorFlow Transform, TensorFlow Model Analysis, TensorFlow Recommenders, TensorFlow Text, TensorBoard и TensorFlow Quantum.
Ключевые выводы
* LiteRT официально заменяет TFLite: LiteRT вышел из стадии предварительного просмотра и стал полноценным продуктом, официально став основным фреймворком Google для вывода на устройстве при развёртывании моделей машинного обучения на мобильных и периферийных устройствах.
* Значительное ускорение GPU и NPU: обновлённый рабочий процесс обеспечивает в 1,4 раза более высокую производительность GPU по сравнению с TFLite и представляет унифицированный рабочий процесс для ускорения NPU, упрощая запуск тяжёлых рабочих нагрузок GenAI (например, Gemma) на специализированном периферийном оборудовании.
* Агрессивное квантование моделей (INT4/INT2): для максимизации эффективности использования памяти на периферийных устройствах tf.lite операторы расширили поддержку экстремальных типов данных с пониженной точностью.
* Бесшовная совместимость с PyTorch и JAX: разработчики больше не привязаны к обучению с помощью TensorFlow для развёртывания на периферийных устройствах. LiteRT теперь обеспечивает первоклассную, нативную конвертацию моделей как для PyTorch, так и для JAX, оптимизируя процесс от исследований до производства.
1. Какие основные улучшения предлагает LiteRT в TensorFlow 2.21?
Ответ: LiteRT в TensorFlow 2.21 предлагает упрощённое развёртывание моделей машинного обучения на мобильных и периферийных устройствах, расширяя при этом совместимость оборудования и фреймворков. Также LiteRT обеспечивает в 1,4 раза более высокую производительность GPU по сравнению с предыдущим фреймворком TFLite и предлагает современное ускорение NPU (Neural Processing Unit) с унифицированным и оптимизированным рабочим процессом как для GPU, так и для NPU на периферийных платформах.
2. Какие типы данных с пониженной точностью теперь поддерживает TensorFlow 2.21?
Ответ: TensorFlow 2.21 значительно расширяет поддержку tf.lite операторов для типов данных с пониженной точностью. Например, оператор SQRT теперь поддерживает int8 и int16x8, операторы сравнения — int16x8, tfl.cast — преобразования с участием INT2 и INT4, tfl.slice добавил поддержку INT4, а tfl.fully_connected теперь включает поддержку INT2.
3. Какие фреймворки теперь поддерживает LiteRT?
Ответ: LiteRT упрощает задачу преобразования моделей из разных обучающих фреймворков в формат, удобный для мобильных устройств, предлагая первоклассную поддержку PyTorch и JAX через бесшовную конвертацию моделей. Разработчики теперь могут обучать свои модели в PyTorch или JAX и конвертировать их напрямую для развёртывания на устройствах без необходимости сначала переписывать архитектуру в TensorFlow.
4. Какие цели преследует Google, перераспределяя ресурсы TensorFlow Core?
Ответ: Google перераспределяет ресурсы TensorFlow Core, чтобы сосредоточиться на долгосрочной стабильности. Команда разработчиков теперь будет заниматься исключительно безопасностью и исправлением ошибок, обновлениями зависимостей и вкладом сообщества. Это включает быстрое устранение уязвимостей и критических ошибок путём выпуска минорных и патч-версий по мере необходимости, выпуск минорных версий для поддержки обновлений базовых зависимостей, включая новые релизы Python, и продолжение рассмотрения и принятия критических исправлений ошибок из сообщества с открытым исходным кодом.
5. Какие ключевые выводы можно сделать из обновления TensorFlow 2.21?
Ответ: Ключевые выводы из обновления TensorFlow 2.21 включают: LiteRT официально заменяет TFLite, значительное ускорение GPU и NPU, агрессивное квантование моделей (INT4/INT2) для максимизации эффективности использования памяти на периферийных устройствах и бесшовную совместимость с PyTorch и JAX.