À l'ère des appareils intelligents omniprésents, nous aspirons à doter nos téléphones, tablettes et même nos objets connectés d'une puissance de traitement plus importante. Cependant, ces appareils périphériques disposent de ressources matérielles limitées, notamment en termes de mémoire et de capacité de calcul, ce qui restreint le déploiement et l'exécution des grands modèles linguistiques (LLM). Imaginez l'impact si ces appareils pouvaient intégrer des modèles capables de comprendre le langage naturel, de répondre à des questions et même de créer du contenu ?

image.png

C'est dans ce contexte que la technologie T-MAC a vu le jour. T-MAC, acronyme de « Table-Lookup-based MAC », est une méthode basée sur une table de recherche qui permet l'exécution efficace de grands modèles linguistiques à faible nombre de bits sur un processeur, permettant ainsi une amélioration de l'intelligence des appareils périphériques.

Les grands modèles linguistiques contiennent généralement des dizaines de milliards, voire des centaines de milliards de paramètres, qui nécessitent une grande quantité de mémoire pour leur stockage. Pour déployer ces modèles sur des appareils périphériques, il est nécessaire de quantifier les poids du modèle, c'est-à-dire d'utiliser moins de bits pour représenter les poids, afin de réduire l'occupation mémoire du modèle. Cependant, les modèles quantifiés nécessitent des multiplications matricielles de précision mixte (mpGEMM) lors des calculs, ce qui n'est pas courant dans les systèmes matériels et logiciels existants et manque de support efficace.

image.png

L'idée centrale de T-MAC est de transformer les opérations de multiplication traditionnelles basées sur les types de données en recherches dans une table de recherche (LUT) basée sur les bits. Cette méthode non seulement élimine les opérations de multiplication, mais réduit également les opérations d'addition, ce qui améliore considérablement l'efficacité des calculs.

Plus précisément, T-MAC fonctionne selon les étapes suivantes :

Décomposition de la matrice des poids en plusieurs matrices à un bit.

Calcul préalable du produit du vecteur d'activation et de tous les motifs à un bit possibles, et stockage des résultats dans une table de recherche.

Lors de l'inférence, obtention rapide du résultat final de la multiplication matricielle via l'indexation de la table de recherche et l'opération d'accumulation.

Des tests sur divers appareils périphériques ont montré que T-MAC présentait des avantages de performance significatifs. Par rapport à l'implémentation existante de llama.cpp, T-MAC a amélioré le débit de 4 fois et réduit la consommation d'énergie de 70 %. Cela permet même aux appareils bas de gamme, tels que le Raspberry Pi 5, de générer des jetons à une vitesse supérieure à la vitesse de lecture moyenne d'un adulte.

T-MAC présente non seulement des avantages théoriques, mais également un potentiel d'application pratique. Que ce soit pour la reconnaissance vocale en temps réel et le traitement du langage naturel sur les smartphones, ou pour fournir une expérience d'interaction plus intelligente sur les objets connectés, T-MAC peut jouer un rôle important.

La technologie T-MAC offre une solution efficace et économe en énergie pour le déploiement de grands modèles linguistiques à faible nombre de bits sur les appareils périphériques. Elle permet non seulement d'améliorer le niveau d'intelligence des appareils, mais aussi d'offrir aux utilisateurs une expérience intelligente plus riche et plus pratique. Avec le développement et l'optimisation continus de la technologie, nous avons des raisons de croire que T-MAC jouera un rôle de plus en plus important dans le domaine de l'intelligence périphérique.

Adresse du dépôt : https://github.com/microsoft/T-MAC

Adresse de l'article : https://www.arxiv.org/pdf/2407.00088