Christian Dalager

𝗞𝗮𝗻 𝗺𝗮𝗻 𝗯𝗿𝘂𝗴𝗲 𝗱𝗲𝗰𝗶𝘀𝗶𝗼𝗻-𝗺𝗼𝗱𝗲𝗹𝘀 𝘁𝗶𝗹 𝗮𝘁...

​ Weekendens eksperiment gik ud på at få lidt hands-on erfaring med Jev-style decision-models til konkrete og måske endda nyttige formål. ​...
Billede fra LinkedIn-opslag

𝗞𝗮𝗻 𝗺𝗮𝗻 𝗯𝗿𝘂𝗴𝗲 𝗱𝗲𝗰𝗶𝘀𝗶𝗼𝗻-𝗺𝗼𝗱𝗲𝗹𝘀 𝘁𝗶𝗹 𝗮𝘁 𝘃𝘂𝗿𝗱𝗲𝗿𝗲 𝗸𝗼𝗱𝗲𝗸𝘃𝗮𝗹𝗶𝘁𝗲𝘁? ​ Weekendens eksperiment gik ud på at få lidt hands-on erfaring med Jev-style decision-models til konkrete og måske endda nyttige formål. ​ Kodekvalitet betyder ret meget for både mennesker, maskiner og AIs, både når vi skriver koden og når vi læser den. Høj kvalitet sænker den kognitive effort når vi skal forstå og reducerer desuden risikoen for at vi introducerer fejl (Og det "vi" jeg bruger her dækker hele paletten af ting der læser og skriver kode) ​ I den seneste tid har decision-modeller eller "System One" modeller, som Typesafe.ai introducerede med Jev, fyldt ret meget. Det er meget groft sagt en form for smart classification API oven på en sprogmodel, der ikke spytter tekst ud, men klassificerer med probabilites. Meget hurtigere og lidt mindre Mr. Bean. ​ Eksperimentet skulle besvare spørgsmålet: kan jeg få noget godt ud af at bruge en decision model til at sige noget om C# code-smells, altså dårlig kodepraksis i kode. ​ Først lavede jeg en større online research for at bygge et liste en liste med klassiske problemer og antipatterns i C#.​

Så byggede jeg et eval datasæt med en masse c# filer der både var dårlige og gode med lidt blandede problemer i. Passende labelled etc med Fable. ​ Og op mod d3-flash, en godt performende 9b decision model, jeg har kørende lokalt, startede jeg et autoresearch loop til at tune den optimale prompt. ​ Det fungerede nogenlunde. Men det er 𝘭𝘪𝘥𝘵 dyrt/langsomt, selv mod en lille model, når man ikke har en monstergpu på bordet. ​ Så næste skridt var at tage tree-sitter kodeparseren ned fra hylden og flytte så meget som muligt at analysen over i noget, der performer. ​ Og derefter bruge decision modellen til de mere "bløde" vurderinger, der måtte være tilbage: kvalitet af dokumentation, en "autenticitetsscore" af navngivning: gør du det, du siger du gør? Er der overensstemmelse mellem dit indre liv og det, du præsenterer for din omverden? På et semantisk niveau, forstås. ​ Til sidst pakkede jeg det hele ind i en python CLI med et skill rundt om, som jeg så kan wire ind i Claudes hook system eller lignende. ​ Så trak jeg det over et større kundeprojekt og bad Claude om at bruge mit tool til at iterere over en folder med .NET API controllers indtil kvaliteten var 95% perfekt. ​ Og så smagte jeg på kvalitet, performance og developer experience og loopede, indtil jeg var glad. ​ Nu vil jeg se, om jeg kan luske det ind i teamet i morgen 🥸 ​ 𝗟æ𝗿𝗶𝗻𝗴

Oprindeligt delt på LinkedIn