Accéder au contenu principal

Gemma 3n : Un guide avec un projet de démonstration (VLM Android App)

Découvrez comment créer une application Android qui utilise Gemma 3n de Google pour répondre à des questions sur des images directement sur votre téléphone, sans avoir besoin d'une connexion au cloud.
Actualisé 26 mai 2025  · 12 min de lecture

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

Apprenez à créer des applications d'IA à l'aide de l'API OpenAI.
Commencez à Upskiller gratuitement

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 :

  1. 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. 
  2. Aperçu de Hugging Face: Le fichier .task de Gemma 3n est publié sous le format ai-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.
  3. 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.

Fenêtre Nouveau projet d'Android Studio pour l'exécution de gemma 3n

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

Android Studio empty activity for gemma 3n

É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

Terminal Android Studio pour l'exécution de gemma 3n

Cela ouvrira votre projet. Vous pouvez visualiser tous les fichiers du projet dans la partie gauche de l'onglet.

Fichiers Android Studio

É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 que GalleryApp 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.

Paramètres de débogage sans fil sur un appareil Android pour le fonctionnement de gemma 3n

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

Appairer le nouvel appareil avec le WiFi

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.

Gestionnaire de périphériques

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

Fenêtre Chrome Fenêtre HuggingFace

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.

Télécharger gemma 3n localement

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

Page d'accueil de Ask Image

Voici un exemple que j'ai testé.

Demander une démonstration d'image sur CPU avec gemma 3n

  Demandez une démonstration d'image avec gemma 3n

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).

Demandez une démonstration d'image : Configs

   Demandez une démonstration d'image sur le GPU

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 :


Aashi Dutt's photo
Author
Aashi Dutt
LinkedIn
Twitter

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.

Sujets

Apprenez l'IA avec ces cours !

Cursus

Developing AI Applications

0 min
Learn to create AI-powered applications with the latest AI developer tools, including the OpenAI API, Hugging Face, and LangChain.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow