QwQ di Alibaba: IA compatta e potente?

Il team Qwen di Alibaba ha lanciato la sua ultima creazione, QwQ, un modello che mira a sfidare le prestazioni di controparti più grandi mantenendo un ingombro sorprendentemente compatto.

Sfida ai Giganti: Un Contendente Compatto

QwQ, nonostante vanti solo 32 miliardi di parametri rispetto ai 671 miliardi dichiarati di DeepSeek R1, si posiziona come un modello di “ragionamento”. Alibaba afferma che questo modello relativamente piccolo può superare R1 in specifici benchmark, in particolare in aree come matematica, codifica e function-calling. Questa ambiziosa affermazione giustifica un’analisi più approfondita del funzionamento interno e delle prestazioni nel mondo reale di QwQ.

Apprendimento per Rinforzo: La Chiave della Potenza di QwQ

Similmente a DeepSeek R1, il team Qwen ha impiegato l’apprendimento per rinforzo (RL) per affinare le capacità di ragionamento “chain-of-thought” di QwQ. Questo metodo migliora la capacità del modello di analizzare e scomporre problemi complessi passo dopo passo. L’approccio tradizionale nell’RL prevede la ricompensa del modello per le risposte corrette, rafforzando così le risposte accurate.

Tuttavia, il team Qwen ha adottato un approccio più sfumato con QwQ. Ha integrato un verificatore di accuratezza e un server di esecuzione del codice. Questa aggiunta cruciale assicura che le ricompense siano concesse solo per soluzioni matematicamente valide e codice funzionale. Implementando questo rigoroso processo di verifica, il team mira a coltivare un modello che mostri un grado più elevato di precisione e affidabilità.

Affermazioni sulle Prestazioni: Un Controllo della Realtà

Gli sforzi del team Qwen hanno, a loro dire, prodotto un modello che supera significativamente la sua classe di peso. Affermano che QwQ raggiunge livelli di prestazioni paragonabili, e in alcuni casi persino superiori, a modelli molto più grandi.

Tuttavia, il mondo dei benchmark dell’IA può essere complesso. È fondamentale andare oltre le cifre riportate ed esaminare come queste affermazioni si traducono in scenari pratici e reali.

Test Pratici: Mettere QwQ alla Prova

Per valutare le capacità di QwQ, è stata progettata una serie di prompt di test, che coprono una gamma di domini. Questi includevano conoscenza generale, ragionamento spaziale, problem-solving, matematica e altre sfide note per porre difficoltà anche ai modelli linguistici di grandi dimensioni (LLM) più avanzati.

A causa dei notevoli requisiti di memoria del modello completo, i test sono stati eseguiti in due configurazioni. In primo luogo, il modello completo è stato valutato utilizzando la demo QwQ su Hugging Face. Ciò ha permesso una valutazione del suo pieno potenziale. In secondo luogo, una versione quantizzata a 4 bit è stata testata su una GPU da 24 GB (in particolare, una Nvidia 3090 o una AMD Radeon RX 7900XTX). Questa configurazione mirava a valutare l’impatto della quantizzazione sull’accuratezza del modello, rendendolo più accessibile agli utenti con hardware meno potente.

Conoscenza Generale: Si Difende Bene

In risposta alla maggior parte delle domande di conoscenza generale, QwQ ha dimostrato prestazioni paragonabili a R1 da 671 miliardi di parametri di DeepSeek e ad altri modelli di ragionamento come o3-mini di OpenAI. Il modello in genere impiegava alcuni secondi per formulare i suoi pensieri prima di fornire una risposta alla query. Questo comportamento è caratteristico dei modelli di ragionamento, che danno la priorità a un’attenta deliberazione rispetto alle risposte immediate.

Eccellere nella Complessità: Logica, Codifica e Matematica

Dove QwQ inizia veramente a distinguersi è nell’affrontare sfide più intricate che coinvolgono logica, codifica o matematica. Approfondiamo queste aree, evidenziando i suoi punti di forza e affrontando alcune aree in cui è carente.

Ragionamento Spaziale: Navigare nel Labirinto

Un test di ragionamento spaziale relativamente nuovo, sviluppato da Homebrew Research come parte del loro progetto AlphaMaze, è stato utilizzato per valutare QwQ.

Sia l’istanza QwQ ospitata localmente che il modello full-size hanno risolto costantemente questi puzzle con successo. Tuttavia, ogni esecuzione ha richiesto alcuni minuti per essere completata. Ciò indica che, sebbene QwQ possa gestire efficacemente il ragionamento spaziale, non è necessariamente il più veloce.

Al contrario, R1 di DeepSeek e il suo distillato 32B hanno mostrato comportamenti diversi. Entrambi i modelli hanno risolto con successo il primo labirinto. Tuttavia, R1 ha faticato con il secondo, mentre il distillato 32B ha raggiunto un tasso di successo del 90% sul secondo labirinto. Questa variabilità non è del tutto inaspettata, dato che R1 e il distillato utilizzano modelli di base distinti.

Mentre QwQ ha dimostrato prestazioni superiori rispetto a DeepSeek in questo test specifico, è stato osservato un comportamento insolito con il modello a 4 bit. Inizialmente, ha richiesto quasi il doppio dei token di “pensiero” per completare il test. Ciò suggeriva inizialmente potenziali perdite dovute alla quantizzazione. Tuttavia, ulteriori indagini hanno rivelato che il modello quantizzato, nel suo stato iniziale, mostrava prestazioni subottimali. La regolazione degli iperparametri e la riesecuzione dei test hanno risolto questo problema, dimostrando l’importanza di una configurazione corretta.

Codifica One-Shot: Un Potenziale Punto di Forza

QwQ ha attirato notevole attenzione per il suo potenziale nella generazione di codice “one-shot”, ovvero la capacità di produrre codice utilizzabile al primo tentativo. Questa particolare area sembra essere un punto di forza significativo per il modello.

Al modello è stato assegnato il compito di ricreare diversi giochi relativamente semplici in Python utilizzando la libreria pygame. I giochi scelti erano Pong, Breakout, Asteroids e Flappy Bird.

QwQ ha gestito Pong e Breakout con relativa facilità. Dopo alcuni minuti di elaborazione, il modello ha generato versioni funzionanti di entrambi i giochi.

Tuttavia, quando è stato incaricato di ricreare Asteroids, QwQ ha incontrato difficoltà. Sebbene il codice generato funzionasse, la grafica e le meccaniche di gioco erano frequentemente distorte e piene di bug. Al contrario, R1, al suo primo tentativo, ha ricreato fedelmente il classico sparatutto arcade.

È importante considerare i dati di addestramento per questi modelli. Sono stati esposti a una vasta quantità di codice sorgente disponibile apertamente, probabilmente includendo riproduzioni di giochi classici. Ciò solleva la questione se i modelli stiano semplicemente richiamando informazioni apprese piuttosto che derivare indipendentemente le meccaniche di gioco da zero. Questo sottolinea la natura fondamentale di queste massicce reti neurali, dove l’apparente intelligenza deriva spesso da un ampio riconoscimento di pattern.

Anche con queste limitazioni, le prestazioni di QwQ nel ricreare giochi arcade classici sono impressionanti, soprattutto considerando il suo numero di parametri. Potrebbe non eguagliare R1 in ogni test, ma dimostra un notevole livello di capacità. La frase “non c’è sostituto per la cilindrata”, spesso usata nel mondo automobilistico, potrebbe essere rilevante qui. Questo potrebbe spiegare perché Alibaba sta sviluppando una versione “Max” di QwQ, anche se è improbabile che sia eseguibile su hardware consumer a breve.

Rispetto al distillato R1 Qwen 2.5 32B di DeepSeek, di dimensioni simili, la decisione di Alibaba di integrare un server di esecuzione del codice nella sua pipeline di apprendimento per rinforzo potrebbe aver conferito un vantaggio nelle sfide relative alla programmazione.

Matematica: Capacità con un Avvertimento

Storicamente, gli LLM hanno faticato con la matematica, una conseguenza del loro addestramento focalizzato sul linguaggio. Mentre i modelli più recenti hanno mostrato miglioramenti, QwQ deve ancora affrontare sfide, anche se non necessariamente per le ragioni che ci si potrebbe aspettare.

QwQ ha risolto con successo tutti i problemi di matematica precedentemente posti a R1. Ciò indica che QwQ può gestire l’aritmetica di base e persino un po’ di algebra. Tuttavia, il problema risiede nella sua efficienza. Impegnare un LLM per calcoli matematici sembra controintuitivo quando calcolatrici e calcoli diretti rimangono prontamente disponibili e significativamente più veloci.
Ad esempio, risolvere una semplice equazione come 7*43 ha richiesto a QwQ di generare oltre 1.000 token, impiegando circa 23 secondi su una RTX 3090 Ti. Questo è un compito che potrebbe essere completato su una calcolatrice tascabile in una frazione del tempo.

L’inefficienza diventa ancora più pronunciata con calcoli più grandi. Risolvere 3394*35979, un problema di moltiplicazione oltre le capacità della maggior parte dei modelli non di ragionamento, ha richiesto all’istanza locale di QwQ tre minuti e oltre 5.000 token per il calcolo.

Prima della correzione degli iperparametri, la stessa equazione richiedeva ben nove minuti e quasi 12.000 token.

La chiave di volta qui è che, sebbene un modello possa essere in grado di farsi strada con la forza bruta verso la risposta corretta, non significa necessariamente che sia lo strumento ottimale per il lavoro. Un approccio più pratico sarebbe quello di fornire a QwQ l’accesso a una calcolatrice Python. Ciò sfrutta i punti di forza del modello mentre scarica le attività ad alta intensità di calcolo su uno strumento più adatto.

Quando è stato incaricato di risolvere la stessa equazione 3394*35979 utilizzando gli strumenti, il tempo di risposta di QwQ è crollato a otto secondi, poiché la calcolatrice ha gestito il lavoro pesante.

La Prevalenza di “Wait”: Uno Sguardo nel Processo di Pensiero

L’esame dei “pensieri” di QwQ rivela una frequente occorrenza della parola “wait” (aspetta), in particolare durante compiti complessi o problemi di parole. Ciò riflette il processo interno del modello di controllo del proprio lavoro rispetto a risultati alternativi.

Sebbene questo comportamento sia comune nei modelli di ragionamento, può essere particolarmente frustrante quando QwQ genera una risposta errata, anche dopo aver dimostrato una comprensione della risposta corretta durante il suo processo di “pensiero”.

Questo problema è stato riscontrato frequentemente durante i test. Uno degli esempi più illustrativi è stato l’adattamento di AutoGen AI del classico problema del lupo, della capra e del cavolo. Questo puzzle presenta una sfida di ottimizzazione del trasporto con una svolta:

La soluzione è incorporata nel prompt: con tre scomparti sicuri, il contadino può trasportare tutti gli oggetti in un unico viaggio. Tuttavia, a causa della somiglianza del puzzle con la versione classica, i modelli spesso trascurano gli scomparti.

Nei test, QwQ ha costantemente fallito nel risolvere correttamente questo puzzle. L’esame del suo processo di pensiero ha rivelato che non ha trascurato i tre scomparti. In effetti, li ha riconosciuti ma li ha respinti come troppo semplici:

“Aspetta, se il contadino può prendere tutti e tre in un viaggio, allora può semplicemente farlo ed essere a posto. Ma questo renderebbe il problema banale, il che è improbabile. Quindi forse gli scomparti sono separati ma la barca può trasportare solo due oggetti più il contadino?”

Indipendentemente dal fatto che il test sia stato eseguito sul modello completo nel cloud o localmente, QwQ ha faticato a risolverlo in modo coerente. Ciò evidenzia una potenziale limitazione nelle sue capacità di ragionamento, in cui potrebbe pensare troppo o interpretare erroneamente i vincoli del problema.

Sensibilità agli Iperparametri: Un Equilibrio Delicato

Rispetto ad altri modelli, QwQ ha mostrato una maggiore sensibilità alla sua configurazione. Inizialmente, Alibaba raccomandava parametri di campionamento specifici:

  • Temperatura: 0.6
  • TopP: 0.95
  • TopK: tra 20 e 40

Successivamente, queste raccomandazioni sono state aggiornate per includere:

  • MinP: 0
  • Presence Penalty: tra 0 e 2

A causa di un apparente bug nella gestione dei parametri di campionamento da parte di Llama.cpp (Llama.cpp è utilizzato per eseguire l’inferenza sui modelli), è stato anche necessario disabilitare la penalità di ripetizione impostandola su 1.

Come accennato in precedenza, la risoluzione di questi problemi di configurazione ha comportato un miglioramento significativo, più che dimezzando il numero di token di “pensiero” necessari per arrivare a una risposta. Tuttavia, questo bug sembra essere specifico delle versioni quantizzate GGUF del modello quando si esegue sul motore di inferenza Llama.cpp, che viene utilizzato da applicazioni popolari come Ollama e LM Studio.

Per gli utenti che intendono utilizzare Llama.cpp, si consiglia vivamente di consultare la guida di Unsloth per correggere l’ordine di campionamento.

Iniziare con QwQ: Una Guida Pratica

Per coloro che sono interessati a sperimentare con QwQ, la configurazione in Ollama è relativamente semplice. Tuttavia, è importante notare che richiede una GPU con una notevole quantità di vRAM. Il modello è stato eseguito con successo su una 3090 Ti da 24 GB con una finestra di contesto sufficientemente ampia per un uso pratico.

Sebbene sia tecnicamente possibile eseguire il modello su una CPU e memoria di sistema, è probabile che ciò comporti tempi di risposta estremamente lenti a meno che non si utilizzi una workstation o un server di fascia alta.

Prerequisiti:

  1. Una macchina in grado di eseguire LLM di medie dimensioni con quantizzazione a 4 bit. Si consiglia una GPU compatibile con almeno 24 GB di vRAM. Un elenco di schede supportate è disponibile qui.
  2. Per i Mac Apple Silicon, si consiglia un minimo di 32 GB di memoria.

Questa guida presuppone una conoscenza di base di un’interfaccia a riga di comando del mondo Linux e di Ollama.

Installazione di Ollama

Ollama è un popolare model runner che semplifica il processo di download e di servizio di LLM su hardware consumer. Per gli utenti Windows o macOS, scaricarlo e installarlo come qualsiasi altra applicazione da ollama.com.

Per gli utenti Linux, Ollama fornisce un comodo one-liner per l’installazione: