LiteRT pour Android

LiteRT vous permet d'exécuter des modèles de machine learning (ML) TensorFlow Applications Android. Le système LiteRT fournit des modèles prédéfinis et personnalisables d'exécution pour exécuter des modèles sur Android rapidement et efficacement, y compris des options d'accélération matérielle.

Modèles de machine learning

LiteRT utilise des modèles TensorFlow qui sont convertis en modèles portable et plus efficace. Vous pouvez utiliser des modèles prédéfinis avec LiteRT sur Android, ou créez vos propres modèles TensorFlow les convertir au format LiteRT.

Cette page traite de l'utilisation de modèles de machine learning déjà créés créer, entraîner, tester ou convertir des modèles. En savoir plus sur la sélection, la modification, la création et la conversion de modèles de machine learning pour sur la page Modèles.

Exécuter des modèles sur Android

Un modèle LiteRT exécuté dans une application Android reçoit des données et traite et génère une prédiction basée sur la logique du modèle. Une instance TensorFlow Le modèle Lite nécessite un environnement d'exécution spécial pour s'exécuter. les données transmises au modèle doivent être dans un format de données spécifique, appelé tensor. Lorsqu'un modèle traite lors de l'exécution d'une inférence, les résultats de prédiction sont générés et les transmet à l'application Android afin qu'elle puisse effectuer des actions, comme présenter le résultat à un utilisateur ou exécuter une logique métier supplémentaire.

Flux d'exécution fonctionnel pour les modèles LiteRT dans Android
applications

Figure 1. Flux d'exécution fonctionnel pour les modèles LiteRT sur Android applications.

Au niveau de la conception fonctionnelle, votre application Android a besoin des éléments suivants pour exécuter un modèle LiteRT:

  • Environnement d'exécution LiteRT permettant d'exécuter le modèle
  • Gestionnaire d'entrées du modèle pour transformer les données en Tensors
  • Gestionnaire de sortie du modèle pour recevoir les Tensors des résultats de sortie et les interpréter sous forme de résultats de prédiction

Les sections suivantes décrivent comment les bibliothèques et outils LiteRT fournissent ces éléments fonctionnels.

Créer des applications avec LiteRT

Cette section décrit la méthode la plus courante recommandée pour implémenter LiteRT dans votre application Android. Vous devez prêter une attention particulière Environnement d'exécution et Bibliothèques de développement. Si vous avez développé un modèle personnalisé, consultez la section Développement avancé chemins d'accès.

Options d'environnement d'exécution

Il existe plusieurs façons d'activer un environnement d'exécution pour exécuter des modèles dans votre application Android. Les options suivantes sont à privilégier:

En général, vous devez utiliser l'environnement d'exécution fourni par Google Play car il économise de l'espace par rapport à l'environnement standard, il se charge dynamiquement, ce qui réduit la taille de votre application. Les services Google Play utilise automatiquement la version stable la plus récente de LiteRT ce qui vous offre des fonctionnalités supplémentaires et de meilleures performances au fil du temps. Si vous proposez votre application sur les appareils qui n'incluent pas les services Google Play ; devez gérer de près votre environnement d'exécution de ML, vous devez utiliser l'environnement d'exécution LiteRT standard. Cette option vous permet de regrouper du code supplémentaire Vous pouvez ainsi mieux contrôler l'environnement d'exécution du ML dans votre application le coût lié à l'augmentation de la taille de téléchargement de votre application.

Vous accédez à ces environnements d'exécution dans votre application Android en ajoutant TensorFlow des bibliothèques de développement Lite à votre environnement de développement d'applications. Pour plus d'informations sur l'utilisation des environnements d'exécution standards dans votre application, consultez les .

Bibliothèques

Vous pouvez accéder à l'API Interpreter depuis la console Google Play Google Cloud. Vous pouvez utiliser LiteRT core et support dans votre application Android. Pour des informations de programmation sur l'utilisation des bibliothèques LiteRT et de l'environnement d'exécution consultez la page Outils de développement pour Android.

Obtenir des modèles

L'exécution d'un modèle dans une application Android nécessite un modèle au format LiteRT. Toi utiliser des modèles prédéfinis, ou en créer un avec TensorFlow et le convertir en modèle Lite . Pour savoir comment obtenir des modèles pour votre application Android, consultez les Page Modèles LiteRT.

Gérer les données d'entrée

Toutes les données que vous transmettez à un modèle de ML doivent être un Tensor avec des données spécifiques structure, souvent appelée forme du Tensor. Pour traiter des données avec un modèle, le code de votre application doit transformer les données dans leur format natif, comme une image, un texte ou données audio dans un Tensor ayant la forme requise pour votre modèle.

Exécuter des inférences

Le traitement de données à l'aide d'un modèle pour générer un résultat de prédiction s'appelle exécuter une inférence. Pour exécuter une inférence dans une application Android, Environnement d'exécution LiteRT, modèle et entrée de données.

Vitesse à laquelle un modèle peut générer une inférence sur un appareil particulier dépend de la taille des données traitées, de la complexité du modèle les ressources informatiques disponibles comme la mémoire et le CPU, ou des processeurs spécialisés ; appelés accélérateurs. Les modèles de machine learning peuvent s'exécuter plus rapidement des processeurs spécialisés tels que des processeurs graphiques (GPU) et des Tensors, TPU (processeurs virtuels), à l'aide de pilotes matériels LiteRT appelés délégués. Pour en savoir plus sur les délégués et l'accélération matérielle de du modèle, consultez la section Accélération matérielle présentation.

Gérer les résultats de sortie

Les modèles génèrent des résultats de prédiction sous forme de Tensors, qui doivent être gérés par votre application Android en effectuant une action ou en affichant un résultat auprès de l'utilisateur. Sortie du modèle les résultats peuvent être aussi simples qu'un nombre correspondant à un seul résultat (0 = dog, 1 = chat, 2 = oiseau) pour la classification d'images, à des résultats beaucoup plus complexes, comme plusieurs cadres de délimitation pour plusieurs objets classés dans une image, avec des cotes de confiance de prédiction comprises entre 0 et 1.

Parcours de développement avancés

Lorsque vous utilisez des modèles LiteRT plus sophistiqués et personnalisés, vous pouvez ont besoin d'utiliser des approches de développement plus avancées que celles décrites ci-dessus. Les sections suivantes décrivent des techniques avancées pour exécuter des modèles et les développer pour LiteRT dans les applications Android.

Environnements d'exécution avancés

En plus de l'environnement d'exécution standard et de l'environnement d'exécution des services Google Play pour LiteRT, vous disposez d'environnements d'exécution supplémentaires à utiliser avec votre application Android. L'utilisation la plus probable de ces environnements vous disposez d'un modèle de machine learning qui utilise des opérations de ML non compatibles par l'environnement d'exécution standard de LiteRT.

L'environnement d'exécution Flex LiteRT vous permet d'inclure les opérateurs spécifiques requis pour votre modèle. En tant qu'option avancée d'exécution votre modèle, vous pouvez créer LiteRT pour Android afin d'inclure des opérateurs et les autres fonctionnalités requises pour exécuter votre modèle de machine learning TensorFlow. Pour en savoir plus, consultez Build LiteRT for Android (Créer LiteRT pour Android).

API C et C++

LiteRT fournit également une API pour exécuter des modèles en C et C++. Si votre utilise le NDK Android, vous devez envisagez d'utiliser cette API. Vous pouvez également envisager d'utiliser cette API si vous veulent pouvoir partager du code entre plusieurs plateformes. Pour plus d'informations sur cette option de développement, consultez la page Développement "Outils".

Exécution de modèles sur serveur

En général, vous devez exécuter des modèles dans votre application sur un appareil Android pour bénéficier d'une latence plus faible et d'une meilleure confidentialité des données pour vos utilisateurs. Toutefois, il est parfois préférable d'exécuter un modèle sur un serveur cloud solution. Par exemple, si vous avez un grand modèle qui ne peut pas facilement être compressé jusqu'à une taille adaptée aux besoins des appareils Android, ou peut être exécuté avec des performances raisonnables sur ces appareils. Cette approche peut aussi être la solution à privilégier si les performances du modèle sont constantes sur un large éventail est la priorité absolue.

Google Cloud offre une suite complète de services pour exécuter des machines TensorFlow des modèles de ML. Pour en savoir plus, consultez la page consacrée à l'IA et au machine learning des produits de formation.

Développement et optimisation de modèles personnalisés

Les options de développement plus avancées incluent probablement le développement des modèles de ML et à les optimiser pour une utilisation sur des appareils Android. Si vous planifient de créer des modèles personnalisés, pensez à appliquer la quantification techniques aux modèles pour réduire les coûts de mémoire et de traitement. Pour en savoir plus sur la façon de créer modèles hautes performances à utiliser avec LiteRT, consultez la section Meilleures performances pratiques dans la section "Modèles".