1 points par GN⁺ 2025-06-27 | 1 commentaires | Partager sur WhatsApp
  • Gemma 3n est le dernier modèle d’IA multimodale on-device pour les environnements mobiles et edge, capable de traiter images, audio, vidéo et texte
  • Grâce à une architecture axée sur l’efficacité et à des innovations architecturales (MatFormer, Per-Layer Embeddings, MobileNet-V5, etc.), il offre des performances proches de celles des grands modèles cloud existants avec seulement 2 à 3 Go de mémoire
  • Deux tailles de modèle sont proposées, E2B et E4B, avec en plus une prise en charge de tailles personnalisées fines adaptées au matériel via l’approche Mix-n-Match
  • Applicable immédiatement à de nombreux usages d’IA on-device, comme la reconnaissance vocale, la traduction, l’analyse visuelle en temps réel et le traitement multilingue dans 140 langues
  • Large intégration avec les principaux écosystèmes open source IA comme Hugging Face, Ollama et llama.cpp, avec une utilisation immédiate via divers outils, API et SDK

Vue d’ensemble et contexte

  • Le premier modèle Gemma, lancé au début de l’année dernière, a dépassé les 160 millions de téléchargements et a donné naissance à un écosystème baptisé Gemmaverse
  • Cet écosystème comprend divers modèles spécialisés, notamment en sécurité et santé, ainsi que de nombreux cas d’usage innovants issus des contributions de la communauté
  • Fort de ce succès, Google annonce la sortie officielle de Gemma 3n, conçu avant tout pour le mobile
  • Il propose une intégration étendue avec un écosystème et des outils pensés pour les développeurs, dont Hugging Face Transformers, llama.cpp, Google AI Edge et Ollama
  • L’article présente en profondeur, du point de vue développeur, les innovations clés, les benchmarks et les méthodes de développement autour de Gemma 3n

What’s new in Gemma 3n?

  • Gemma 3n marque une nouvelle avancée pour l’IA on-device
  • Il offre une prise en charge multimodale native des entrées texte, image, audio et vidéo, avec sortie texte
  • Conçu pour maximiser l’efficacité, il est disponible en deux tailles, E2B (5B paramètres) et E4B (8B paramètres), et peut fonctionner avec peu de mémoire (2 Go ou 3 Go)
  • Il intègre des architectures innovantes comme MatFormer, Per Layer Embeddings, LAuReL et AltUp, ainsi que de nouveaux encodeurs audio et vision
  • Prise en charge de 140 langues, compréhension multimodale dans 35 langues, meilleures capacités en mathématiques, code et raisonnement, et un score LMArena supérieur à 1300 pour E4B

MatFormer : un seul modèle, plusieurs tailles

  • L’architecture MatFormer (🪆Matryoshka Transformer) est une nouvelle structure de transformer conçue pour l’extensibilité et la flexibilité
  • Elle exploite le principe des poupées russes Matriochka, où de petits modèles sont intégrés de manière autonome à l’intérieur d’un grand modèle
  • Lors de l’entraînement de E4B, le sous-modèle E2B est optimisé en même temps, ce qui permet d’éviter le téléchargement d’un modèle pré-extrait séparé et d’obtenir jusqu’à 2x plus de vitesse en inférence
  • Avec l’approche Mix-n-Match, il est possible de créer des modèles intermédiaires personnalisés adaptés aux contraintes matérielles, en utilisant des réseaux feed-forward ou des sauts de couches
  • MatFormer Lab permet de vérifier les réglages optimaux sur la base de benchmarks et de générer des modèles
  • À l’avenir, la prise en charge de l’elastic execution (changement dynamique de la taille du modèle en temps réel) est également prévue

Per-Layer Embeddings (PLE) : efficacité mémoire maximale on-device

  • Les Per-Layer Embeddings (embeddings par couche) améliorent la qualité en déploiement on-device tout en minimisant l’usage mémoire
  • Sur l’ensemble des paramètres (5B/8B), seuls les embeddings sont chargés et traités efficacement sur CPU, tandis que le cœur transformer (2B/4B) reste en VRAM
  • Cela permet de fonctionner sans perte de qualité avec une mémoire bien plus réduite qu’auparavant, l’accélérateur n’ayant à gérer qu’environ 2B paramètres

KV Cache Sharing : optimisation des entrées à long contexte

  • Gemma 3n ajoute une fonctionnalité de KV Cache Sharing pour traiter rapidement les entrées séquentielles longues, comme l’audio ou la vidéo
  • Lors de l’étape de prefill (traitement initial de l’entrée), le cache KV des couches intermédiaires est partagé directement avec les couches supérieures, ce qui améliore les performances de plus de 2x
  • Les prompts à longue séquence sont ainsi traités plus vite qu’auparavant, ce qui améliore la réactivité des applications multimodales en temps réel

Reconnaissance audio : prise en charge du STT et de la traduction

  • Il intègre un encodeur audio basé sur le Universal Speech Model (USM), qui utilise des tokens audio par tranches de 160 ms comme entrée du modèle de langage
  • Il permet de mettre en œuvre on-device une reconnaissance vocale haute qualité (ASR) et une traduction vocale (AST)
  • De hautes performances ont été observées sur des paires de langues majeures, notamment anglais↔espagnol, français, italien et portugais
  • L’utilisation de prompts de type Chain-of-Thought peut améliorer la qualité de traduction
  • À son lancement, l’encodeur audio prend en charge des clips jusqu’à 30 secondes, avec une extension prévue vers des traitements en streaming plus longs

MobileNet-V5 : encodeur vision de dernière génération

  • MobileNet-V5-300M, intégré à Gemma 3n, est un encodeur vision à haute efficacité offrant de solides performances même sur les appareils edge
  • Il prend en charge différentes résolutions d’entrée, comme 256x256, 512x512 et 768x768 pixels, pour ajuster le niveau de détail et les performances selon les besoins
  • Grâce à un entraînement conjoint sur de vastes jeux de données multimodaux, il offre une compréhension étendue des images et vidéos et de bonnes capacités sur des tâches visuelles précises
  • Une analyse temps réel à 60 images par seconde est possible sur Google Pixel
  • Côté architecture, il applique de nombreuses innovations, comme des blocs basés sur MobileNet-V4 (universal inverted bottleneck, Mobile MQA), une structure pyramidale hybride et un adaptateur VLM Multi-Scale Fusion
  • Par rapport à SoViT (baseline de Gemma 3), il est 13x plus rapide, réduit les paramètres de 46 %, utilise 4x moins de mémoire et atteint une meilleure précision
  • Des informations supplémentaires sur l’architecture, les stratégies d’extension des données et les techniques de distillation deep learning seront publiées dans le rapport technique

Mise en pratique et utilisation

  • Essayer directement dans AI Studio : https://aistudio.google.com/prompts/new_chat?model=gemma-3n-e4b-it
  • Téléchargement/déploiement du modèle : disponible immédiatement sur Hugging Face, Kaggle, Ollama, llama.cpp, etc.
  • Intégration avec outils et frameworks : prise en charge de Hugging Face Transformers/TRL, MLX, Docker, LMStudio, NVIDIA NeMo, Unsloth et de la plupart des autres environnements
  • Déploiement API et cloud : disponible dans divers environnements comme Google GenAI API, Vertex AI et NVIDIA API

Principaux scénarios d’usage on-device

  • Assistant IA temps réel sur smartphone ou appareil edge, traducteur vocal, chatbot multimodal, analyse visuelle en temps réel, IoT
  • Intégration de services IA dans des environnements à ressources limitées
  • Innovation IA dans des environnements hors ligne ou contraints par le réseau

Ressources développeur

Gemma 3n Impact Challenge

1 commentaires

 
GN⁺ 2025-06-27
Avis Hacker News
  • Ce modèle montre une compatibilité parfaite avec tout ce que je faisais auparavant avec gemma3. Je l’ai branché directement sur mon script de fine-tuning VLM et tout a fonctionné sans problème (sur la base du code hf transformer). En lançant le modèle E4B avec LoRA sur un seul GPU, il faut 18 Go de VRAM avec une batch size de 1, alors que gemma-4B demandait 21 Go. DeepMind a vraiment fait du très bon travail, la série gemma3 est la meilleure VLLM à poids ouverts
    • Correction : le modèle évoqué ici est en fait E2B
  • J’ai essayé le prompt « générer un SVG d’un pélican à vélo » sur Gemma 3n 7,5 Go (Ollama) et sur la version 15 Go de mlx-vlm, et c’était intéressant de voir que les résultats différaient selon les deux tailles de quantification. J’ai mis les résultats ici : https://simonwillison.net/2025/Jun/26/gemma-3n/
    • Je me demande si on peut vraiment appeler ça un benchmark pertinent, ou si c’est juste pour s’amuser. Franchement, je ne comprends pas bien
  • Je ne comprends toujours pas très bien en quoi Gemma et Gemini diffèrent en environnement on-device, puisqu’on peut utiliser les deux sans connexion réseau. Exemple de formulation officielle : « Gemini Nano offre de riches expériences d’IA générative, même sans connexion réseau » — si on remplace Gemini par Gemma dans cette phrase, ça reste parfaitement vrai
    • La différence, c’est la licence. On ne peut pas utiliser directement les poids de Gemini Nano (surtout en usage commercial) : il faut obligatoirement passer par Android MLKit ou un runtime approuvé par Google. À l’inverse, Gemma est utilisable commercialement dans n’importe quel runtime ou framework
    • Le blog preview de Gemma 3n indique que Gemma 3n et la nouvelle version de Gemini Nano partagent la même architecture. À mon avis, le n veut dire Nano. Nano est un modèle propriétaire intégré à Android, tandis que Gemma est un modèle ouvert qu’on peut déployer librement partout. Les sources correspondantes se trouvent dans le blog officiel de Google et dans ses vidéos
    • Gemma est open source et sous licence Apache 2.0. Si on veut l’inclure dans une app, il faut l’empaqueter soi-même. À l’inverse, Gemini Nano est une API Android totalement hors de notre contrôle
    • Je suppose que la différence entre les deux modèles vient des données d’entraînement. Celles de Gemini sont probablement beaucoup plus strictement encadrées, et si le modèle essaie de répéter quelque chose présent dans ses données d’entraînement, il peut produire une « recitation error »
  • Personnellement, je n’aime pas trop qu’OpenAI ait imposé ce genre de naming chaotique comme standard dans l’industrie
    • Du coup, je serais curieux de savoir quel nom tu aurais choisi
  • J’ai créé moi-même une version GGUF, donc tout le monde peut l’essayer si besoin ! Je la lance comme ça : ./llama.cpp/llama-cli -hf unsloth/gemma-3n-E4B-it-GGUF:UD-Q4_K_XL -ngl 99 --jinja --temp 0.0. Je prépare aussi une démo Colab pour l’inference + le finetuning. Gemma 3N prend en charge l’audio, le texte et la vision, ce qui est vraiment impressionnant. Plus de détails ici : https://docs.unsloth.ai/basics/gemma-3n-how-to-run-and-fine-tune
    • J’ai testé le modèle E4B dans Ollama, mais l’interprétation des images fonctionne complètement de travers. La sortie dépend uniquement du texte, et se trompe toujours de manière cohérente. Comme la version officielle de Gemma 3 4B fonctionne bien, j’en ai conclu que le problème venait d’Ollama. En vérifiant, j’ai vu qu’actuellement le support est texte uniquement[1]. J’aimerais que ce soit indiqué plus clairement. J’ai la flemme de compiler moi-même llama.cpp, donc je vais attendre que le support GGUF arrive. [1]: https://github.com/ollama/ollama/issues/10792#issuecomment-3009619264
    • J’étais justement en train de taper un message pour demander une version Unsloth, et puis je t’ai vu la créer et la publier directement. Impressionnant !
    • Merci ! Je me demande de quelle configuration PC on a besoin pour faire tourner ce genre de modèle
    • Je me demande ce que signifie jinja ici
  • Honnêtement, je me demande à quoi servent concrètement ces petits modèles en pratique. J’ai fait plusieurs essais, et j’ai du mal à utiliser quelque chose de plus petit que 27B pour autre chose qu’un gadget : au mieux, ça donne de bonnes réponses de temps en temps. J’ai résolu un problème de filtre anti-spam avec gemma3:27b-it-qat, et mes benchmarks montrent aussi que c’est à partir de cette taille que ça devient réellement exploitable
    • Même avec une précision faible, il existe des usages réels. Je ne sais pas encore quels produits existeront dans le futur, mais il y a déjà aujourd’hui des cas concrets : sur le clavier de l’iPhone, un petit modèle de langage sert à suggérer le mot suivant (l’utilisateur n’a qu’à le sélectionner). Et des techniques comme le speculative decoding utilisent un petit modèle pour accélérer l’inférence d’un grand modèle. On verra sûrement apparaître des usages plus intelligents à l’avenir
    • Ces petits modèles sont déjà très utiles si on les considère comme une infrastructure de base. J’aimerais vraiment qu’un jour la plupart des téléphones embarquent un LLM intégré, comme une sorte d’infrastructure par défaut
    • Le meilleur usage que j’ai trouvé pour les petits modèles (<5bn params), c’est comme outil de référence hors ligne. Quand je code dans l’avion, au lieu d’utiliser Google, j’ai qwen installé sur mon MacBook Air pour poser des questions de base sur la syntaxe, la documentation, etc.
    • Les petits modèles de 4b ou moins sont excellents pour le fine-tuning sur des tâches spécifiques, et peuvent obtenir à très bas coût de meilleurs résultats que des modèles commerciaux. Ils sont aussi bons en autocomplétion de code. Les modèles 7b à 8b conviennent bien à des tâches de code rapides et simples, comme du refactoring (par exemple : « préfixer avec ST_ tous les noms de fonction dont l’argument de type est SomeType »). À partir de 12b, des modèles comme Mistral Nemo ou Gemma 3 12b peuvent produire des phrases cohérentes
  • Kevin Kwok a très bien résumé la rétro-ingénierie de l’architecture du modèle, à consulter ici : https://github.com/antimatter15/reverse-engineering-gemma-3n
  • Il faudrait quelque part sur le site de Google un tableau récapitulatif de chaque nom de produit, description et fonctionnalité
  • L’axe Y du graphique est vraiment dessiné de façon ridicule
  • Quelqu’un sait combien coûte concrètement l’usage de la version déployée de gemma 3n ? La documentation dit qu’on peut utiliser gemma 3n via l’API gemini, mais le prix est juste indiqué comme « unavailable »