Needle : L'appel d'outils de Gemini distillé dans un micro-modèle de 26M de paramètres

Si vous avez conçu des workflows orientés agents au cours de la dernière année, vous connaissez bien ce paradoxe fondamental : l'appel d'outils (tool calling) requiert de l'intelligence, et l'intelligence nécessite traditionnellement des modèles massifs. Nous avons donc pris l'habitude de déléguer nos appels de fonctions à des API colossales, ou de composer avec la latence imposée par des modèles locaux pesant plusieurs gigaoctets.
Aujourd'hui, ce paradigme vient de basculer. Cactus Compute a fait sensation sur Hacker News avec un "Show HN" qui a immédiatement capté notre attention : Needle, un modèle hyper-spécialisé de 26 millions de paramètres, explicitement distillé à partir de Gemini 3.1 Flash Lite de Google. Il n'écrit pas de poèmes et ne génère pas de scripts Python. Il accomplit une seule tâche, mais il la maîtrise à la perfection : il confronte l'intention de l'utilisateur à des schémas d'outils et produit un JSON irréprochable. Et il le fait à une vitesse fulgurante.
#Que s'est-il passé ?
Cactus Compute a publié Needle en code source ouvert sous licence MIT, en rendant également ses poids disponibles sur Hugging Face. Avec seulement 26 millions de paramètres, ce modèle est incroyablement léger. Pour vous donner un ordre de grandeur, Needle ne représente qu'une fraction de la taille des modèles considérés jusqu'ici comme "minuscules", tels que FunctionGemma-270M ou Qwen-0.6B.
Malgré sa petite taille, Needle est redoutablement efficace dans sa spécialité. Il gère l'appel d'outils "single-shot" à travers 15 catégories distinctes — allant de la domotique à la messagerie, en passant par la navigation et les minuteurs. En distillant les capacités latentes de Gemini 3.1 Flash Lite au sein d'une architecture ultra-ciblée, l'équipe a prouvé qu'il n'est nullement nécessaire de mobiliser des milliards de paramètres pour analyser un schéma et en extraire des arguments.
#Pourquoi c'est important : L'efficacité extrême pour l'Edge
Ce qui rend Needle si fascinant, ce n'est pas seulement sa taille, mais plutôt les perspectives qu'elle ouvre. Une fois quantifié en INT4, l'intégralité du modèle n'occupe qu'environ 14 Mo de mémoire.
Prenez le temps d'assimiler ce chiffre. Ce modèle ne nécessite aucune grappe de GPU dédiée ; un processeur moderne classique lui suffit amplement. Cela rend possible l'exécution locale d'appels d'outils complexes dans des environnements où c'était auparavant inenvisageable :
- Objets connectés (Wearables) : Les montres intelligentes et les lunettes de réalité augmentée peuvent désormais convertir localement des commandes vocales en appels d'API structurés, s'affranchissant totalement de la latence liée au cloud.
- Périphériques IoT : Les hubs domotiques peuvent gérer le routage des intentions directement sur un microcontrôleur ESP32 ou une puce ARM d'entrée de gamme, sans aucun aller-retour vers un serveur distant.
- Applications mobiles : Les applications peuvent embarquer le modèle nativement. Elles garantissent ainsi des interactions instantanées au niveau de l'interface tout en protégeant la vie privée de l'utilisateur, puisque le traitement des requêtes reste sur l'appareil.
Côté performances, Needle est un véritable monstre. Sur du matériel grand public, il atteint 6 000 tokens par seconde pour le prefill (phase d'ingestion) et 1 200 tokens par seconde pour le décodage. Dans le cadre d'une interaction utilisateur, cela signifie que la charge utile (payload) JSON est générée et prête à être exécutée littéralement plus vite que le temps nécessaire à l'œil humain pour percevoir l'indicateur de chargement.
#Les implications techniques : L'architecture "sans FFN"
En tant qu'ingénieurs, les choix architecturaux derrière Needle constituent sans doute la partie la plus stimulante de cette annonce. L'équipe de Cactus Compute a introduit ce qu'elle appelle le réseau SAN (Simple Attention Network).
L'architecture classique des transformers repose généralement sur l'alternance de couches d'attention multi-têtes (Multi-Head Attention) et de réseaux de neurones feed-forward (FFN, ou MLP). Dans le milieu du deep learning, il est de notoriété publique que les FFN agissent comme la "mémoire" du modèle, stockant les connaissances factuelles, tandis que l'attention se charge du routage dynamique du contexte.
La véritable percée conceptuelle de Needle réside dans le constat suivant : l'appel d'outils n'est ni une tâche de raisonnement ni un exercice de mémoire ; c'est un travail d'extraction et d'assemblage.
Lorsque vous fournissez à un modèle une liste de schémas d'outils disponibles accompagnée de la requête d'un utilisateur, celui-ci n'a pas besoin de savoir que Paris est la capitale de la France. Il doit seulement aligner les segments sémantiques de la demande (par exemple, "éteins la lumière du salon") avec les champs exigés par le schéma JSON fourni.
Par conséquent, Needle s'est complètement débarrassé des couches FFN. Il utilise un encodeur de 12 couches et un décodeur de 8 couches constitués exclusivement de mécanismes d'attention pure et de portes logiques (gating). En supprimant les MLP, l'équipe a éliminé la grande majorité du poids des paramètres, réduisant drastiquement l'empreinte de calcul sans pour autant sacrifier les capacités de routage requises pour l'appel de fonctions.
#Le pipeline d'entraînement
Entraîner un modèle avec un tel niveau de spécialisation a nécessité un pipeline astucieux :
- Pré-entraînement : Le modèle a été entraîné de zéro (from scratch) sur 200 milliards de tokens. Grâce à sa taille microscopique, cette phase n'a duré que 27 heures sur un cluster de 16 puces TPU v6e.
- Post-entraînement (Distillation) : L'équipe a généré 2 milliards de tokens de données synthétiques d'appels de fonctions, d'une grande complexité, en s'appuyant sur Gemini 3.1 Flash Lite. Cette étape n'a pris que 45 minutes, permettant de transférer avec succès la robustesse de Gemini en matière de suivi d'instructions et d'analyse de schémas vers l'architecture SAN.
#Et maintenant ?
Needle est disponible dès aujourd'hui, et la barrière à l'entrée est quasiment nulle. Vous pouvez cloner le dépôt, installer les dépendances et commencer à expérimenter avec vos propres schémas locaux en l'espace de quelques minutes.
Si vous souhaitez le tester en local, Cactus Compute a mis à disposition une configuration simplifiée :
git clone https://github.com/cactus-compute/needle.git
cd needle && source ./setup
needle playground
Ceci lancera un bac à sable (playground) local dans lequel vous pourrez injecter des schémas d'outils sur mesure — comme des API de microservices internes ou des scripts système locaux — et voir le modèle leur adresser des commandes instantanément. La taille réduite du modèle rend par ailleurs son fine-tuning (ajustement fin) sur des outils métiers propriétaires incroyablement rapide et peu coûteux.
#Conclusion
La sortie de Needle vient valider avec éclat la philosophie des "micro-modèles". Si les modèles fondationnels de pointe continueront de croître pour repousser les limites du raisonnement général, la couche d'exécution de l'ingénierie logicielle s'oriente résolument dans la direction opposée.
En élaguant agressivement les architectures pour qu'elles correspondent à des schémas opérationnels précis — comme la suppression des FFN pour des tâches de routage basées exclusivement sur le contexte — nous entrons dans l'ère des composants IA localisés et hyper-optimisés. Needle prouve que pour la tuyauterie mécanique des systèmes agents, la distillation et le minimalisme architectural l'emportent sur la simple course au volume de paramètres. Chez Ichiban Tools, nous allons sans aucun doute tester son intégration directement au cœur de nos pipelines d'utilitaires locaux.