Cursus
Google vient de publier Gemma 3n, un modèle multimodal pour les appareils périphériques, qui prend en charge les tâches visuelles, linguistiques et audio avec une exécution modulaire. Dans ce tutoriel, je vais vous expliquer pas à pas comment télécharger et exécuter Gemma 3n en local, directement sur votre appareil Android - pas besoin de cloud computing. Nous utiliserons une application de démonstration qui vous permettra de.. :
- Posez des questions en langage naturel sur des images
- Exécutez le modèle entièrement hors ligne à l'aide du moteur d'exécution de Google
ai-edge-litert
. - Testez l'expérience à l'intérieur d'une interface d'application Android personnalisée
Vous apprendrez comment le format de fichier .task
permet un déploiement léger, comment l'application télécharge et initialise automatiquement Gemma 3n pour une utilisation locale, tout en maintenant des performances fluides et une faible utilisation de la mémoire.
Développer des applications d'IA
Qu'est-ce que Gemma 3n ?
Gemma 3n est la dernière famille de modèles multimodaux et ouverts de Google AI, conçus pour fonctionner efficacement sur des appareils courants tels que les téléphones, les tablettes et les ordinateurs portables. Construit sur un roman MatFormer avec prise en charge de la mise en cache des paramètres PLE (Per-Layer Embedding), Gemma 3n offre des performances sur l'appareil tout en minimisant les coûts de mémoire et de calcul.
Bien qu'ils soient similaires aux modèles vision-langage (VLM)Gemma 3n prend en charge les modalités texte, image et audio. Sa variante "3n" est spécifiquement optimisée pour le déploiement en périphérie, avec une exécution légère sur les CPU, les NPU ou les GPU mobiles via le SDK AI Edge de Google.
Voici les principales caractéristiques de Gemma 3n :
- Entrée multimodale : Il accepte à la fois le texte et l'image pour un raisonnement visuel ancré.
- Inférence sur l'appareil : Pas besoin d'internet une fois le modèle téléchargé
- Efficacité des paramètres : Il utilise l'activation sélective, la mise en cache PLE et l'imbrication MatFormer pour réduire l'encombrement de la mémoire.
- Optimisé pour les mobiles : Gemma 3n prend en charge l'inférence INT4 et FP16 sur Android via les outils MediaPipe et Google AI Edge.
- Pondérations ouvertes : Il fait l'objet d'une licence pour un usage commercial responsable et pour une mise au point.
Remarque importante : bien que Gemma 3n prenne en charge les entrées audio dans son architecture complète, les capacités audio ne sont pas encore disponibles dans l'aperçu public.
Comment accéder à Gemma 3n ?
Vous pouvez essayer Gemma 3n en utilisant l'une des trois méthodes suivantes :
- Google AI Studio: La façon la plus simple de démarrer dans le navigateur. Aller à Google AI Studio et sélectionnez Gemma 3n dans la liste des modèles. Actuellement, seule la variante "gemma-3n-e4b-it" peut être utilisée.
- Aperçu de Hugging Face: Le fichier
.task
de Gemma 3n est publié sous le formatai-edge-litert
de Google. Vous pouvez demander l'accès à la page des modèles Hugging Face et télécharger le modèle localement pour l'inférence. Un fichier.task
est un paquet compact, adapté à l'exécution, qui contient une version précompilée du modèle, ses métadonnées et toutes les configurations requises, spécialement conçu pour une exécution rapide et sécurisée sur l'appareil à l'aide du SDK AI Edge de Google. - Exécuter sur l'appareil (recommandé): Utilisez l' application officielle Gemma Gallery de Google pour exécuter Gemma 3n directement sur votre téléphone Android. Cette méthode permet une interaction complète entre l'image et le message via un modèle local.
Ensuite, je vous guiderai dans la création d'une application Android fonctionnelle qui utilise le modèle Gemma 3n pour traiter des images et des textes. Nous utiliserons le référentiel officiel Gallery de Google comme base et nous le personnaliserons pour qu'il s'ouvre directement sur l'écran Ask Image, sans aucune distraction.
Étape 1 : Cloner et configurer l'application
Commençons par créer un nouveau projet et par cloner le dépôt original de Google.
Étape 1.1 : Créez un nouveau projet Android Studio
Sur votre ordinateur portable, commencez par ouvrir le projet en tant que nouveau projet dans Android Studio et sélectionnez une activité vide.
Étape 1.2 : Créer une nouvelle activité vide
Ensuite, indiquez le nom de votre activité (par exemple, "Ask_Image_Demo") et laissez le reste tel quel. Cliquez ensuite sur Terminer.
Étape 1.3 : Cloner le dépôt principal
Maintenant, ouvrez le terminal dans Android Studio (coin inférieur gauche) et exécutez les commandes bash suivantes :
git clone https://github.com/google-ai-edge/gallery
cd gallery/android
Cela ouvrira votre projet. Vous pouvez visualiser tous les fichiers du projet dans la partie gauche de l'onglet.
Étape 2 : Élaguer toutes les tâches à l'exception de la demande d'image
Ensuite, nous modifions quelques fichiers pour que l'ouverture de notre application conduise directement à la page Demander une image. Ensuite, nous naviguons vers le fichier Tasks.kt
à l'emplacement suivant : app/src/main/java/com/google/ai/edge/gallery/data/Tasks.kt
. Pour limiter la fonctionnalité de l'application à la seule fonction "Demander une image", nous procéderons aux modifications suivantes :
Avant :
/** All tasks. */
val TASKS: List<Task> = listOf(
TASK_LLM_ASK_IMAGE,
TASK_LLM_PROMPT_LAB,
TASK_LLM_CHAT,
)
Après :
/** All tasks. */
val TASKS: List<Task> = listOf(
TASK_LLM_ASK_IMAGE
)
Cela désactive les autres démos telles que Prompt Lab et Chat, garantissant que seule Ask Image s'affiche.
Étape 3 : Navigation automatique vers l'écran de demande d'image
Dans GalleryApp.kt
(situé à // app/src/main/java/com/google/ai/edge/gallery/GalleryApp.kt
), mettez à jour LaunchedEffect
pour naviguer automatiquement vers la page de l'image. Cette modification garantit que l'application ouvre directement l'interface Ask Image, sans passer par l'écran de sélection des tâches par défaut.
Avant :
@Composable
fun GalleryApp(navController: NavHostController = rememberNavController()) {
GalleryNavHost(navController = navController)
}
Après :
package com.google.ai.edge.gallery
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.navigation.NavHostController
import androidx.navigation.compose.rememberNavController
import com.google.ai.edge.gallery.data.TASK_LLM_ASK_IMAGE
import com.google.ai.edge.gallery.ui.llmchat.LlmAskImageDestination
import com.google.ai.edge.gallery.ui.navigation.GalleryNavHost
@Composable
fun GalleryApp(
navController: NavHostController = rememberNavController()
) {
// as soon as GalleryApp comes up, navigate to Ask-Image
// and drop “home” off the back-stack:
LaunchedEffect(Unit) {
TASK_LLM_ASK_IMAGE.models
.firstOrNull() // safety: don’t crash if the models list is empty
?.name
?.let { modelName ->
navController.navigate("${LlmAskImageDestination.route}/$modelName") {
popUpTo("home") { inclusive = true }
}
}
}
GalleryNavHost(navController = navController)
}
Voici un aperçu de ce que fait la fonction GalleryApp
mise à jour dans le nouveau code :
LaunchedEffect
: Un effet secondaire de Jetpack Compose qui se déclenche une fois lors de la composition. Ici, il est utilisé pour exécuter immédiatement la logique de navigation dès queGalleryApp
est rendu.- Récupérer le premier modèle disponible :
TASK_LLM_ASK_IMAGE.models.firstOrNull()
récupère en toute sécurité le nom du premier modèle image-texte disponible (par exemple, Gemma 3n) à utiliser dans la navigation. Cela permet d'éviter les plantages de l'application si la liste des modèles est vide. navController.navigate()
: Il dirige dynamiquement l'application vers l'écran Ask-Image en utilisant le nom du modèle sélectionné. Il remplace l'écran d'accueil habituel comme point d'entrée.- Supprimer l'écran d'accueil de la navigation arrière : La méthode
popUpTo("home")
nettoie la pile de navigation en supprimant l'écran d'accueil de l'historique. Ainsi, l'utilisateur ne peut pas y revenir à l'aide du bouton "retour" du système.
Conservez le reste du code tel quel. Grâce à ces changements, l'application se lance directement dans l'interface Ask-Image avec un modèle valide chargé, ce qui améliore le flux d'utilisateurs pour votre démo.
Étape 4 : Installez et exécutez l'application sur votre appareil
Une fois que vous aurez effectué tous les changements nécessaires, nous lancerons l'application. Pour exécuter votre application sur votre appareil Android local, associez votre appareil Android à Android Studio en utilisant le débogage sans fil en suivant les étapes suivantes.
Étape 4.1 : Configurer l'appareil Android
Allez dans l' application Paramètres de votre appareil Android et activez les options du développeur. Activez ensuite Débogage sans fil. Vous devriez voir un écran avec deux options d'appariement.
Étape 4.2 : Gérer les appareils dans Android Studio
Dans Android Studio, ouvrez Gestionnaire de périphériques (l'icône ressemble à un téléphone avec un logo Android) et cliquez sur Jumeler à l'aide d'un code QR.
Scannez le code QR à l'aide de votre appareil et terminez la configuration de l'appairage. Une fois votre appareil connecté, vous verrez son nom dans le Gestionnaire de périphériques. Assurez-vous que votre système et votre appareil Android sont tous deux connectés au même réseau WiFi.
Étape 4.3 : Exécuter l'application
Démarrez la mise en miroir de votre appareil Android en cliquant sur l'icôneDevice Mirroring (qui représente un écran de bureau et un écran de téléphone). Une fois l'écran de votre appareil reflété, cliquez sur l' icône verte Run pour déployer l'application sur votre appareil.
Étape 4.4 : Téléchargez les modèles sur votre appareil
L'appli se lance, et une fenêtre de navigateur s'ouvre, vous invitant à vous connecter à Hugging Face pour télécharger en toute sécurité le fichier modèle.
Une fois connecté à HuggingFace, cliquez sur démarrer le téléchargement sur le modèle de votre choix, et votre modèle commencera à être téléchargé. Pour cet exemple, j'utilise par défaut le modèle Gemma-3n-E2B-it-int4
.
Étape 4.5 : Commencez à expérimenter
Une fois le téléchargement terminé, vous accéderez directement à la page "Demander une image". Ensuite, choisissez une image existante dans votre galerie ou prenez une nouvelle photo avec l'appareil photo de votre appareil. Passez ensuite une invite avec l'image et envoyez-la au modèle.
Voici un exemple que j'ai testé.
Le modèle fonctionne initialement sur l'unité centrale. Vous pouvez passer au GPU pour obtenir de meilleures performances en utilisant l'icône "Tune" (représentée par trois curseurs horizontaux).
Le passage à un GPU peut réduire de manière significative la latence globale, en particulier pour le traitement d'images plus grandes et de requêtes plus complexes. Bien que le traitement GPU offre généralement des vitesses de décodage plus rapides, ce qui se traduit par des réponses plus rapides, il convient de noter que la vitesse de pré-remplissage peut parfois être légèrement supérieure avec le CPU.
En effet, le chargement initial et la préparation des données (pré-remplissage) peuvent être limités par l'unité centrale. Cependant, l'avantage d'un décodage plus rapide et d'une latence globalement réduite sur le GPU l'emporte généralement, offrant une expérience plus fluide et plus réactive.
J'ai mis en place ce dépôt GitHub si vous souhaitez explorer le code complet du projet.
Conclusion
Nous avons étudié comment Gemma 3n peut permettre de répondre à des questions par image sur périphériquessans qu'il soit nécessaire de recourir à l'inférence dans le cloud. Vous avez appris à intégrer un fichier .task
dans une application Android légère, à interroger le modèle en langage naturel et à obtenir des réponses précises sur n'importe quelle image, directement depuis votre téléphone.
Cette démonstration pratique montre comment Gemma 3n démocratise l'IA multimodale, en permettant aux développeurs et aux chercheurs de déployer plus facilement des modèles solides sur l'appareil. Que vous construisiez des assistants hors ligne, des outils éducatifs, des applications de santé ou autres, Gemma 3n peut prendre en charge de nombreux cas d'utilisation.
Comme Google continue d'affiner l'architecture de Matformer, je m'attends à voir des modèles multimodaux encore plus compacts, avec une plus grande précision et une latence plus faible. Pour en savoir plus sur Gemma 3n, consultez le communiqué de presse officiel d'AI Edge. version officielle d'AI Edge ou plongez dans le dépôt open-source sur GitHub.
Si vous souhaitez découvrir d'autres nouveaux outils d'IA, je vous recommande ces blogs :

Je suis un expert Google Developers en ML (Gen AI), un expert Kaggle 3x, et un ambassadeur Women Techmakers avec plus de 3 ans d'expérience dans la technologie. J'ai cofondé une startup dans le domaine de la santé en 2020 et je poursuis un master en informatique à Georgia Tech, avec une spécialisation dans l'apprentissage automatique.