DeepSeek-R1 in 32B? El Reg test QwQ

Het Qwen-team van Alibaba heeft hun hoed in de ring gegooid met hun nieuwste creatie, QwQ, een model dat ernaar streeft de prestaties van grotere tegenhangers uit te dagen, terwijl het een verrassend compacte voetafdruk behoudt.

De giganten uitdagen: een compacte mededinger

QwQ, ondanks dat het slechts 32 miljard parameters heeft in vergelijking met de geclaimde 671 miljard van DeepSeek R1, wordt gepositioneerd als een ‘redenerend’ model. Alibaba beweert dat dit relatief kleine model R1 kan overtreffen in specifieke benchmarks, met name op gebieden als wiskunde, codering en functieaanroepen. Deze ambitieuze claim rechtvaardigt een nadere blik op de interne werking en de prestaties in de echte wereld van QwQ.

Reinforcement Learning: De sleutel tot QwQ’s bekwaamheid

Net als DeepSeek R1, gebruikte het Qwen-team reinforcement learning (RL) om QwQ’s chain-of-thought redeneervermogen te verfijnen. Deze methode verbetert het vermogen van het model om complexe problemen stap voor stap te analyseren en op te lossen. De traditionele aanpak in RL omvat het belonen van het model voor correcte antwoorden, waardoor nauwkeurige reacties worden versterkt.

Het Qwen-team koos echter voor een meer genuanceerde aanpak met QwQ. Ze integreerden een nauwkeurigheidsverificateur en een code-uitvoerserver. Deze cruciale toevoeging zorgt ervoor dat beloningen alleen worden toegekend voor wiskundig verantwoorde oplossingen en functionele code. Door dit rigoureuze verificatieproces te implementeren, streeft het team ernaar een model te cultiveren dat een hogere mate van precisie en betrouwbaarheid vertoont.

Prestatieclaims: een realiteitscheck

De inspanningen van het Qwen-team hebben, zo beweren ze, geresulteerd in een model dat aanzienlijk boven zijn gewichtsklasse presteert. Ze beweren dat QwQ prestatieniveaus bereikt die vergelijkbaar zijn met, en in sommige gevallen zelfs hoger zijn dan, veel grotere modellen.

De wereld van AI-benchmarks kan echter complex zijn. Het is cruciaal om verder te kijken dan de gerapporteerde cijfers en te onderzoeken hoe deze claims zich vertalen naar praktische, real-world scenario’s.

Hands-on testen: QwQ op de proef stellen

Om de capaciteiten van QwQ te beoordelen, werd een reeks testprompts ontworpen, die een reeks domeinen bestreken. Deze omvatten algemene kennis, ruimtelijk redeneren, probleemoplossing, wiskunde en andere uitdagingen waarvan bekend is dat ze problemen opleveren voor zelfs de meest geavanceerde grote taalmodellen (LLM’s).

Vanwege de aanzienlijke geheugenvereisten van het volledige model, werd het testen uitgevoerd in twee configuraties. Ten eerste werd het complete model geëvalueerd met behulp van de QwQ-demo op Hugging Face. Dit maakte een beoordeling van het volledige potentieel mogelijk. Ten tweede werd een 4-bit gekwantiseerde versie getest op een 24GB GPU (specifiek, een Nvidia 3090 of een AMD Radeon RX 7900XTX). Deze configuratie was bedoeld om de impact van kwantisatie op de nauwkeurigheid van het model te meten, waardoor het toegankelijker werd voor gebruikers met minder krachtige hardware.

Algemene kennis: staat zijn mannetje

In reactie op de meeste algemene kennisvragen, toonde QwQ prestaties die vergelijkbaar waren met DeepSeek’s 671 miljard parameter R1 en andere redenerende modellen zoals OpenAI’s o3-mini. Het model had doorgaans een paar seconden nodig om zijn gedachten te formuleren voordat het een antwoord op de vraag gaf. Dit gedrag is kenmerkend voor redenerende modellen, die prioriteit geven aan zorgvuldige overweging boven onmiddellijke reacties.

Uitblinken in complexiteit: logica, codering en wiskunde

Waar QwQ zich echt begint te onderscheiden, is in het aanpakken van meer ingewikkelde uitdagingen met betrekking tot logica, codering of wiskunde. Laten we ons verdiepen in deze gebieden, de sterke punten benadrukken en enkele gebieden aanpakken waar het tekortschiet.

Ruimtelijk redeneren: navigeren door het doolhof

Een relatief nieuwe ruimtelijke redeneertest, ontwikkeld door Homebrew Research als onderdeel van hun AlphaMaze-project, werd gebruikt om QwQ te evalueren.

Zowel de lokaal gehoste QwQ-instantie als het model op volledige grootte losten deze puzzels consequent succesvol op. Elke run duurde echter wel een paar minuten. Dit geeft aan dat, hoewel QwQ effectief met ruimtelijk redeneren kan omgaan, het niet noodzakelijkerwijs de snelste is.

DeepSeek’s R1 en zijn 32B-distill vertoonden daarentegen verschillende gedragingen. Beide modellen losten het eerste doolhof succesvol op. R1 worstelde echter met de tweede, terwijl de 32B-distill een succespercentage van 90% behaalde op het tweede doolhof. Deze variabiliteit is niet geheel onverwacht, aangezien R1 en de distill verschillende basismodellen gebruiken.

Hoewel QwQ superieure prestaties liet zien in vergelijking met DeepSeek in deze specifieke test, werd er ongebruikelijk gedrag waargenomen bij het 4-bit model. Aanvankelijk had het bijna twee keer zoveel ‘gedachte’-tokens nodig om de test te voltooien. Dit suggereerde aanvankelijk potentiële verliezen als gevolg van kwantisatie. Nader onderzoek wees echter uit dat het gekwantiseerde model, in zijn oorspronkelijke staat, suboptimale prestaties vertoonde. Het aanpassen van de hyperparameters en het opnieuw uitvoeren van de tests loste dit probleem op, wat het belang van een juiste configuratie aantoont.

One-shot codering: een potentiële kracht

QwQ heeft veel aandacht getrokken vanwege zijn potentieel in ‘one-shot’ codegeneratie - de mogelijkheid om bruikbare code te produceren bij de eerste poging. Dit specifieke gebied lijkt een aanzienlijke kracht van het model te zijn.

Het model kreeg de taak om verschillende relatief eenvoudige games in Python te recreëren met behulp van de pygame-bibliotheek. De gekozen spellen waren Pong, Breakout, Asteroids en Flappy Bird.

QwQ behandelde Pong en Breakout met relatief gemak. Na een paar minuten verwerking genereerde het model werkende versies van beide spellen.

Toen QwQ echter de taak kreeg om Asteroids te recreëren, ondervond het problemen. Hoewel de gegenereerde code werkte, waren de graphics en spelmechanismen vaak vervormd en buggy. R1 daarentegen, bij zijn eerste poging, herschiep de klassieke arcade shooter getrouw.

Het is belangrijk om rekening te houden met de trainingsgegevens voor deze modellen. Ze zijn blootgesteld aan een enorme hoeveelheid openlijk beschikbare broncode, waarschijnlijk inclusief reproducties van klassieke games. Dit roept de vraag op of de modellen simpelweg geleerde informatie oproepen in plaats van onafhankelijk spelmechanismen van de grond af te leiden. Dit onderstreept de fundamentele aard van deze massieve neurale netwerken, waar schijnbare intelligentie vaak voortkomt uit uitgebreide patroonherkenning.

Zelfs met deze beperkingen zijn de prestaties van QwQ bij het recreëren van klassieke arcadespellen indrukwekkend, vooral gezien het aantal parameters. Het komt misschien niet in elke test overeen met R1, maar het toont een opmerkelijk niveau van bekwaamheid. De uitdrukking ‘there’s no replacement for displacement’, vaak gebruikt in de autowereld, kan hier relevant zijn. Dit zou kunnen verklaren waarom Alibaba een ‘Max’-versie van QwQ ontwikkelt, hoewel het onwaarschijnlijk is dat deze binnenkort op consumentenhardware kan worden uitgevoerd.

Vergeleken met DeepSeek’s vergelijkbaar grote R1 Qwen 2.5 32B distill, kan Alibaba’s beslissing om een code-uitvoerserver te integreren in zijn reinforcement learning-pijplijn een voordeel hebben opgeleverd bij programmeergerelateerde uitdagingen.

Wiskunde: bekwaamheid met een voorbehoud

Historisch gezien hebben LLM’s geworsteld met wiskunde, een gevolg van hun taalgerichte training. Hoewel nieuwere modellen verbeteringen hebben laten zien, staat QwQ nog steeds voor uitdagingen, hoewel niet noodzakelijkerwijs om de redenen die men zou verwachten.

QwQ loste met succes alle wiskundige problemen op die eerder aan R1 waren gesteld. Dit geeft aan dat QwQ basisrekenen en zelfs wat algebra aankan. Het probleem ligt echter in de efficiëntie. Het inschakelen van een LLM voor wiskundige berekeningen lijkt contra-intuïtief wanneer rekenmachines en directe berekeningen direct beschikbaar en aanzienlijk sneller blijven.
Het oplossen van een eenvoudige vergelijking als 7*43 vereiste bijvoorbeeld dat QwQ meer dan 1.000 tokens genereerde, wat ongeveer 23 seconden duurde op een RTX 3090 Ti. Dit is een taak die in een fractie van de tijd op een zakrekenmachine kan worden voltooid.

De inefficiëntie wordt nog duidelijker bij grotere berekeningen. Het oplossen van 3394*35979, een vermenigvuldigingsprobleem dat de mogelijkheden van de meeste niet-redenerende modellen te boven gaat, kostte de lokale instantie van QwQ drie minuten en meer dan 5.000 tokens om te berekenen.

Vóór de hyperparameter-fix had dezelfde vergelijking maar liefst negen minuten en bijna 12.000 tokens nodig.

Het belangrijkste punt hier is dat, hoewel een model in staat is om met brute kracht zijn weg naar het juiste antwoord te vinden, dit niet noodzakelijkerwijs betekent dat het het optimale hulpmiddel voor de taak is. Een meer praktische aanpak zou zijn om QwQ toegang te geven tot een Python-rekenmachine. Dit maakt gebruik van de sterke punten van het model, terwijl rekenintensieve taken worden overgedragen aan een geschikter hulpmiddel.

Toen QwQ de taak kreeg om dezelfde 3394*35979 vergelijking op te lossen met behulp van tooling, daalde de reactietijd tot acht seconden, omdat de rekenmachine het zware werk deed.

De prevalentie van ‘Wait’: een blik in het denkproces

Het onderzoeken van QwQ’s ‘gedachten’ onthult een frequent voorkomen van het woord ‘wait’, vooral tijdens complexe taken of woordproblemen. Dit weerspiegelt het interne proces van het model om zijn werk te controleren aan de hand van alternatieve uitkomsten.

Hoewel dit gedrag gebruikelijk is bij redenerende modellen, kan het bijzonder frustrerend zijn wanneer QwQ een onjuist antwoord genereert, zelfs nadat het tijdens zijn ‘gedachte’-proces heeft aangetoond het juiste antwoord te begrijpen.

Dit probleem werd vaak ondervonden tijdens het testen. Een van de meest illustratieve voorbeelden was AutoGen AI’s aanpassing van het klassieke wolf-, geit- en koolprobleem. Deze puzzel presenteert een transportoptimalisatie-uitdaging met een twist:

De oplossing is ingebed in de prompt: met drie veilige compartimenten kan de boer alle items in één reis vervoeren. Vanwege de gelijkenis van de puzzel met de klassieke versie, zien modellen de compartimenten echter vaak over het hoofd.

Tijdens het testen slaagde QwQ er consequent niet in om deze puzzel correct op te lossen. Het onderzoeken van het denkproces onthulde dat het de drie compartimenten niet over het hoofd zag. In feite erkende het ze, maar verwierp ze als te eenvoudig:

“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?”

Ongeacht of de test werd uitgevoerd op het volledige model in de cloud of lokaal, QwQ worstelde om dit consequent op te lossen. Dit benadrukt een potentiële beperking in zijn redeneervermogen, waarbij het de beperkingen van het probleem kan overdenken of verkeerd interpreteren.

Hyperparametergevoeligheid: een delicaat evenwicht

In vergelijking met andere modellen vertoonde QwQ een verhoogde gevoeligheid voor zijn configuratie. Aanvankelijk raadde Alibaba specifieke samplingparameters aan:

  • Temperature: 0.6
  • TopP: 0.95
  • TopK: tussen 20 en 40

Vervolgens werden deze aanbevelingen bijgewerkt met:

  • MinP: 0
  • Presence Penalty: tussen 0 en 2

Vanwege een schijnbare bug in Llama.cpp’s afhandeling van samplingparameters (Llama.cpp wordt gebruikt voor het uitvoeren van inferentie op modellen), was het ook nodig om de herhalingspenalty uit te schakelen door deze in te stellen op 1.

Zoals eerder vermeld, resulteerde het aanpakken van deze configuratieproblemen in een aanzienlijke verbetering, waardoor het aantal ‘denkende’ tokens dat nodig was om tot een antwoord te komen, meer dan werd gehalveerd. Deze bug lijkt echter specifiek te zijn voor GGUF-gekwantiseerde versies van het model wanneer deze worden uitgevoerd op de Llama.cpp-inferentie-engine, die wordt gebruikt door populaire applicaties zoals Ollama en LM Studio.

Voor gebruikers die van plan zijn Llama.cpp te gebruiken, wordt het raadplegen van Unsloth’s gids voor het corrigeren van de samplingvolgorde ten zeerste aanbevolen.

Aan de slag met QwQ: een praktische gids

Voor degenen die geïnteresseerd zijn in het experimenteren met QwQ, is het instellen in Ollama relatief eenvoudig. Het is echter belangrijk op te merken dat het een GPU vereist met een aanzienlijke hoeveelheid vRAM. Het model werd met succes uitgevoerd op een 24GB 3090 Ti met een contextvenster dat groot genoeg was voor praktisch gebruik.

Hoewel het technisch haalbaar is om het model op een CPU en systeemgeheugen uit te voeren, zal dit waarschijnlijk resulteren in extreem trage reactietijden, tenzij een high-end werkstation of server wordt gebruikt.

Vereisten:

  1. Een machine die middelgrote LLM’s kan uitvoeren met 4-bit kwantisatie. Een compatibele GPU met ten minste 24 GB vRAM wordt aanbevolen. Een lijst met ondersteunde kaarten is hier te vinden.
  2. Voor Apple Silicon Macs wordt minimaal 32 GB geheugen aanbevolen.

Deze gids gaat uit van basiskennis van een Linux-wereld command-line interface en Ollama.

Ollama installeren

Ollama is een populaire model runner die het proces van het downloaden en serveren van LLM’s op consumentenhardware vereenvoudigt. Voor Windows- of macOS-gebruikers: download en installeer het als elke andere applicatie van ollama.com.

Voor Linux-gebruikers biedt Ollama een handige one-liner voor installatie: