Os modelos de machine learning (ML) usados com a LiteRT são modelos originais criados e treinados com as principais ferramentas e bibliotecas do TensorFlow. Depois de construir um modelo com TensorFlow Core, é possível convertê-lo em um formato de modelo de ML eficiente chamado de LiteRT. Esta seção fornece orientações para converter seus modelos do TensorFlow para o formato do modelo LiteRT.
Fluxo de trabalho de conversão
A conversão de modelos do TensorFlow para o formato LiteRT pode levar alguns caminhos dependendo do conteúdo do seu modelo de ML. Como primeira etapa desse processo, avalie o modelo para determinar se ele pode ser convertido diretamente. Essa avaliação determina se o conteúdo do modelo tem suporte do ambientes de execução padrão do LiteRT com base nas operações do TensorFlow que ele utiliza. Se o modelo usa operações fora do conjunto compatível, você tem a opção de refatorar o modelo ou usar técnicas avançadas de conversão.
O diagrama abaixo mostra as etapas avançadas da conversão de um modelo.
Figura 1. Fluxo de trabalho de conversão do LiteRT.
As seções a seguir descrevem o processo de avaliação e conversão de modelos para uso com a LiteRT.
Formatos de modelo de entrada
É possível usar o conversor com os seguintes formatos de modelo de entrada:
- SavedModel (recomendado): um modelo do TensorFlow salvo como um conjunto de arquivos em disco.
- Modelo Keras: Um modelo criado usando a API Keras de alto nível.
- Formato Keras H5: Uma alternativa leve ao formato SavedModel compatível com a API Keras.
- Modelos criados com base em funções concretas: Um modelo criado usando a API de nível inferior do TensorFlow.
É possível salvar o Keras e os modelos de função concretos como um SavedModel e converta usando o caminho recomendado.
Se você tiver um modelo Jax, poderá usar o TFLiteConverter.experimental_from_jax
API para convertê-lo para o formato LiteRT. Essa API está sujeita
mudar durante o modo experimental.
Avaliação de conversão
Avaliar seu modelo é uma etapa importante antes de tentar fazer a conversão. Ao avaliar, você quer determinar se o conteúdo do modelo é compatível com Formato LiteRT. Determine também se o modelo é adequado para uso em dispositivos móveis e de borda em termos de tamanho dos dados que o modelo usa, os requisitos de processamento de hardware e o tamanho total e complexidade.
Para muitos modelos, o conversor precisa funcionar imediatamente. No entanto, A biblioteca de operadores integrados do LiteRT é compatível com um subconjunto de operadores principais do TensorFlow, o que significa que alguns modelos podem precisar etapas antes de converter para LiteRT. Além disso, algumas operações compatíveis com o LiteRT têm requisitos de uso restrito por motivos de desempenho. Consulte a guia de compatibilidade do operador para determinar se o modelo precisa ser refatorado para a conversão.
Conversão de modelo
O conversor LiteRT usa um modelo do TensorFlow e gera uma
O modelo LiteRT (um modelo
FlatBuffer identificado pelo
.tflite
). É possível carregar
um SavedModel ou converter diretamente um modelo criado em código.
O conversor usa três sinalizações (ou opções) principais que personalizam a conversão para seu modelo:
- As sinalizações de compatibilidade permitem especificar se a conversão deve permitir operadores personalizados.
- As sinalizações de otimização permitem especificar o tipo de otimização a ser aplicado durante a conversão. A técnica de otimização mais usada é quanitização pós-treinamento.
- As sinalizações de metadados permitem adicionar metadados ao modelo convertido. o que facilita a criação de um código de wrapper específico para a plataforma ao implantar modelos de ML em dispositivos.
É possível converter seu modelo usando a API Python ou a ferramenta de Linha de comando. Consulte a Guia explicativo sobre como converter modelos do TF instruções sobre como executar o conversor no seu modelo.
Normalmente, você converteria seu modelo para o LiteRT padrão ambiente de execução ou a Ambiente de execução do Google Play Services para LiteRT (Beta). Alguns casos de uso avançados personalização do ambiente de execução do modelo, o que requer etapas adicionais em o processo de conversão. Consulte a seção ambiente de execução avançado do Android para obter mais orientações.
Conversão avançada
Se você encontrar erros ao executar o conversor no seu modelo, é provável que você tenha problema de compatibilidade de operador. Nem todas as operações do TensorFlow são com suporte do TensorFlow Lite. Para contornar esses problemas, refatore o modelo ou use opções avançadas de conversão que permitem criar um LiteRT modificado e um ambiente de execução personalizado para esse modelo.
- Consulte a Visão geral de compatibilidade do modelo. para mais informações sobre a compatibilidade dos modelos TensorFlow e LiteRT considerações.
- Os tópicos da Visão geral de compatibilidade do modelo abrangem as técnicas avançadas para a refatoração do modelo, como os operadores Select, guia.
- Para acessar a lista completa de operações e limitações, consulte Página de operações da LiteRT.
Próximas etapas
- Consulte o guia Converter modelos do TF para começar rapidamente e converter seu modelo.
- Consulte a visão geral de otimização para orientações sobre como otimizar o modelo convertido usando técnicas como quanitização pós-treinamento.
- Consulte a Visão geral sobre como adicionar metadados para aprender a adicionar metadados seus modelos. Os metadados fornecem uma descrição de seu modelo, além de outros usos como informações que podem ser aproveitadas por geradores de código.