Le défi des longueurs variables sur les appareils en périphérie
Lors de la conception de grands modèles linguistiques (LLM) destinés à fonctionner sur des appareils en périphérie (Edge devices), les développeurs sont confrontés à un défi fondamental lié à la disparité des longueurs des "requêtes" (Prompts) reçues par l'appareil. Alors qu'une requête peut se limiter à une simple commande vocale de quelques mots, d'autres opérations peuvent nécessiter l'analyse de longs documents contenant des milliers de jetons (Tokens). Cette variation impose des contraintes importantes sur la gestion des ressources informatiques dans les appareils aux capacités limitées.
Le problème du "remplissage" et le gaspillage de puissance de calcul
La plupart des piles d'inférence (Inference stacks) actuelles reposent sur le traitement de graphes (Graphs) de longueurs fixes. Par exemple, si le système est configuré pour traiter 1024 jetons, il traitera 1024 positions à chaque exécution du modèle, même si la requête réelle ne contient que 50 jetons. Dans ce cas, le système est contraint de traiter les 974 jetons restants comme des opérations de "remplissage" (Padding) inutiles, ce qui entraîne un gaspillage important de temps et de puissance de calcul.
Pour surmonter ce problème par les méthodes traditionnelles, les développeurs sont contraints de créer plusieurs fichiers binaires, chaque plage de longueur nécessitant son propre fichier, ce qui augmente considérablement la complexité des opérations de qualification et de gestion logicielle.
La solution GPNPU Chimera de Quadric
L'unité de traitement neuronal à usage général (GPNPU) de la société Quadric, connue sous le nom de Chimera, propose une approche totalement différente. Au lieu de s'appuyer sur des longueurs fixes, cette unité garantit la possibilité d'utiliser un seul graphe (One graph) pour servir toutes les longueurs possibles jusqu'à la capacité maximale configurée.
Cette innovation élimine le besoin de créer plusieurs fichiers binaires pour chaque longueur, ce qui réduit la complexité de la pile logicielle (Software stack) et garantit une utilisation optimale des ressources de calcul sans gaspiller de cycles de traitement dans des opérations de remplissage inutiles.
Qu'est-ce que cela signifie pour les développeurs et les fabricants ?
Cette évolution représente un tournant dans la manière d'optimiser les performances de l'intelligence artificielle sur les appareils en périphérie, en offrant les avantages suivants :
- Efficacité énergétique : La réduction des opérations de calcul inutiles signifie une consommation d'énergie moindre, ce qui est vital pour les appareils fonctionnant sur batterie.
- Simplification logicielle : La réduction du nombre de fichiers binaires à construire et à tester accélère le cycle de développement des produits.
- Flexibilité : La capacité à traiter des entrées variées (des commandes vocales courtes aux textes longs) en utilisant la même infrastructure logicielle.