4min

Over AI-programmeerhulp worden developers het niet snel eens. Ondanks de grote potentie ervan is robuuste AI-code nog altijd opvallend en niet doodgewoon. Bovendien zit niemand te wachten op een opgedrongen variant; de wens tot artificiële assistentie moet van nature gaan.

Deze week lanceerde Meta een nieuw Code Llama-model met 70 miljard parameters. In benchmarks doet het niet onder voor GPT-4, de LLM die aan de basis staat van het succesvolle GitHub Copilot. In navolging van eerdere AI-modellen is Code Llama 70B volledig gratis om te gebruiken (maar niet volledig open-source, zoals eerder is aangegeven).

Met aardig wat aanpassingen is een dergelijk model op lokale hardware te draaien. Het feit dat er op Reddit ruim 100.000 gebruikers geïnteresseerd zijn in het zelf draaien van Llama-modellen, laat een duidelijke natuurlijke animo zien. Toch toont de reactie op JetBrains’ nieuwe AI Assistant dat een groot aantal ontwikkelaars niet zitten te wachten op diens geforceerde inclusie. Mede door de “dubieuze licentieverlening/IP/juridische situatie”, zoals een JetBrains-gebruiker het verwoordt, willen velen gelijk al af van de in december geïntroduceerde functionaliteit.

Sterk uiteenlopende mogelijkheden

AI-programmeertools manifesteren zich op allerlei manieren. Voor beginnelingen kunnen ChatGPT en Google Bard aanvankelijk interessant zijn, hoewel meer dan eens onbetrouwbaar. Daarnaast is de chatbot van OpenAI spraakzaam, maar heeft het net als alle andere LLM’s geen concept van feiten. Om die reden is het niet verwonderlijk dat ChatGPT regelmatig onveilige code genereert. Google Bard is een vergelijkbaar verhaal, met wisselvallige prestaties. Aangezien zowel Google als OpenAI deze chatbots niet presenteren als doelgerichte programmeerkenners, mogen gebruikers geen wonderen verwachten.

Tip: ‘ChatGPT maakt vooral onveilige code’

Dat is anders bij GitHub Copilot en bijvoorbeeld CodiumAI. In het laatste geval is één van de beloftes dat men “code die werkt” helpt schrijven. AWS Code Whisperer, Tabnine, Divi AI en Sourcegraph Cody zijn andere AI-aangedreven tools waarvoor programmeerhulp de expliciete toepassing is. Wat opvalt is de grote variëteit aan aangeboden features. AWS Code Whisperer heeft bijvoorbeeld geen chatfunctie, terwijl dat wel voor veel concurrenten geldt. Bij GitHub Copilot was deze functionaliteit onlangs zelfs aanzienlijk uitgebreid met Copilot Chat.

Meer mogelijkheden leiden niet direct tot hogere waarderingen. Zo wordt CodiumAI veelal geprezen om diens gegeneerde tests voor bestaande code. In de woorden van één gebruiker: “het doet niet meer dan waartoe het in staat is”. Tegelijkertijd hoeft het brede aanbod binnen GitHub Copilot niet nadelig te zijn: wie rekening houdt met de beperkingen ervan, kan een stuk productiever programmeren.

Daadwerkelijk gebruik, praktische beperkingen

Wie bekend is met de beperkingen van LLM’s voor tekstuele toepassingen, zal veel overeenkomsten herkennen bij het gebruik ervan voor programmeerhulp. Zoals eerder gezegd is er geen inherente controle op de veiligheid of juistheid van code. Een populaire gedachtegang is dat LLM’s niet meer zijn dan uit de kluiten gewassen autocomplete-modellen, tools die simpelweg het volgende woord proberen te raden. Dat er meer achter de schermen aan de hand is, is al langere tijd bekend. Nu bestaat de mogelijkheid wel om generatieve AI-oplossingen simpelweg de volgende zinsnede of het volgende stukje code te laten voorspellen. Verschillende tools blijken hierin succesvol te zijn. Zo biedt CodeWhisperer “in essentie een auto-complete” binnen VSCode, net als GitHub Copilot.

Die toepassing is niet de meest ambitieuze, maar kan programmeurs die even vastzitten uit de brand helpen. Complexere code levert doorgaans slechtere voorspellingen op, dus de inzetbaarheid blijft beperkt tot een bepaald niveau. Het uitleggen van code is tevens een populaire toepassing, met de kans op imposante resultaten. Code Llama 34B zou bijvoorbeeld 166 regels aan Python-code op een diepgravende manier hebben kunnen doorgronden. Anderen hebben echter nog niet een dergelijk “wow-worthy” moment beleeft, stelt een wat sceptischere gebruiker.

Net als bij tekstgebaseerde toepassingen geldt dat codeer-LLM’s hun beperkingen hebben. Keer op keer is te lezen dat de technologie wisselvallige resultaten oplevert. Het betekent dat we ook in dit stuk continu moeten spreken over LLM’s die iets “kunnen” doen. Prompt engineering kan een hogere slagingskans bieden, maar aangezien partijen als GitHub, AWS en JetBrains deze doelgerichtheid al in deze tools hebben ingebakken, is dat niet waterdicht. De technologie lijkt fundamenteel beperkt te zijn.

Productiviteitswinst

Er is één punt waar we simpelweg niet omheen kunnen: de buitengewoon grote productiviteitswinst die deze tools opleveren. Voor developers met AI-hulp is er een 25 tot 30 procent grotere slagingskans voor het tijdig afronden van een complexe taak dan hun collega’s zonder AI. Andere resultaten creëren een nog groter contrast tussen deze twee groepen: een codeeropdracht die eerder 160 minuten kostte, kan nu afgerond zijn in 71 minuten. Wel is het een leerproces, want beginnelingen doen er juist 7 tot 10 procent langer over om een taak af te ronden met AI versus zonder.

Niet alle onderzoeksresultaten geven exact hetzelfde beeld weer, dat de subjectieve impressie ondersteunt dat lang niet iedereen het eens is over de waarde van AI-hulp bij programmeren. Dat is ook niet al te gek voor een zo snel opgekomen technologie. Het verwondert genoeg gebruikers dat men aardig wat moeite steekt om zelfs een minder potente versie van Code Llama draaiende te krijgen op een eigen pc. Tegelijkertijd reageren gebruikers vol afschuw als dergelijke functies niet zomaar uit te schakelen zijn. JetBrains zal vermoedelijk de verbluffende tijdswinst gezien hebben voor developers en de AI Assistant voor alle IDE’s met veel enthousiasme hebben ingeschakeld. Toch kleven er hardnekkige problemen aan LLM’s in algemene zin, van discutabele gebruiksrechten tot wisselvallige (en potentieel gevaarlijke) resultaten.

Net zo fundamenteel als die beperkingen is echter de pure tijdswinst die langzaam duidelijk is geworden. Linux-oprichter Linus Torvalds werd onlangs gevraagd wat hij vond van AI-gegeneerde code en kwam met een verhelderend antwoord. “Het is duidelijk iets waar automatisering mensen altijd geholpen heeft om code te schrijven. Dit is helemaal niet iets nieuws.” Ook is hij van mening dat de fouten die AI kan maken, niet overdreven moeten worden. “Ik zie dagelijks de bugs die gebeuren zonder AI. Daarom ben ik niet zo bezorgd hierover. Ik denk dat we al goed genoeg bezig zijn met zelf fouten maken.”

Lees ook: GitHub Copilot Chat maakt AI-programmeerhulp nog behendiger