Gains :
- Possibilité de décider sur l'appareil ou dans le cloud et de choisir le bon outil (ML Kit, Core ML, TensorFlow Lite) en fonction de la confidentialité, des besoins hors ligne, de la taille du modèle et des critères de batterie.
- Possibilité d'éviter les erreurs silencieuses en vérifiant le prétraitement des entrées (taille et normalisation) du document du modèle dans l'intégration du modèle
- Possibilité d'évaluer le score de confiance et de mesurer le résultat avec l'approbation de l'utilisateur et sur l'appareil réel, sans présenter les prédictions de faible confiance comme une vérité absolue.
Jusqu’à présent, nous avons utilisé l’IA pour accélérer le processus de développement. Passons maintenant au deuxième rôle de l’IA : le talent embarqué dans l’application. Les téléphones modernes ont le pouvoir d'exécuter des modèles d'IA tels que la reconnaissance d'images, la traduction de texte, la transcription vocale, etc. directement sur l'appareil (sur l'appareil – dans le processeur du téléphone sans passer par le serveur). IA sur l'appareil ; Il offre de grands avantages par rapport aux solutions cloud en termes de vitesse, de confidentialité et de fonctionnement hors ligne. Dans cette unité, nous apprendrons comment intégrer l'IA dans l'application avec Core ML d'iOS, TensorFlow Lite multiplateforme (maintenant connu sous le nom de LiteRT) et la solution prête à l'emploi de Google ML Kit, et comment utiliser l'IA comme assistant dans cette intégration.
Sur appareil ou dans le cloud ?
C’est la première et la plus importante décision architecturale. L'IA intégrée à l'appareil ne supprime pas les données du téléphone, ce qui constitue un énorme gain en matière de confidentialité. Il est également instantané et fonctionne hors ligne car il n'y a pas de latence réseau. Cependant, il est limité par la puissance de traitement et la mémoire de l'appareil ; Les très grands modèles (par exemple les modèles à langue géante) ne rentreront pas dans le téléphone ou videront la batterie. Cloud AI, quant à lui, offre une puissance illimitée, mais envoie des données au serveur, nécessite un réseau et crée une latence.
critère
Sur l'appareil
Nuage (API cloud)
Confidentialité
Les données restent sur l'appareil, en toute sécurité
Les données vont au serveur, attention nécessaire
vitesse
Instantané, pas de réseau
Dépend de la latence du réseau
hors ligne
Ça marche
Ne fonctionne pas
Taille du modèle
Limité (ressource téléphonique)
illimité
batterie/chaleur
Effets avec une utilisation intensive
Serveur sous charge, appareil détendu
Coût
Gratuit (source de l'appareil)
Frais par utilisation
Règle de décision : choisissez sur l'appareil si des données personnelles/sensibles sont en cours de traitement, doivent fonctionner hors ligne ou si une réponse instantanée est essentielle. Si vous avez besoin d’un modèle très volumineux, tournez-vous vers le cloud. Cette unité est axée sur l'appareil ; Nous aborderons l’IA cloud dans la prochaine unité.
Astuce : définissez toujours sur l'appareil votre fonctionnalité par défaut qui gère les données sensibles (santé, biométrie, localisation). L'expression « les données ne quittent pas l'appareil » est inestimable à la fois pour le respect de la confidentialité et la confiance des utilisateurs, et fait une grande différence dans l'étiquette de confidentialité du magasin.
Trois manières : Kit ML, Core ML, TensorFlow Lite
ML Kit (Google) est le moyen le plus simple de démarrer : il offre des fonctionnalités toutes faites telles que la reconnaissance de texte (OCR — lecture de texte dans une image), la détection de visage, la lecture de codes-barres, la traduction en quelques lignes. Vous n'avez pas besoin de former votre propre modèle. Core ML (Apple) est le moyen le plus efficace d'exécuter votre propre modèle ou un modèle prêt à l'emploi sur iOS ; Il utilise le matériel Neural Engine (processeur de réseau neuronal artificiel) d'Apple. TensorFlow Lite/LiteRT est une solution multiplateforme qui vous permet d'exécuter votre propre modèle entraîné sur Android et iOS.
Le flux général d’intégration avec l’IA se présente comme suit :
- Définition des talents. Un objectif clair, tel que « Je veux lire le texte sur la photo ».
- Sélection du chemin. S'il y a du talent prêt, ML Kit ; Core ML/TF Lite si modèle spécial disponible.
- Format du modèle. .mlmodel (Core ML), .tflite (TF Lite). Explique les étapes de transformation de l'IA.
- Code d'intégration. Chargement du modèle, prétraitement de l'entrée, interprétation de la sortie.
- Test de performances. Mesure de la vitesse, de la mémoire et de la batterie sur un appareil réel.
Attention : l'erreur d'IA la plus courante dans l'intégration de modèles sur appareil est le prétraitement des entrées : la conversion de l'image à la taille et au format de couleur attendus par le modèle. Si le modèle attend 224x224 pixels et que vous lui donnez 300x300, le résultat n'aura aucun sens, mais vous ne recevrez pas de message d'erreur. Vérifiez les valeurs de prétraitement à partir du document du modèle.
Connaître les limites du modèle
Un modèle intégré à l'appareil prend des décisions en fonction des données sur lesquelles il a été formé. Un modèle de reconnaissance d’objets entraîné uniquement sur des photos prises de jour sera erroné sur des images de nuit. Le modèle a un score de confiance (confiance — degré de confiance du modèle quant à sa réponse, généralement compris entre 0 et 1) ; Il est dangereux de présenter à l’utilisateur des résultats peu fiables comme étant précis. Par exemple, une application de numérisation de taches cutanées ne devrait pas indiquer « tout à fait bénin », mais plutôt « la prédiction du modèle est la suivante, veuillez consulter un médecin ». Le résultat du modèle est une recommandation et non un diagnostic.
trois mini-cases
Cas 1 — Accélération avec OCR. Une application de suivi des dépenses a supprimé le fardeau de la saisie manuelle des reçus avec la reconnaissance de texte ML Kit. L'utilisateur prend une photo du reçu, et le montant et la date sont renseignés automatiquement. Le temps de saisie manuelle a été réduit de 40 secondes à 8 secondes par reçu. L'équipe demandait toujours à l'utilisateur de confirmer le montant lu par l'IA ; car les reçus froissés avaient une marge d'erreur de 6 %. L'automatisation + l'approbation humaine étaient le bon équilibre.
Cas 2 — Erreur de prétraitement. Une équipe a intégré un modèle de reconnaissance des plantes avec TensorFlow Lite ; Sur le testeur, les résultats étaient aléatoires. Le problème était que le code généré par l'IA ne normalisait pas l'image dans la plage [0,1] attendue par le modèle (les valeurs de pixels étaient laissées entre 0 et 255). Lorsque la normalisation a été ajoutée, la précision est passée de 30 % à 89 %. Leçon : le prétraitement est silencieux mais mortel.
Cas 3 — Gain de confidentialité. Une application de santé a détecté une anomalie dans les données de fréquence cardiaque avec le modèle Core ML intégré à l'appareil. Les données ne sont jamais allées au serveur. Ce choix a permis à l'application de recevoir la mention « ne collecte pas de données » dans le label de confidentialité de l'App Store et d'augmenter son taux de téléchargement par rapport à ses concurrents. Le choix sur l'appareil était à la fois éthique et commercialement rentable.
Invite faible/Invite forte
Invite faible : "Ajouter la reconnaissance d'image à mon application."
Invite puissante : "Ajouter la fonction de lecture du montant et de la date à mon application Android/Kotlin. - Utiliser la reconnaissance de texte Google ML Kit (sur l'appareil, hors ligne) - Prendre une image depuis un appareil photo ou une galerie - Extraire le montant et la date du texte reconnu avec regex - Présenter le résultat à l'utilisateur pour approbation dans le champ MODIFIABLE, enregistrer automatiquement - Gérer le flux d'autorisation et le rejet de la caméra. Notez le pré-traitement et les situations d'erreur, expliquez les étapes. "
Modèles copiables
Modèle de sélection de chemin : "Je souhaite créer la fonctionnalité suivante : [fonctionnalité]. Doit-elle être sur l'appareil ou dans le cloud ? Comparez en fonction de : la confidentialité, les besoins hors ligne, la taille du modèle, la batterie, le coût. Recommandez l'outil approprié (ML Kit / Core ML / TF Lite) et justifiez.
Modèle d'intégration : "Écrire l'intégration de [modèle/capacité] pour [plate-forme] : 1) Chargement du modèle 2) Prétraitement des entrées (taille et normalisation attendues) 3) Appel d'inférence 4) Interprétation des sorties et vérification du score de confiance 5) Avertissement à l'utilisateur en cas de résultat de faible confiance Rappelez-moi de vérifier les valeurs de prétraitement à partir de la documentation du modèle.
Modèle de score de confiance : "Considérez le score de confiance dans ce code d'inférence : - Présentez le résultat "exact" en dessous du seuil (par exemple 0,6) - Afficher la note " ceci est une estimation " à l'utilisateur - Référez-vous à un expert si le domaine est critique (santé, sécurité) [code] "
Modèle de vérification des performances : "Répertoriez les métriques que je dois mesurer sur l'appareil réel pour cette intégration de modèle sur l'appareil : temps d'inférence, augmentation de la mémoire, impact sur la batterie, chauffage. Indiquez la méthode de mesure pour chacune."
Erreurs courantes
- Ignorer le prétraitement ou le faire de manière incorrecte. Une mauvaise taille/normalisation produit silencieusement un mauvais résultat.
- Ignorer le score de confiance. Présenter une estimation peu fiable comme étant précise induira l’utilisateur en erreur.
- Test du modèle dans l'émulateur. La vitesse réelle de l’appareil et la batterie sont très différentes ; mesurez toujours sur du matériel réel.
- Envoi inutile de données sensibles vers le cloud. Choisir le cloud lorsque l'appareil est possible est un risque pour la vie privée.
- Ignorer la taille du modèle. Les applications de grande taille gonflent la taille du téléchargement et plantent sur du matériel peu performant.
- Oublier la limite d'entraînement du modèle. Le modèle se trompe dans la condition où il ne voit pas (nuit, langue différente) ; Expliquez-le clairement à l'utilisateur.
En résumé
L'IA sur l'appareil offre confidentialité, vitesse et fonctionnement hors ligne en conservant les données sur le téléphone ; La limite est la puissance de l'appareil et la taille du modèle. ML Kit est utilisé pour les fonctionnalités prêtes à l'emploi, Core ML (iOS) et TensorFlow Lite (multiplateforme) sont utilisés pour les modèles personnalisés. Le tueur silencieux de l’intégration est un prétraitement inapproprié ; La taille d'entrée et la normalisation sont vérifiées à partir de la documentation du modèle. Chaque résultat est accompagné d’un score de confiance, et les prédictions de faible confiance ne sont pas présentées comme une vérité absolue. Les décisions sont mesurées sur l'appareil réel, pas sur l'émulateur.
Tâche de candidature
Pour une fonctionnalité de « lecture de texte à partir d'une photo » ou de « lecture de codes-barres », demandez à l'IA si elle doit être sur l'appareil ou dans le cloud avec le « Modèle de sélection de chemin », puis demandez un plan basé sur ML Kit avec le « Modèle d'intégration ». Vérifiez que l’étape de prétraitement et le flux d’approbation/modification de l’utilisateur sont présents dans le code. Définissez un seuil de score de confiance et écrivez ce que vous ferez si le résultat est un faible niveau de confiance.
liste de contrôle
- [ ] J'ai pris la décision sur l'appareil/dans le cloud en fonction de critères
- [ ] J'ai choisi le bon outil (ML Kit / Core ML / TF Lite)
- [ ] J'ai vérifié la dimension de prétraitement et la normalisation à partir de la documentation du modèle
- [ ] J'ai vérifié le score de confiance et averti des résultats de faible confiance
- [ ] J'ai présenté le résultat à l'utilisateur avec approbation/modification, je ne l'ai pas sauvegardé aveuglément
- [ ] J'ai mesuré les performances sur l'appareil réel, pas sur l'émulateur