Efficient INT8 Inference of Small NLP Models on Server CPUs with PyTorch Native Stack
Cet article présente une implémentation native de SmoothQuant en PyTorch pour l'inférence INT8 de petits modèles de NLP sur des processeurs serveurs, atteignant une accélération du débit allant jusqu'à 5,8x avec une perte de précision négligeable grâce à la fusion au niveau du graphe et à la sélection optimisée des noyaux, la solution étant désormais intégrée à PyTorch et TorchAO.
Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète
Dans le monde de l'intelligence artificielle, une révolution silencieuse se produit parallèlement aux gros titres bruyants concernant les chatbots massifs et omniscients. Tandis que le regard du public est fixé sur des modèles gigantesques capables d'écrire de la poésie ou de résoudre des énigmes logiques complexes, les moteurs qui alimentent le trafic quotidien d'Internet — résultats de recherche, recommandations de produits et filtres anti-spam — reposent sur des programmes plus petits et spécialisés. Ces programmes, souvent basés sur une famille de conceptions connue sous le nom de BERT, sont les chevaux de trait de l'économie numérique. Ils fonctionnent sur des serveurs informatiques standards, de ceux que l'on trouve dans les centres de données à travers le monde, plutôt que sur des cartes graphiques spécialisées et coûteuses. Pour ces systèmes, la vitesse et le coût comptent plus que la taille brute. Le défi pour les ingénieurs a longtemps été de savoir comment faire fonctionner ces modèles plus rapidement sans sacrifier la précision qui les rend utiles. L'une des manières puissantes d'y parvenir consiste à simplifier les mathématiques que l'ordinateur effectue, échangeant une infime partie de précision contre un gain massif de vitesse, une technique connue sous le nom de quantification.
Une équipe de chercheurs chez Intel Corporation a désormais construit un pont qui permet à ces modèles de langage plus petits de fonctionner avec cette mathématique simplifiée directement à l'intérieur des outils logiciels les plus populaires utilisés par les développeurs aujourd'hui. Leur travail se concentre sur une méthode spécifique appelée SmoothQuant, qui prépare un modèle à gérer les mathématiques simplifiées sans perdre sa capacité à comprendre le langage. En intégrant cette méthode dans la pile logicielle standard PyTorch, ils ont créé une voie qui ne nécessite aucun outil tiers spécialisé ni réécriture complexe. Le résultat est un système capable de prendre un modèle de langage standard et de le faire fonctionner nettement plus rapidement sur les processeurs de serveurs modernes, tout en conservant la même justesse dans les réponses fournies.
Les chercheurs sont partis d'un problème courant : même si les processeurs informatiques modernes possèdent des instructions intégrées pour traiter rapidement les mathématiques simplifiées, les outils logiciels utilisés pour construire ces modèles ne savaient souvent pas comment les utiliser efficacement. Lorsqu'un modèle était préparé pour la vitesse, le logiciel restait souvent bloqué sur les étapes nécessaires pour convertir les données ou gérer les calculs simplifiés, gaspillant ainsi la vitesse même que le matériel promettait. Pour corriger cela, l'équipe a combiné trois morceaux distincts de technologie en un flux de travail unique et fluide. D'abord, ils ont utilisé un outil appelé TorchAO pour préparer le modèle, lissant les données afin qu'elles puissent être simplifiées en toute sécurité. Ensuite, ils ont utilisé un compilateur appelé TorchInductor pour examiner l'ensemble du flux des calculs du modèle et les fusionner, éliminant les étapes inutiles qui ralentissent habituellement les choses. Enfin, ils ont appris au système à choisir la manière la plus rapide d'effectuer les opérations mathématiques de base, selon que le processeur informatique est un modèle plus récent doté de capacités avancées ou un modèle plus ancien et fiable, toujours largement utilisé.
Pour tester leur création, l'équipe a mené des expériences sur deux générations différentes de processeurs de serveurs Intel. Ils ont testé le système sur trois types différents de modèles de langage, allant de versions larges et complexes à des versions plus petites et compactes. Les résultats ont été frappants. Sur les processeurs plus récents, le système fonctionnait jusqu'à 5,8 fois plus vite que la version standard non optimisée. Sur les processeurs plus anciens, il parvenait tout de même à fonctionner près de trois fois plus vite. Peut-être plus important encore, la vitesse ne s'est pas faite au détriment de la qualité. Lorsque les chercheurs ont testé les modèles sur des tâches réelles, telles que répondre à des questions à partir d'un texte ou juger le sentiment d'une phrase, les modèles simplifiés donnaient les bonnes réponses aussi souvent que les versions originales plus lentes. Dans de nombreux cas, la différence de précision était si faible qu'elle ne pouvait même pas être mesurée.
L'équipe a également examiné de près pourquoi les gains de vitesse se produisaient, en utilisant une méthode qui cartographie les limites de la vitesse à laquelle un ordinateur peut déplacer des données par rapport à la vitesse à laquelle il peut effectuer des calculs. Ils ont découvert que pour les processeurs plus récents, la vitesse était limitée par la rapidité avec laquelle les données pouvaient être déplacées, tandis que pour les processeurs plus anciens, elle était limitée par la rapidité avec laquelle les mathématiques pouvaient être effectuées. Leur système a réussi à naviguer efficacement entre ces deux limites. Ils ont découvert qu'en préparant les données à l'avance et en supprimant la nécessité pour l'ordinateur de s'arrêter et de réorganiser les informations pendant son travail, ils pouvaient débloquer le plein potentiel du matériel. Ils ont même trouvé une astuce ingénieuse pour les processeurs plus anciens qui manquaient d'une instruction spécifique pour les mathématiques simplifiées, leur permettant d'utiliser une autre instruction disponible pour obtenir des résultats similaires.
Ce travail est important car il lève un obstacle significatif pour les entreprises qui souhaitent déployer ces modèles efficacement. Auparavant, obtenir ce niveau de performance signifiait souvent utiliser des outils spécialisés difficiles à maintenir ou nécessitant de quitter l'environnement logiciel standard. Désormais, les développeurs peuvent simplement utiliser les outils qu'ils connaissent déjà pour obtenir la même haute performance. Les chercheurs ont partagé leur code avec la communauté élargie, ce qui signifie que toute personne utilisant ces outils standards peut désormais accéder immédiatement à ce gain de vitesse. L'étude confirme qu'il est possible de rendre les chevaux de trait d'Internet plus rapides et plus efficaces sans changer la nature fondamentale des modèles ou des logiciels sur lesquels ils fonctionnent. En optimisant soigneusement la manière dont l'ordinateur gère les mathématiques, l'équipe a démontré que l'avenir d'une intelligence artificielle efficace sur des serveurs standards n'est pas seulement une possibilité, mais une réalité prête à être utilisée dès aujourd'hui.
Noyé(e) sous les articles dans votre domaine ?
Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.