Les modèles de machine learning (ML) que vous utilisez avec LiteRT sont initialement créés et entraînés à l'aide des bibliothèques et outils TensorFlow. Une fois que vous avez créé un modèle avec TensorFlow Core, vous pouvez le convertir en un format de modèle ML plus petit et plus efficace appelé modèle LiteRT. Cette section explique comment convertir vos modèles TensorFlow au format de modèle LiteRT.
Workflow de conversion
La conversion des modèles TensorFlow au format LiteRT peut se faire de différentes manières, en fonction du contenu de votre modèle de ML. La première étape de ce processus consiste à évaluer votre modèle pour déterminer s'il peut être converti directement. Cette évaluation détermine si le contenu du modèle est compatible avec les environnements d'exécution LiteRT standards en fonction des opérations TensorFlow qu'il utilise. Si votre modèle utilise des opérations en dehors de l'ensemble compatible, vous pouvez le refactoriser ou utiliser des techniques de conversion avancées.
Le diagramme ci-dessous illustre les étapes générales de la conversion d'un modèle.

Figure 1. Workflow de conversion LiteRT.
Les sections suivantes décrivent le processus d'évaluation et de conversion des modèles pour une utilisation avec LiteRT.
Formats de modèles d'entrée
Vous pouvez utiliser le convertisseur avec les formats de modèle d'entrée suivants :
- SavedModel (recommandé) : modèle TensorFlow enregistré sous forme d'ensemble de fichiers sur le disque.
- Modèle Keras : modèle créé à l'aide de l'API Keras de haut niveau.
- Format Keras H5 : une alternative légère au format SavedModel compatible avec l'API Keras.
- Modèles créés à partir de fonctions concrètes : modèle créé à l'aide de l'API TensorFlow de bas niveau.
Vous pouvez enregistrer les modèles de fonctions Keras et concrètes en tant que SavedModel et les convertir à l'aide du chemin d'accès recommandé.
Si vous disposez d'un modèle Jax, vous pouvez utiliser l'API TFLiteConverter.experimental_from_jax pour le convertir au format LiteRT. Notez que cette API est susceptible d'être modifiée en mode expérimental.
Évaluation des conversions
L'évaluation de votre modèle est une étape importante avant de tenter de le convertir. Lors de l'évaluation, vous devez déterminer si le contenu de votre modèle est compatible avec le format LiteRT. Vous devez également déterminer si votre modèle est adapté à une utilisation sur des appareils mobiles et périphériques en termes de taille des données utilisées par le modèle, de ses exigences de traitement matériel, ainsi que de la taille et de la complexité globales du modèle.
Pour de nombreux modèles, le convertisseur devrait fonctionner immédiatement. Toutefois, la bibliothèque d'opérateurs intégrée LiteRT est compatible avec un sous-ensemble d'opérateurs TensorFlow Core. Cela signifie que certains modèles peuvent nécessiter des étapes supplémentaires avant d'être convertis en LiteRT. De plus, certaines opérations compatibles avec LiteRT sont soumises à des exigences d'utilisation limitées pour des raisons de performances. Consultez le guide de compatibilité des opérateurs pour déterminer si votre modèle doit être refactorisé pour la conversion.
Conversion de modèles
Le convertisseur LiteRT utilise un modèle TensorFlow et génère un modèle LiteRT (un format FlatBuffer optimisé, identifié par l'extension de fichier .tflite). Vous pouvez charger un SavedModel ou convertir directement un modèle que vous créez dans le code.
Le convertisseur accepte trois principaux indicateurs (ou options) qui personnalisent la conversion de votre modèle :
- Les flags de compatibilité vous permettent de spécifier si la conversion doit autoriser les opérateurs personnalisés.
- Les flags d'optimisation vous permettent de spécifier le type d'optimisation à appliquer lors de la conversion. La technique d'optimisation la plus couramment utilisée est la quantification post-entraînement.
- Les indicateurs de métadonnées vous permettent d'ajouter des métadonnées au modèle converti, ce qui facilite la création de code wrapper spécifique à la plate-forme lors du déploiement de modèles sur des appareils.
Vous pouvez convertir votre modèle à l'aide de l'API Python ou de l'outil de ligne de commande. Consultez le guide Convertir un modèle TF pour obtenir des instructions détaillées sur l'exécution du convertisseur sur votre modèle.
En règle générale, vous convertissez votre modèle pour l'environnement d'exécution LiteRT standard ou l'environnement d'exécution des services Google Play pour LiteRT (bêta). Certains cas d'utilisation avancés nécessitent la personnalisation de l'environnement d'exécution du modèle, ce qui implique des étapes supplémentaires dans le processus de conversion. Pour en savoir plus, consultez la section Environnement d'exécution avancé de la présentation d'Android.
Suivi avancé des conversions
Si vous rencontrez des erreurs lors de l'exécution du convertisseur sur votre modèle, il est fort probable que vous ayez un problème de compatibilité des opérateurs. TensorFlow Lite n'est pas compatible avec toutes les opérations TensorFlow. Vous pouvez contourner ces problèmes en refactorisant votre modèle ou en utilisant des options de conversion avancées qui vous permettent de créer un modèle au format LiteRT modifié et un environnement d'exécution personnalisé pour ce modèle.
- Pour en savoir plus sur la compatibilité des modèles TensorFlow et LiteRT, consultez la présentation de la compatibilité des modèles.
- Les thèmes de la présentation de la compatibilité des modèles couvrent des techniques avancées pour refactoriser votre modèle, comme le guide Sélectionner des opérateurs.
- Pour obtenir la liste complète des opérations et des limites, consultez la page Opérations LiteRT.
Étapes suivantes
- Consultez le guide Convertir des modèles TF pour commencer rapidement à convertir votre modèle.
- Consultez la présentation de l'optimisation pour savoir comment optimiser votre modèle converti à l'aide de techniques telles que la quantification post-entraînement.
- Consultez Ajouter des métadonnées pour savoir comment ajouter des métadonnées à vos modèles. Les métadonnées fournissent d'autres utilisations, une description de votre modèle ainsi que des informations qui peuvent être exploitées par les générateurs de code.