Модели машинного обучения (ML), которые вы используете с LiteRT, изначально создаются и обучаются с использованием основных библиотек и инструментов TensorFlow. Построив модель с помощью ядра TensorFlow, вы можете преобразовать ее в меньший и более эффективный формат модели ML, называемый моделью LiteRT. В этом разделе представлены рекомендации по преобразованию моделей TensorFlow в формат модели LiteRT.
Рабочий процесс преобразования
Преобразование моделей TensorFlow в формат LiteRT может осуществляться несколькими способами в зависимости от содержимого вашей модели машинного обучения. На первом этапе этого процесса вам следует оценить свою модель, чтобы определить, можно ли ее напрямую преобразовать. Эта оценка определяет, поддерживается ли содержимое модели стандартными средами выполнения LiteRT на основе используемых ею операций TensorFlow. Если ваша модель использует операции за пределами поддерживаемого набора, у вас есть возможность провести рефакторинг модели или использовать расширенные методы преобразования.
На диаграмме ниже показаны общие этапы преобразования модели.
Рисунок 1. Рабочий процесс преобразования LiteRT.
В следующих разделах описывается процесс оценки и преобразования моделей для использования с LiteRT.
Входные форматы модели
Вы можете использовать конвертер со следующими форматами входных моделей:
- SavedModel ( рекомендуется ): модель TensorFlow, сохраненная в виде набора файлов на диске.
- Модель Keras : модель, созданная с использованием высокоуровневого API Keras.
- Формат Keras H5 : облегченная альтернатива формату SavedModel, поддерживаемая Keras API.
- Модели, построенные на основе конкретных функций : модель, созданная с использованием низкоуровневого API TensorFlow.
Вы можете сохранить модели Keras и конкретные функции как SavedModel и преобразовать их, используя рекомендуемый путь.
Если у вас есть модель Jax, вы можете использовать API TFLiteConverter.experimental_from_jax
, чтобы преобразовать ее в формат LiteRT. Обратите внимание, что этот API может быть изменен в экспериментальном режиме.
Оценка конверсии
Оценка вашей модели — важный шаг перед попыткой ее преобразования. При оценке вы хотите определить, совместимо ли содержимое вашей модели с форматом LiteRT. Вам также следует определить, подходит ли ваша модель для использования на мобильных и периферийных устройствах с точки зрения размера используемых моделью данных, требований к ее аппаратной обработке, а также общего размера и сложности модели.
Для многих моделей преобразователь должен работать «из коробки». Однако встроенная библиотека операторов LiteRT поддерживает подмножество основных операторов TensorFlow, а это означает, что для некоторых моделей могут потребоваться дополнительные шаги перед преобразованием в LiteRT. Кроме того, некоторые операции, поддерживаемые LiteRT, имеют ограниченные требования к использованию по соображениям производительности. См. руководство по совместимости операторов , чтобы определить, требуется ли рефакторинг вашей модели для преобразования.
Преобразование модели
Конвертер LiteRT принимает модель TensorFlow и генерирует модель LiteRT (оптимизированный формат FlatBuffer, идентифицируемый расширением файла .tflite
). Вы можете загрузить SavedModel или напрямую преобразовать модель, созданную в коде.
Конвертер принимает 3 основных флага (или параметра), которые настраивают преобразование для вашей модели:
- Флаги совместимости позволяют указать, должно ли преобразование допускать пользовательские операторы.
- Флаги оптимизации позволяют указать тип оптимизации, применяемой во время преобразования. Наиболее часто используемым методом оптимизации является квантизация после обучения .
- Флаги метаданных позволяют добавлять метаданные в преобразованную модель, что упрощает создание кода оболочки для конкретной платформы при развертывании моделей на устройствах.
Вы можете преобразовать свою модель с помощью API Python или инструмента командной строки . См. руководство по модели Convert TF для получения пошаговых инструкций по запуску конвертера на вашей модели.
Обычно вы конвертируете свою модель для стандартной среды выполнения LiteRT или среды выполнения сервисов Google Play для LiteRT (бета-версия). Некоторые расширенные варианты использования требуют настройки среды выполнения модели, что требует дополнительных шагов в процессе преобразования. Дополнительную информацию см. в разделе «Расширенная среда выполнения» обзора Android.
Расширенное преобразование
Если при запуске конвертера на вашей модели вы столкнулись с ошибками , скорее всего, у вас проблема с совместимостью операторов. Не все операции TensorFlow поддерживаются TensorFlow Lite. Эти проблемы можно обойти, проведя рефакторинг модели или используя расширенные параметры преобразования, которые позволяют создать модифицированную модель формата LiteRT и пользовательскую среду выполнения для этой модели.
- Дополнительную информацию о совместимости моделей TensorFlow и LiteRT см. в обзоре совместимости моделей .
- В разделах «Обзор совместимости моделей» описаны расширенные методы рефакторинга модели, например руководство по операторам выбора .
- Полный список операций и ограничений см. на странице LiteRT Ops .
Следующие шаги
- См. руководство по конвертации моделей TF, чтобы быстро приступить к преобразованию вашей модели.
- См. обзор оптимизации , чтобы узнать, как оптимизировать преобразованную модель с помощью таких методов, как квантование после обучения .
- См. обзор Добавление метаданных, чтобы узнать, как добавлять метаданные в модели. Метаданные предоставляют описание вашей модели для других целей, а также информацию, которую можно использовать генераторами кода.