AI is antithetisch aan leren

Als je genoeg tijd doorbrengt met LLM's (Large Language Models), begin je bepaalde patronen op te merken. Stel dat je werkt aan een codebase en een dependency of taalversie wilt upgraden, een component wilt herontwerpen of nieuwe functies wilt toevoegen. Je vraagt de LLM hoe je dit moet doen, en het geeft je een korte beschrijving om vervolgens af te sluiten met: "Zal ik ermee beginnen?". Soms neemt het niet eens de moeite om te antwoorden, maar past het de code direct voor je aan. Je vraagt om de commando's om DNS-records voor een domein op te zoeken, en het reageert met de DNS-records zelf. Niet met de commando's. En het eindigt altijd met een suggestie voor iets anders dat het zou kunnen doen. Het begeleidt je vooruit, maar houdt je altijd één stap verwijderd van wat er werkelijk aan de hand is.

Als je zeer gedisciplineerd bent, kun je betrokken blijven door je prompts zorgvuldig samen te stellen, alle acties in de harness te inspecteren (acties die bij elke update van de harness minder zichtbaar worden) en de agent te stoppen wanneer deze uit de bocht vliegt. Maar dat vereist precies dat: discipline. Al die wilskracht om betrokken te blijven en niet simpelweg toe te geven aan het sirenegezang van agentic coding. Je werkt echter tegen het instrument in. Een instrument dat is ontworpen om je aan te moedigen er voor alles op te vertrouwen, totdat je de code niet eens meer bekijkt. Totdat je de bestanden niet meer zelf kunt bewerken.

Totdat je er volledig afhankelijk van wordt.

Een scherp instrument

Dit is niet inherent aan LLM's als technologie. Dit is het resultaat van bedrijven wier doelen niet op één lijn liggen met het leerproces van mensen, of met het betrokken houden van mensen in het proces. Om hun astronomische waarderingen te rechtvaardigen, moeten ze AI overal voor laten vervangen. Het moet voor alles gebruikt worden. Om voor deze bedrijven ooit winstgevend te worden, moeten alle software engineers ter wereld afhankelijk worden van hun producten. Ze willen de huisbaas zijn, terwijl de rest van de wereld huur aan hen betaalt.

Als je bereid bent de rol van agent-manager op je te nemen — het produceren van ideeën om de hongerige machine te voeden, de agent-zwerm van hoogwaardige richting te voorzien en de softwarefabriek te onderhouden — dan zul je zien dat de modellen hier perfect in passen. Dat is waar ze voor worden getraind, dat is waar ze voor zijn ontworpen. Om verwarring te voorkomen: dit artikel gaat niet over de vraag of agentic coding een goed ding is of niet. Het is duidelijk dat de industrie die kant op beweegt. Maar ik wil nog steeds dingen leren, puur om het leren zelf. Of je nu vindt dat dit nog wel noodzakelijk is of niet.

Wanneer je alleen gebruik wilt maken van de enorme hoeveelheden informatie die in het model zijn opgeslagen, zul je merken dat je constant tegen het systeem moet vechten. Als je bijvoorbeeld een intuïtie wilt opbouwen over hoe een content addressed encoding algorithm werkt, is alle informatie aanwezig. Het zou absoluut mogelijk moeten zijn om modellen te gebruiken om je dingen te leren. Ze zijn alleen primair niet daarvoor ontworpen.

Wat je kunt doen

Als je toch de uitdaging wilt aangaan om met LLM's te leren, zijn hier enkele basisrichtlijnen die ik adviseer:

  • Beperk de agent-omgeving (harness): Zorg dat deze geen commando's kan uitvoeren of wijzigingen kan aanbrengen die niet bedoeld zijn voor het lezen van informatie. Elk commando dat het voor jou uitvoert, is een gemiste kans om te leren en spiergeheugen op te bouwen voor de interactie met je computer.
  • Vraag specifiek om menselijke bronnen: Je moet het model bijna smeken om menselijke bronnen te lezen; het zal altijd proberen repositories te klonen en de broncode te lezen. Blijf vragen om menselijke bronnen.
  • Geef duidelijke instructies in je systeem- of projectprompt: Specificeer wat je aan het doen bent. Geef aan of je wilt dat het model codevoorbeelden toont, of dat het enkel bronnen en informatie moet verstrekken.
  • Omarm de moeite: Hoe minder je toegeeft aan de verleiding om de agent dingen te laten doen, hoe meer je leert, zelfs als het irritant of frustrerend is. Moeite (toil) is belangrijk voor mensen. Moeite helpt ons te leren en te groeien.
  • Blijf sceptisch: Pas extreme scepsis toe op alles wat het model produceert. LLM's zijn getraind om elke bewering met volledig vertrouwen te formuleren. Dat helpt de bedrijven hun technologie te verkopen, maar het helpt jou niet.

Het voordeel, als je het voor je kunt laten werken, is dat je een generator hebt van een oneindige hoeveelheid leermateriaal. Het kan inhoud bieden die specifiek voor jou is ontworpen, en het kan zaken aanpassen en verfijnen terwijl je vordert. In het ideale geval is het als een boek over programmeren waar je vragen aan kunt stellen, dat oefeningen voor je kan maken en dat de taal en inhoud kan aanpassen aan jouw niveau. Het kan je leren over de meest obscure concepten, zelfs voor zaken waar nauwelijks documentatie voor bestaat.

Het is een glimp van wat we hadden kunnen hebben, als de dingen anders waren gelopen.

Een betere wereld

Ik geloof niet dat we de wetenschappelijke en technologische concepten die ten grondslag liggen aan large language models moeten overlaten aan door durfkapitalisten gefinancierde startups die verwikkeld zijn in een doodsstrijd om de suprematie. Ik geloof ook niet dat de "goede versie" van LLM's winstgevend genoeg is om de enorme kapitaalinvesteringen in de ontwikkeling ervan te motiveren. Maar ik ben nog steeds hoopvol dat we ooit een betere manier vinden om dit te doen.

Ik wil ook duidelijk maken dat ik dit niet schrijf als kritiek op mensen die genieten van agentic coding. Dit artikel gaat puur over leren.

Voor nu: volg je hart. Gebruik LLM's als je ze nuttig vindt en als je het acceptabel vindt. Zo niet, doe het dan niet. Maar ongeacht je aanpak, vergeet niet te groeien en te leren. Dat is het waard.