De verborgen kosten van AI
Een aanzienlijk deel van de tokens die we dagelijks verbruiken, gaat op aan beleefde omwegen, onnodige bevestigingen en overgekwalificeerde taalmodellen voor eenvoudige taken.
Omdat ik regelmatig stil sta bij het verbruik, de ecologische impact en het milieu, besloot ik de onderliggende stroom van mijn eigen AI-workflows eens onder de loep te nemen. Het is goed om je te realiseren hoeveel rekenkracht er ongemerkt verdwijnt in de randzaken van een gesprek. De drang om direct het zwaarste en meest veelzijdige cloudmodel te kiezen is begrijpelijk. We verwachten dat de AI naadloos onze zinnen afmaakt, ingewikkelde problemen in één keer doorgrondt en tegelijkertijd prettig in de omgang is. Maar de stapeling van die verwachtingen heeft een blinde vlek gecreëerd.
Dat telt razendsnel op. Onderzoekers van de University of California, Riverside berekenden voor de Washington Post (september 2024) dat het genereren van een simpele e-mail van honderd woorden met GPT-4 circa 0,14 kWh aan stroom kost, ongeveer evenveel als veertien ledlampen die een uur lang branden, plus 519 milliliter water voor de koeling. Die energie gaat niet simpelweg zitten in het bedenken van de tekst. Achter de schermen vereist het draaiend houden van enorme GPU-clusters in datacenters enorm veel stroom en water voor de koeling. Voor elk individueel woord dat gegenereerd wordt, moeten de miljarden parameters van het taalmodel opnieuw worden doorgerekend. Natuurlijk blijft het belangrijk om beleefd te zijn in je normale communicatie, maar een AI geeft daar niets om: ook een bedankje uit pure gewoonte zet de servers aan het werk. In mijn eigen dagelijkse gebruik was ik er dan ook al snel klaar mee: al die schijnbeleefdheid en de uitgebreide, ongevraagde uitleg die de AI bij elke stap geeft, slokken per dag onnodig veel output-tokens en daarmee rekentijd op.
De verborgen kosten van taal
Een ander, meer technisch inzicht was de impact van de gesproken taal. Ik merkte dat ik in mijn prompts Engels en Nederlands vaak dwars door elkaar heen gebruikte. Dat voelt voor mij heel natuurlijk, maar het heeft een directe impact op het tokenverbruik. De taalmodellen die ik in mijn gereedschapskist heb, zijn onder de motorkap veelal getraind en geoptimaliseerd op basis van de Engelse taal. Hun ‘tokenizer’ – het systeem dat tekst in kleine, behapbare stukjes knipt voor het neuraal netwerk – is daardoor veel efficiënter in het Engels. Afhankelijk van het model en de gebruikte tokenizer kan Engels efficiënter worden verwerkt dan Nederlands, waardoor hetzelfde idee soms minder tokens kost. Als je puur functioneel communiceert met een agent, is Engels dan ook vaak ‘goedkoper’ om te verwerken. Bewust sturen op de voertaal is dus een afweging: voor functionele code en scripts kies ik Engels om tokens te besparen, maar als het over nuance gaat, gebruik ik liever mijn voorkeurstaal (Nederlands) zodat de boodschap precies landt zoals ik hem bedoel.
De gereedschapskist doelmatiger inrichten
Met dit in het achterhoofd ben ik mijn werkomgeving anders gaan inrichten. Waar mogelijk scheid ik nu denkkracht van pure executie. Mijn vaste vuistregel is: het complexe, genuanceerde schrijf- en denkwerk gaat naar een zwaarder model als Sonnet of Opus, maar al het voorbereidende sorteerwerk, patroonherkenning en de vluchtige data-analyse belandt bij een kleiner, razendsnel Haiku-model. Pas als de kwaliteit merkbaar inzakt, schaal ik op naar maximale ‘thinking’ of naar modellen zoals Fable.
Daarnaast gebruik ik voor het operationele werk een eigen ‘caveman’-modus, gebaseerd op een open source prompt-idee dat ik zelf heb aangepast. Er zijn verschillende niveaus. De mildste variant voorkomt onnodige excuses en uitgebreide uitleg bij elke denkstap. Maar de sterkste modus is ook nog eens de grappigste. Het is heerlijk ironisch om een hypermodern, ijzersterk taalmodel te dwingen tot de meest basale oertaal: antwoorden als “TEST PASS. BUILD GOOD.” zijn dan ook prachtig om op je scherm voorbij te zien komen. De weggelaten voorzetsels en puur functionele grammatica klinken misschien wat bot, maar ze snijden aanzienlijk in het aantal berekende tokens per interactie. In mijn eigen experimenten zag ik nauwelijks tot geen kwaliteitsverslies: vooral de omringende uitleg werd korter, niet het werk zelf.
De vlucht naar lokale modellen
Naast het slim routeren van opdrachten in de cloud, experimenteer ik ook met lokale modellen. Een van de kleine open source projecten die ik op dit moment uitprobeer, laat een groot model grotendeels op gewone consumentenhardware draaien door alleen de paar gespecialiseerde deelnetwerken (‘experts’) in te laden die voor het eerstvolgende woord nodig zijn; de rest blijft op de schijf staan tot het weer aan de beurt is. Precies dat idee, alleen wakker maken wat je nodig hebt, is waar doelmatig AI-gebruik in de kern om draait. Het kost nog steeds energie van je eigen hardware, maar het is een mooi voorbeeld van hoeveel er inmiddels mogelijk is op een machine die je zelf volledig beheert.
Dit brengt interessante en nuttige afwegingen met zich mee. Lokale generatie levert op doorsnee hardware weliswaar flink in op snelheid – soms genereer je met moeite 1 of 2 tokens per seconde – maar de voordelen zijn wezenlijk. Je data verlaat je eigen netwerk niet, er zijn geen variabele kosten per gegenereerde token, en je bent onafhankelijk van een internetverbinding. Belangrijker nog: het dwingt je om vooraf na te denken of je voor een simpele testanalyse daadwerkelijk een model met biljoenen parameters nodig hebt, of dat een klein, gefocust lokaal model eigenlijk al ruim voldoende is. Sommige taken mogen bovendien ook best even duren. Net zoals een zware test-suite prima de hele nacht op de achtergrond mag draaien, hoeft een lokaal model voor bulkwerk niet altijd direct antwoord te geven.
Innoveren door nieuwsgierigheid
Zuiniger omgaan met AI-infrastructuur is daarmee niet alleen een instrument om clouddiensten betaalbaar te houden. Mistral, Google en OpenAI publiceerden het afgelopen jaar allemaal zo’n cijfer voor één gesprek – ergens tussen een fractie van een watt en de e-mail waarmee dit stuk begon, met een waterverbruik van een paar druppels tot een hele fles. Maar de drie meten stuk voor stuk anders en over een ander deel van het proces, waardoor die cijfers zich niet netjes naast elkaar laten zetten.
Veelzeggender dan wat er wél gepubliceerd wordt, is wat er ontbreekt. Google’s eigen rapport gaat alleen over het gebruiken van het model, niet over het trainen ervan. Voor videogeneratie, inmiddels de zwaarste toepassing, bestaat nog geen officieel cijfer; onafhankelijke onderzoekers schatten de kost van één Sora 2-video duizenden keren hoger dan een tekstprompt, maar dat cijfer komt van buiten OpenAI. Mistral deelde als enige de volledige levenscyclus, training inbegrepen: dat kostte zoveel water als een Nederlands gezin van vier in ruim 1.700 jaar verbruikt. Of dat verhoudingsgewijs ook voor de anderen geldt, weten we simpelweg niet. En dat gebrek aan een gedeelde maatstaf is volgens mij het eigenlijke verhaal hier, niet de exacte cijfers zelf.
Wereldwijd groeit de vraag ondertussen onmiskenbaar: de IEA voorspelt een verdubbeling van het stroomverbruik van datacenters richting 2030, met AI als grootste aanjager. Nieuwe regels zoals Annex XI van de Europese AI Act verplichten de bouwers van deze modellen voortaan om dat verbruik te documenteren, een stap richting zo’n gedeelde maatstaf, al geldt die verplichting nog niet voor wie de modellen alleen gebruikt en gaat ze gefaseerd in. Voor mij is blind blijven consumeren van rekenkracht dan ook geen houdbare strategie meer, ook al oogt de impact van één los gesprek op zichzelf klein.
Nieuwsgierigheid staat overigens niet tegenover besparen of de regelgeving: ze is wat die besparing in de praktijk liet werken. Als tester heb ik geleerd nooit zomaar aan te nemen dat “de kwaliteit toch wel gelijk blijft”: je gaat kijken, meten, en pas dan concluderen. Diezelfde blik liet me zien hoeveel rekenkracht er in beleefdheidsfrasen en overbodige uitleg verdween. Ook doelmatigheid is een claim die je moet kunnen onderbouwen, niet alleen uitspreken, en dat is precies waar Premium Software Quality voor mij om draait: niet alleen software leveren die werkt, maar ook verantwoording nemen over de weg ernaartoe, inclusief de middelen die je daarvoor inzet. Blijven ontwikkelen met AI hoeft dan ook geen tegenstelling te zijn met doelmatig omgaan met middelen: het is dezelfde onderzoekende houding, toegepast op een nieuw stuk gereedschap.
Jorre van Munster
AI Lead en Test Specialist bij Polteq
