Microsoft propose un framework pour l'inférence de modèles à 1bit.
Cela signifie que la précision du modèle est à 1 seul bit au lieu des 32 bits habituels pour un float. Réduire le nombre de bits de précision est le processus de "quantization" et cela permet de réduire les exigences en terme de hardware pour un modèle.
D'ailleurs, la précision n'est pas de 1 bit mais plutôt une moyenne de 1.58 bit car la représentation interne des poids du modèle se fait avec des ternaires (1, 0 ou -1) et il faut donc 1 ou 2 bits pour les représenter.
Ainsi, un modèle "quantizé" à 16, 8, 4 voir 1 bit aura un meilleur débit de token et pourra fonctionner sur du matériel moins puissant au prix d'une diminution des capacités de "raisonnement" du modèle.
Alors oui ça peut être utile pour faire tourner des modèles sur du matériel de consommateur (ordinateur, téléphone) mais il y quand même un inconvénient majeur il faudrait ré-entrainer le modèle de 0 par rapport aux techniques habituelles de quantization qui peuvent simplement s'appliquer un modèle déjà entrainé.
Il est possible d'essayer des modèles 1 bit sur Huggingface et se faire une idée des capacités:
- bitnet_b1_58-3B (le modèle de Microsoft)
- Llama3-8B-1.58 (un LlaMa 3 "quantizé" à 1bit)
La recherche en optimisation des modèles de langue fais des pas de géant avec GaLore et maintenant Q-GaLore !
Concrètement ces techniques permettent de réduire la mémoire nécessaire pour entraîner un LLM.
Un modèle comme LlaMa 7B ne peut être entraîné que sur des GPU de datacenter car les poids pèsent lourd en mémoire.
Avec Q-GaLore, on peut entraîner ce modèle avec seulement 16Go de RAM et donc sur des GPU grand publique comme la RTX 4060 de Nvidia.
Autant du vote de l'inférence que de l'entraînement, les exigences en matériel dont de plus en plus basses, ce qui contribue à la baisse de coût du token.
OpenAI partage des technique pour réduire la latence des LLMs.
C'est toujours bon à prendre car le paradigme de latence des LLMs est assez inédit dans le mode du Software Engineering ou on optimise à la dizaine de micro-seconde.
-
Taille du modèle: plus petit = plus rapide mais surtout moins performance. Si vous n'êtes pas capable de mesurer la performance alors il vaut peut-être mieux ne pas risquer un autre modèle que ceux de la gamme GPT4.
-
Générer moins de tokens: les tokens de sortie sont long à générer et en plus coûtent 2x plus cher. Je partage une de mes technique pour Modifier efficacement un texte avec un Agent LLM par exemple
-
Utiliser moins de tokens en entrée: rien à redire ici
-
Faire moins de requêtes: regrouper les requêtes dans le même prompt réduit la latence mais fait baisser les performances (J'en parle dans Spécialisez vos Agents LLM pour de meilleures performances
-
Paralléliser les requêtes: basic software engineering
-
Montrer la progression à l'utilisateur: basic user experience
-
Ne pas utiliser des LLMs partout: cela ne sert à rien de taper sur une vis avec un marteau
LlaMA 3 sur Groq est d'une vitesse incroyable: 800 token/sec.
Les modèles sont disponible sur l'API de Groq Cloud
Ils n'ont pas encore d'offre entreprise payante mais on peut déjà essayer avec le free tiers
Groq propose une technologie pour accélérer la vitesse d'inférence des LLMs.
Le résultat est impressionnant, ils arrivent à générer plus de 300 tokens/seconde avec Llama 2 70B.
- Il faut 8 GPU A100 à 30$ de l'heure chez Amazon pour arriver au même résultat
- la génération est de 35 tokens/seconde sur le GPU d'un particulier (Nvidia 4090)
Le moteur qu'il utilise s'appelle Groq LPU. Je suppose qu'ils utilisent la quantization et d'autres techniques comme PowerInfer
Ils développent aussi leur propre hardware, ce sont des puces spécialisés dans l'inférence.
Les opérations couteuses comme les multiplications de matrice sont gravés directement dans le silicium ce qui multiplie la vitesse par plusieurs ordres de grandeur.
Après les TPU de Google et les NPU de Microsoft, Groq propose une alternative hardware crédible sur un marché très dur à adresser.
Un super-calculateur de Nvidia avec 10000 carte graphiques H100 spécialisées pour les opérations sur les réseaux de neurones.
Ils ont pu entrainer un modèle GPT-3 en seulement 4 minutes alors qu'il a fallu plus de 30 jours pour l'entrainer il y a 3 ans (sur 1000 GPU)
Un benchmark de requêtage sur des vecteurs d'embeddings dans Postgres avec l'addon pgvector et dans le pure player Pinecone.
Sur un setup équivalent en coût chez Supabase, Postgres est 10x plus rapide avec la même précision.
Donc si on héberge sa propre base Postgres c'est encore moins cher!
A noter que Postgres est beaucoup plus qu'une base vectorielle et qu'on va pouvoir filtrer les résultats avec des WHERE, faire des jointures, etc