Visão geral da conversão de modelo

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.

Fluxo de trabalho de conversão do TFLite

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:

É 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:

  1. As sinalizações de compatibilidade permitem especificar se a conversão deve permitir operadores personalizados.
  2. 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.
  3. 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.

Próximas etapas