Un concurrent compact qui défie les géants
L’équipe Qwen d’Alibaba a jeté son dévolu sur le ring avec sa dernière création, QwQ, un modèle qui vise à défier les performances de ses homologues plus grands tout en conservant une empreinte étonnamment compacte.
QwQ, bien qu’il ne compte que 32 milliards de paramètres, comparé aux 671 milliards revendiqués par DeepSeek R1, est positionné comme un modèle de « raisonnement ». Alibaba affirme que ce modèle relativement petit peut surpasser R1 dans des benchmarks spécifiques, en particulier dans des domaines tels que les mathématiques, le codage et l’appel de fonctions. Cette affirmation ambitieuse justifie un examen plus approfondi du fonctionnement interne et des performances réelles de QwQ.
L’apprentissage par renforcement : la clé de la prouesse de QwQ
Comme pour DeepSeek R1, l’équipe Qwen a utilisé l’apprentissage par renforcement (RL) pour affiner les capacités de raisonnement de la chaîne de pensée de QwQ. Cette méthode améliore la capacité du modèle à analyser et à décomposer les problèmes complexes étape par étape. L’approche traditionnelle en RL consiste à récompenser le modèle pour les réponses correctes, renforçant ainsi les réponses précises.
Cependant, l’équipe Qwen a adopté une approche plus nuancée avec QwQ. Ils ont intégré un vérificateur de précision et un serveur d’exécution de code. Cet ajout crucial garantit que les récompenses ne sont accordées que pour les solutions mathématiquement saines et le code fonctionnel. En mettant en œuvre ce processus de vérification rigoureux, l’équipe vise à cultiver un modèle qui présente un degré plus élevé de précision et de fiabilité.
Revendications de performance : un retour à la réalité
Les efforts de l’équipe Qwen ont, selon eux, produit un modèle qui dépasse largement sa catégorie de poids. Ils affirment que QwQ atteint des niveaux de performance comparables, et dans certains cas même supérieurs, à ceux de modèles beaucoup plus grands.
Cependant, le monde des benchmarks de l’IA peut être complexe. Il est crucial d’aller au-delà des chiffres rapportés et d’examiner comment ces affirmations se traduisent dans des scénarios pratiques et réels.
Tests pratiques : mettre QwQ à l’épreuve
Pour évaluer les capacités de QwQ, une série de prompts de test ont été conçus, couvrant un éventail de domaines. Ceux-ci comprenaient des connaissances générales, le raisonnement spatial, la résolution de problèmes, les mathématiques et d’autres défis connus pour poser des difficultés, même aux modèles de langage les plus avancés (LLM).
En raison des besoins importants en mémoire du modèle complet, les tests ont été exécutés dans deux configurations. Tout d’abord, le modèle complet a été évalué à l’aide de la démo QwQ sur Hugging Face. Cela a permis d’évaluer son plein potentiel. Ensuite, une version quantifiée sur 4 bits a été testée sur un GPU de 24 Go (plus précisément, une Nvidia 3090 ou une AMD Radeon RX 7900XTX). Cette configuration visait à évaluer l’impact de la quantification sur la précision du modèle, le rendant plus accessible aux utilisateurs disposant d’un matériel moins puissant.
Connaissances générales : se défendre
En réponse à la plupart des questions de connaissances générales, QwQ a démontré des performances comparables à celles du R1 de DeepSeek, avec ses 671 milliards de paramètres, et à d’autres modèles de raisonnement comme l’o3-mini d’OpenAI. Le modèle prenait généralement quelques secondes pour formuler ses pensées avant de fournir une réponse à la requête. Ce comportement est caractéristique des modèles de raisonnement, qui privilégient une délibération minutieuse plutôt que des réponses immédiates.
Exceller dans la complexité : logique, codage et mathématiques
Là où QwQ commence vraiment à se distinguer, c’est dans la résolution de défis plus complexes impliquant la logique, le codage ou les mathématiques. Examinons ces domaines, en soulignant ses forces et en abordant certains points où il est en retrait.
Raisonnement spatial : naviguer dans le labyrinthe
Un test de raisonnement spatial relativement nouveau, développé par Homebrew Research dans le cadre de leur projet AlphaMaze, a été utilisé pour évaluer QwQ.
L’instance QwQ hébergée localement et le modèle de taille normale ont résolu ces énigmes avec succès de manière constante. Cependant, chaque exécution a nécessité quelques minutes. Cela indique que, bien que QwQ puisse gérer efficacement le raisonnement spatial, il n’est pas nécessairement le plus rapide.
En revanche, le R1 de DeepSeek et son distillat 32B ont présenté des comportements différents. Les deux modèles ont résolu avec succès le premier labyrinthe. Cependant, R1 a eu du mal avec le second, tandis que le distillat 32B a atteint un taux de réussite de 90 % sur le second labyrinthe. Cette variabilité n’est pas totalement inattendue, étant donné que R1 et le distillat utilisent des modèles de base distincts.
Bien que QwQ ait démontré des performances supérieures à celles de DeepSeek dans ce test spécifique, un comportement inhabituel a été observé avec le modèle 4 bits. Initialement, il a fallu presque deux fois plus de jetons de « pensée » pour terminer le test. Cela suggérait initialement des pertes potentielles dues à la quantification. Cependant, une investigation plus approfondie a révélé que le modèle quantifié, dans son état initial, présentait des performances sous-optimales. L’ajustement des hyperparamètres et la réexécution des tests ont résolu ce problème, démontrant l’importance d’une configuration appropriée.
Codage en un seul coup : une force potentielle
QwQ a attiré une attention considérable pour son potentiel en matière de génération de code « en un seul coup » (one-shot) – la capacité de produire du code utilisable dès la première tentative. Ce domaine particulier semble être une force significative du modèle.
Le modèle a été chargé de recréer plusieurs jeux relativement simples en Python en utilisant la bibliothèque pygame. Les jeux choisis étaient Pong, Breakout, Asteroids et Flappy Bird.
QwQ a géré Pong et Breakout avec une relative facilité. Après quelques minutes de traitement, le modèle a généré des versions fonctionnelles des deux jeux.
Cependant, lorsqu’il a été chargé de recréer Asteroids, QwQ a rencontré des difficultés. Bien que le code généré ait fonctionné, les graphismes et les mécanismes du jeu étaient fréquemment déformés et buggés. En revanche, R1, dès sa première tentative, a fidèlement recréé le jeu de tir d’arcade classique.
Il est important de prendre en compte les données d’entraînement de ces modèles. Ils ont été exposés à une grande quantité de code source disponible ouvertement, y compris probablement des reproductions de jeux classiques. Cela soulève la question de savoir si les modèles se contentent de rappeler des informations apprises plutôt que de dériver indépendamment les mécanismes du jeu à partir de zéro. Cela souligne la nature fondamentale de ces réseaux neuronaux massifs, où l’intelligence apparente découle souvent d’une reconnaissance étendue de schémas.
Même avec ces limitations, les performances de QwQ dans la recréation de jeux d’arcade classiques sont impressionnantes, surtout si l’on considère son nombre de paramètres. Il ne correspond peut-être pas à R1 dans tous les tests, mais il démontre un niveau de capacité remarquable. L’expression « il n’y a pas de remplacement pour le déplacement », souvent utilisée dans le monde de l’automobile, pourrait être pertinente ici. Cela pourrait expliquer pourquoi Alibaba développe une version « Max » de QwQ, bien qu’il soit peu probable qu’elle puisse être exécutée sur du matériel grand public de sitôt.
Comparé au distillat R1 Qwen 2.5 32B de taille similaire de DeepSeek, la décision d’Alibaba d’intégrer un serveur d’exécution de code dans son pipeline d’apprentissage par renforcement pourrait lui avoir conféré un avantage dans les défis liés à la programmation.
Mathématiques : capacité avec une réserve
Historiquement, les LLM ont eu du mal avec les mathématiques, une conséquence de leur formation axée sur le langage. Bien que les modèles plus récents aient montré des améliorations, QwQ est toujours confronté à des défis, mais pas nécessairement pour les raisons auxquelles on pourrait s’attendre.
QwQ a résolu avec succès tous les problèmes mathématiques précédemment posés à R1. Cela indique que QwQ peut gérer l’arithmétique de base et même un peu d’algèbre. Cependant, le problème réside dans son efficacité. Engager un LLM pour des calculs mathématiques semble contre-intuitif lorsque les calculatrices et le calcul direct restent facilement accessibles et significativement plus rapides.
Par exemple, pour résoudre une équation simple comme 7*43
, QwQ a dû générer plus de 1 000 jetons, ce qui a pris environ 23 secondes sur une RTX 3090 Ti. C’est une tâche qui pourrait être accomplie sur une calculatrice de poche en une fraction de ce temps.
L’inefficacité devient encore plus prononcée avec des calculs plus importants. Résoudre 3394*35979
, un problème de multiplication dépassant les capacités de la plupart des modèles non-raisonnants, a pris à l’instance locale de QwQ trois minutes et plus de 5 000 jetons à calculer.
Avant la correction des hyperparamètres, la même équation nécessitait neuf minutes et près de 12 000 jetons.
L’essentiel à retenir ici est que, même si un modèle peut être capable de forcer son chemin vers la bonne réponse, cela ne signifie pas nécessairement qu’il s’agit de l’outil optimal pour la tâche. Une approche plus pratique consisterait à fournir à QwQ un accès à une calculatrice Python. Cela permet d’exploiter les forces du modèle tout en déchargeant les tâches gourmandes en calcul sur un outil plus approprié.
Lorsqu’il a été chargé de résoudre la même équation 3394*35979
en utilisant des outils, le temps de réponse de QwQ a chuté à huit secondes, la calculatrice se chargeant du gros du travail.
La prévalence de « Wait » : un aperçu du processus de pensée
L’examen des « pensées » de QwQ révèle une occurrence fréquente du mot « wait » (attendre), en particulier lors de tâches complexes ou de problèmes de mots. Cela reflète le processus interne du modèle qui consiste à vérifier son travail par rapport à des résultats alternatifs.
Bien que ce comportement soit courant dans les modèles de raisonnement, il peut être particulièrement frustrant lorsque QwQ génère une réponse incorrecte, même après avoir démontré une compréhension de la bonne réponse au cours de son processus de « pensée ».
Ce problème a été rencontré fréquemment lors des tests. L’un des exemples les plus illustratifs est l’adaptation par AutoGen AI du problème classique du loup, de la chèvre et du chou. Cette énigme présente un défi d’optimisation du transport avec une particularité :
La solution est intégrée dans le prompt : avec trois compartiments sécurisés, le fermier peut transporter tous les articles en un seul voyage. Cependant, en raison de la ressemblance de l’énigme avec la version classique, les modèles négligent souvent les compartiments.
Lors des tests, QwQ n’a pas réussi à résoudre correctement cette énigme de manière constante. L’examen de son processus de pensée a révélé qu’il n’avait pas négligé les trois compartiments. En fait, il les a reconnus, mais les a rejetés comme étant trop simples :
« Wait, if the farmer can take all three in one trip, then he can just do that and be done. But that would make the problem trivial, which is unlikely. So perhaps the compartments are separate but the boat can only carry two items plus the farmer? » (Attendez, si le fermier peut prendre les trois en un seul voyage, alors il peut simplement le faire et en finir. Mais cela rendrait le problème trivial, ce qui est peu probable. Alors peut-être que les compartiments sont séparés mais que le bateau ne peut transporter que deux articles plus le fermier ?)
Que le test ait été exécuté sur le modèle complet dans le cloud ou localement, QwQ a eu du mal à résoudre ce problème de manière cohérente. Cela met en évidence une limitation potentielle de ses capacités de raisonnement, où il peut sur-analyser ou mal interpréter les contraintes du problème.
Sensibilité aux hyperparamètres : un équilibre délicat
Comparé à d’autres modèles, QwQ a présenté une sensibilité accrue à sa configuration. Initialement, Alibaba recommandait des paramètres d’échantillonnage spécifiques :
- Temperature : 0.6
- TopP : 0.95
- TopK : entre 20 et 40
Par la suite, ces recommandations ont été mises à jour pour inclure :
- MinP : 0
- Presence Penalty : entre 0 et 2
En raison d’un bug apparent dans la gestion des paramètres d’échantillonnage par Llama.cpp (Llama.cpp est utilisé pour exécuter l’inférence sur les modèles), il a également été nécessaire de désactiver la pénalité de répétition en la réglant sur 1.
Comme mentionné précédemment, la résolution de ces problèmes de configuration a entraîné une amélioration significative, réduisant de plus de moitié le nombre de jetons de « pensée » nécessaires pour arriver à une réponse. Cependant, ce bug semble être spécifique aux versions quantifiées GGUF du modèle lorsqu’il est exécuté sur le moteur d’inférence Llama.cpp, qui est utilisé par des applications populaires comme Ollama et LM Studio.
Pour les utilisateurs qui prévoient d’utiliser Llama.cpp, il est fortement recommandé de consulter le guide d’Unsloth pour corriger l’ordre d’échantillonnage.
Premiers pas avec QwQ : un guide pratique
Pour ceux qui souhaitent expérimenter avec QwQ, sa configuration dans Ollama est relativement simple. Cependant, il est important de noter qu’il nécessite un GPU avec une quantité substantielle de vRAM. Le modèle a été exécuté avec succès sur une 3090 Ti de 24 Go avec une fenêtre de contexte suffisamment grande pour une utilisation pratique.
Bien qu’il soit techniquement possible d’exécuter le modèle sur un CPU et la mémoire système, cela risque d’entraîner des temps de réponse extrêmement lents, sauf si vous utilisez une station de travail ou un serveur haut de gamme.
Prérequis :
- Une machine capable d’exécuter des LLM de taille moyenne avec une quantification de 4 bits. Un GPU compatible avec au moins 24 Go de vRAM est recommandé. Une liste des cartes prises en charge est disponible ici.
- Pour les Mac Apple Silicon, un minimum de 32 Go de mémoire est recommandé.
Ce guide suppose une familiarité de base avec une interface de ligne de commande du monde Linux et Ollama.
Installation d’Ollama
Ollama est un exécuteur de modèle populaire qui simplifie le processus de téléchargement et de service des LLM sur du matériel grand public. Pour les utilisateurs de Windows ou macOS, téléchargez et installez-le comme n’importe quelle autre application depuis ollama.com.
Pour les utilisateurs de Linux, Ollama fournit une commande pratique pour l’installation :