Présentation

Gemma 4, un modèle de langage de 26 milliards de paramètres, peut désormais fonctionner sur un processeur Xeon de 13 ans sans carte graphique (GPU). Cela a été rendu possible grâce à des optimisations et des modifications du code source.

Contexte technique

Le processeur Xeon utilisé est un modèle Ivy Bridge, qui ne prend pas en charge les instructions AVX2 et FMA3 nécessaires pour exécuter le code source original. Les développeurs ont donc dû modifier le code pour qu'il puisse fonctionner sur ce matériel plus ancien.

Les optimisations ont porté sur l'utilisation de speculative decoding, de CPU-aware mixture-of-experts routing, de flash attention porté sur le CPU et de run-time weight repacking. Cela a permis d'obtenir une vitesse de traitement de 5 jetons par seconde.

Fonctionnement et architecture

Le code source utilisé est ik_llama.cpp, une version optimisée de llama.cpp qui prend en charge les inférences de Gemma 4. Les développeurs ont dû modifier le code pour qu'il puisse fonctionner sur le processeur Xeon sans AVX2.

Les modifications ont porté sur la compilation et la correction de bugs. Les développeurs ont ajouté des guards pour empêcher l'utilisation d'instructions AVX2 sur le processeur Xeon et ont modifié le code pour qu'il utilise des boucles scalaires portables.

Implications et limites

Cette réalisation montre que les modèles de langage peuvent être exécutés sur du matériel plus ancien avec des optimisations et des modifications du code source. Cela peut être utile pour les utilisateurs qui n'ont pas accès à des cartes graphiques puissantes ou qui veulent réduire les coûts de calcul.

Cependant, il est important de noter que les performances peuvent varier en fonction du matériel et des optimisations utilisées. De plus, les modifications du code source peuvent nécessiter une expertise technique importante pour être mises en œuvre correctement.