Student

Gwyde Vermander

Opleiding
IBM, jaar 3
Traject
4 ECTS
Mijn richting
nog niet gekozen
Wie ik ben
  • Student IBM, jaar 3, Arteveldehogeschool
  • Middelbaar diploma Industriële Wetenschappen
  • Weekendjob als ober in restaurant Fermoed: bestellingen van eten en drinken opnemen, doorgeven, opdienen en afruimen
  • Stage (vorig academiejaar) bij Rideaupress: projectmanagement, met een grote focus op sales
  • Hobby's: fietsen, voetbal, fitness
Dit vak
  • Richting: nog niet gekozen
  • Traject: 4 ECTS

Posts

Week 4

Lezen kost tijd...

Mijn tool in cijfers

Voor mijn tool heb ik drie versies getest: v1, v2 en v3. De succespercentages zijn respectievelijk 8 op 10 juist (n = 5, 2 runs), 7 op 10 juist (n = 5, 2 runs) en 16 op 20 juist (n = 10, 2 runs). Bij v1 was T04 verkeerd, want de tool gaf 2x "geen info" in plaats van "goed". Bij v2, na het toevoegen van voorbeelden en "want"-regels aan mijn prompt, waren T06 (foutklasse F1: vol overtuiging het verkeerde antwoord) en T09 (foutklasse F6: een ander antwoord bij dezelfde input) fout. Doordat het percentage hoog lag bij v1 en v2, heb ik nog andere testinputs toegevoegd met moeilijkere opgaves, bijvoorbeeld weinig informatie, artikels in een andere taal of een artikel met gemengde signalen. Om de resultaten weer hoger te brengen, heb ik een nieuwe regel toegevoegd aan de prompt voor artikels met gemengde signalen. Die regel loste T06 op, maar maakte T03 en T09 fout, omdat hij te breed is. Bij v3 waren T03 en T09 dus fout, elk 2x met foutklasse F1. Er waren geen fouten van de klassen F2 tot F6. Mijn tool is dus stabiel: hij gaf bij elke input twee keer hetzelfde antwoord. Maar bij gemengde signalen is hij te voorzichtig. Let wel: v1 en v2 zijn getest op 5 inputs, v3 op 10, waarvan vijf moeilijke, dus de cijfers zijn niet helemaal te vergelijken.

Wat kost één run?

De kost van 1 run met het model Haiku was € 0,017 (het goedkoopste Claude-model uit de tabel). Met het model Opus zou de kost € 0,068 zijn (berekend met de tabelprijs; dit is mijn meest gebruikte model voor het aanmaken van deze tool). Opvallend is het verschil tussen de context en mijn deel: Claude Code stuurt bij elke vraag eerst zelf 32,3k tokens mee (zijn eigen instructies, tools en mijn context.md), terwijl mijn deel (de prompt, de input en het antwoord) 14,5k tokens is. Voor een bedrijf telt alleen mijn deel, want via de API stuurt het alleen de prompt en de input mee. Tijdens het testen van mijn kostberekening heb ik T01 gedraaid in een lege map en in mijn studentenmap. Hierbij merkte ik een klein verschil: de run in de studentenmap was goedkoper ($ 0,0042 tegenover $ 0,0045). Dat kwam door de cache: 68% van de input kwam uit de cache, en tekst die hergebruikt wordt kost maar een tiende van de gewone prijs.

Voor Sporza zou dit voorlopig ± € 16 per jaar zijn. Aangezien de Sporza Wielermanager voor de voorjaarsklassiekers 900 tot 1.000 renners bevat, wordt de berekening € 0,017 × 950 = ± € 16. Bij 10× is dat ± € 162 en bij 1.000× ± € 16.150. Pas bij dat laatste volume doet het bedrag er echt toe. Met GPT-6 Luna (€ 0,0017 per run) zou het nog tien keer goedkoper zijn, maar ik weet nog niet of dat model even goed scoort op mijn testset.

Met de hand of met de tool?

Met de hand zoek ik eerst nieuwsberichten over de renner (± 2 min), lees ik twee artikels (5 tot 10 min, gemiddeld 7,5 min) en kies ik een label (30 s). Dat is ongeveer 10 minuten per renner.

Met de tool moet ik de berichten nog altijd zelf zoeken (2 min), want mijn tool zoekt nog geen artikels. Daarna plak ik ze in de prompt (1 min), laat ik de tool draaien (7 s, gemeten met /cost) en kijk ik de uitvoer na (15 s). Dat is ongeveer 3,4 minuten. Per renner win ik dus ± 6,6 minuten, vooral omdat de tool het lezen overneemt.

SchakelWaardeBron
Met de hand600 s per rennergeschat
Met de tool202 s per rennerdraaien gemeten, de rest geschat
Winst per renner398 s
Volume± 950 renners per jaarSporza: 900 tot 1.000 renners in de voorjaarsklassiekers
Uren gewonnen± 105 uur per jaar
Uurkost€ 16 tot € 23aanname: brutoloon medewerker of journalist
Waarde€ 1.680 tot € 2.415 per jaar
Kost van de tool± € 16 per jaargemeten, kosten.md
Netto± € 1.660 tot € 2.400 per jaar

De beoordeling gebeurt één keer per jaar, vóór het voorjaarsspel. Daarom reken ik per jaar en niet per dag of per week. Wat opvalt: de kost van de tool (± € 16) is bijna niets tegenover de waarde van de tijdwinst. De echte vraag is of mijn geschatte tijden kloppen, en of Sporza vandaag al iemand de vorm laat opvolgen.

Mijn zwakste cijfer

Het cijfer dat ik het minst vertrouw, is de leestijd van 5 tot 10 minuten per renner. Die heb ik geschat, niet gemeten. Als het lezen in werkelijkheid maar 5 minuten duurt in plaats van 7,5, daalt de winst per renner van 398 naar 248 seconden. Het netto voor Sporza zakt dan van ± € 2.030 naar ± € 1.290 per jaar. De tool blijft dan nog altijd veel meer opleveren dan hij kost (± € 16 per jaar).

Een nog groter vraagteken is of Sporza vandaag al iemand de vorm van renners laat opvolgen bij het bepalen van de prijzen. Doet niemand dat, dan bespaart mijn tool geen tijd, en zit de waarde vooral in betere prijzen en een spannender spel. Om dit uit te zoeken, wil ik de leestijd echt meten met een chronometer, en navragen hoe Sporza de prijzen bepaalt.

Week 3

Context engineering en testsets

Wat ontbrak er in mijn context?

In mijn audit zag ik dat er een aantal bouwstenen ontbraken in mijn v1: er stonden geen voorbeelden in (bouwsteen 4) en geen enkele regel had een "want" (bouwsteen 2). Hierbij voegde ik enkele nieuwe regels toe om bij voorbeelden waarbij er twijfel was deze twijfel weg te halen en zodat de AI er een keuze uit kon maken. Dit kwam voor bij testinput T06, waarbij de AI gemengde signalen zag. Door het toevoegen van deze regel is mijn probleem opgelost en is de AI van "goed" naar "geen info" gegaan, wat correct is. Daarnaast heb ik ook een aantal voorbeelden toegevoegd zodat mijn AI zich kon vergelijken met die voorbeelden tijdens het proces om zo makkelijker het juiste label terug te vinden. Door deze voorbeelden heb ik mijn probleem met mijn T04 opgelost en ging hij van het label "geen info" naar "goed", wat juist is. Bij de buurtest koos mijn buur bij 3 van de 3 inputs hetzelfde label als ik, maar ik kreeg het advies dat mijn prompt wat te lang was. Bij nader inzien kon ik de prompt korter maken, maar ik wil in de toekomst nog een deel machine learning toevoegen en die info is de info die er te veel in staat.

Mijn eerste cijfer

Mijn succespercentage is redelijk hoog, dit zie ik zowel als iets positiefs als negatief. Het is positief omdat de basis van mijn AI al goed gebouwd is. Het is negatief omdat ik op die manier niet veel correcties kan doen of belangrijke details op dat moment over het hoofd zie. De resultaten van run 1 met v2 waren 4 op 5 juist (n = 5, 1 run), met T06 als F1 en T09 als F6. Na mijn wijziging heb ik op mijn 10 testinputs 16 op 20 juist (n = 10, 2 runs). Hierbij waren T03 en T09 F1: het model gaf vol overtuiging het verkeerde antwoord. Er was geen enkele F6 meer.

Eén wijziging

Ik heb een regel met "want" toegevoegd over gemengde signalen. In vraag 1 heb ik het hier ook al kort over gehad, want in sommige artikels zegt een renner dat hij zich goed voelt, maar dat zijn benen al vermoeid kunnen zijn van vorige wedstrijden. Dit geeft dus gemengde signalen en die renner kan zich dus goed voelen of vermoeid. Aangezien er dus twijfel is, heb ik een regel aan mijn prompt toegevoegd zodat het model bij gemengde signalen "geen info" kiest. Bij T06 werkte de regel: het model gaf twee keer "geen info", en dat was juist. Maar bij T03 (Mas) en T09 (Groenewegen) gaf het model nu ook twee keer "geen info", terwijl "vermoeid" juist was. Bij T09 zei Groenewegen "niet 100 procent, maar klaar om te koersen", en het model las dat ook als gemengd signaal. Dit is nog geen bewijs dat mijn tool beter werkt, omdat er één input opgelost is maar twee andere fout zijn.

Week 2

De vorm van de renner

Wat bouw ik?

Ik ga aan de hand van allerlei rapportages en nieuwsartikels proberen te achterhalen wat de vorm van een renner is op een bepaald moment. Hierbij ga ik werken met 5 verschillende labels genaamd: uitgeschakeld, in herstel, vermoeid, goed en geen info. Op deze manier kan je de vorm van een renner achterhalen voor de start van een grote wielerwedstrijd en kan je dus een pronostiek maken op betrouwbare feiten.

Waarom een taalmodel?

Dit model zou ook goed werken met machine learning door te kijken naar vorige resultaten en zo een toekomstige plaats te achterhalen, maar een vorm van een renner kan over de tijd snel veranderen, dus kan hij bijvoorbeeld in een periode van 2 maanden van "in herstel" naar "goed" gaan of omgekeerd. Zo kunnen er zich fouten voordoen in machine learning. De beste manier zou een combinatie zijn van een taalmodel en de machine learning.

Eén testinput

  1. De input: Ik verkies een testinput over Tadej Pogačar die zich momenteel in een herstelfase bevindt. Herstel is het label en staat vermeld onder het nummer T02; dit label is aan hem gegeven omdat zijn operatie al gepasseerd is en hij al opnieuw is begonnen met trainen maar nog geen wedstrijden rijdt.
  2. Mijn tool zei: twee keer "in herstel" na 2 testruns uit te voeren. Dus dit betekent dat de gegeven artikels overeenkomen met de informatie die staat onder het label "in herstel", dus dit is gelukt.
Week 1

Van simpele request naar werken met een AI in de terminal

Wat heb ik tot nu toe met AI gedaan?

Tot nu toe heb ik AI gebruikt om mij woordenlijsten en leerstof te laten overhoren tijdens de examenperiode. Ook gebruik ik het om beeldmateriaal en samenvattingen van bepaalde artikels te maken. Ik gebruik vooral Claude, daarnaast ook Copilot, ChatGPT, Gemini en DeepSeek. In mijn ervaring werkte dit goed nadat ik een aantal details toevoegde aan mijn vraagstelling.

Wat verraste me vandaag?

Alles is uiteindelijk gelukt na wat opzoekwerk: de eerste pull request, git installeren en mijn weg vinden in de cursus. Ik ben geprikkeld om hier meer over te leren.

Welke richting wil ik uit?

In de toekomst wil ik mijn weekendwerk bij Fermoed als flexi blijven doen. Voor mijn toekomstige job twijfel ik nog, maar ik sta open voor een job in export en sales, liefst in de bouwsector.