4min

Software engineers ondervinden uitdagingen bij het bouwen van een copilots. Dat komt deels door het relatief nieuwe aspect van de technologie, maar ook zorgen rondom de veiligheid en privacy duiken de kop op. Welke uitdagingen ondervinden software engineers concreet en wat zijn de oplossingen?

Een copilot moet assisteren bij het uitvoeren van een specifieke taak. Zo zijn er bijvoorbeeld copilots speciaal ontwikkeld voor developers die bijvoorbeeld helpen bij het schrijven van code. Dit gebeurt op basis van AI die gebruikmaakt van een specifiek LLM dat informatie bevat over het werkveld waarin de AI-assistent tewerk wordt gesteld.

Het bouwen van een dergelijke copilot blijkt software engineers voor 6 uitdagingen te zetten. Dat is de conclusie van een paper van verschillende onderzoekers bij Microsoft. Zij interviewden 26 software engineers die ervaring hebben met het bouwen van copilots. Specifieke vragen waar de interviews op ingingen waren het gevolgde proces om een copilot te bouwen, de uitdagingen tijdens de ontwikkeling en mogelijkheden om het proces aan te passen voor de uitgevers van de tools.

6 uitdagingen

De bouw van een copilot verloopt nooit hetzelfde. Dat komt mede doordat de fases uit het development-proces niet netjes afgebakend zijn en niet steeds in dezelfde volgorde worden doorlopen. Op het software development-proces gaan we zometeen nog dieper in. Het is wel belangrijk om te weten dat software engineers door dit warrige proces ieder tegen andere narigheid aanlopen. De Microsoft-onderzoekers brachten deze uitdagingen samen onder zes problemen.

Als eerste blijkt het creëren van prompts een tijdrovende klus. Hieronder valt de volledige ontwikkeling van een prompt, van het krijgen van een idee tot het testen en fine-tunen ervan. Het blijkt moeilijk om prompts te testen door een tekort aan data. Het probleem van testen ondervinden software engineers overigens niet alleen met prompts. Testen blijkt een algemeen ander probleem te zijn dat opduikt doordat het niet mogelijk is één variabele uit te filteren voor de test. Een testresultaat kan beïnvloed zijn door de prompt of het model. Dit proberen engineers op te lossen met benchmarks, maar dit vereist expertise en is duur.

Het managen en coördineren van verschillende databronnen en prompts vormt een derde uitdaging. Engineers worden uitgedaad voor het maken van geavanceerde workflows die copilots kunnen volgen wanneer meerdere vragen van de gebruiker of prompts, elkaar opvolgen. Een oplossing voor dit probleem is nog niet te vinden, doordat best practices voor het werken met LLM’s nog geschreven moeten worden. Dit samen met het ontbreken van benchmarks, vormt de vierde uitdaging. Het vijfde probleem is hier ook aan gekoppeld. Zo missen engineers goede richtlijnen om zorgen rondom de veiligheid en compliance van copilots weg te nemen. Het is dan ook weer geen optie om deze elementen in te bouwen op basis van telemetriegegevens omdat dit privacyproblemen veroorzaakt met de gegevens van de gebruikers.

De laatste uitdaging waar het onderzoek op uitkwam is in feite een combinatie van alle voorgaande aspecten. Zo schrijft het onderzoek dat “de algemene ervaring van ontwikkelaars wordt belemmerd door ontoereikende tooling en integratieproblemen.”

Software development-proces opgeschud

Het bouwen van een copilot blijkt de normale gang van zaken in het ontwikkelproces door elkaar te schudden. Er zijn wel vier overkoepelende fases te onderscheiden, maar die lopen kriskras door elkaar heen.

Tijdens de fase van exploratie gaan ontwikkelaars op zoek naar geschikte use-cases voor het implementeren van een copilot en wordt een proof of concept opgebouwd. Tijdens de implementatie worden onder andere de input en de ouput al vergeleken. Daar is ook tijd om prompts te verzinnen, dat is een commando dat schriftelijk, visueel of met audio wordt overgebracht. Tijdens de evaluatie testen engineers de prompts en andere zaken van de copilot. Tijdens de productisering dan nog komen zaken zoals het instellen van begrenzingen aan de input en de output en andere veiligheids-maatregelen aan bod. Hier vragen de engineers ook aan de gebruikers hoe zij het product ervaren en of zij nog verbeterpunten opmerken.

Developers hebben meer controle en data nodig

Het onderzoek focust niet alleen op de problemen van de ontwikkeling, maar zoekt ook naar de oplossingen. Hiertoe werden vier kansen aangeduid voor de uitgevers van de tools voor het bouwen van copilots.

  • De tools moeten ondersteuning bieden bij de ontwikkeling van een prompt. Dat bestaat gedeeltelijk uit een ’toolbox’ waarin al voorbeelden zitten van prompts voor algemene taken.
  • Er is meer transparantie en controle nodig over de informatie die AI gebruikt.
  • Een geautomatiseerde methode om feedback van gebruikers te verzamelen of de prestaties van de copilot te meten, helpt software engineers met het testen.
  • Engineers hebben een hulpmiddel nodig om copilots snel in projecten of bestaande codebase te plaatsen.

Het bouwen van copilots staat nog voor verschillende uitdagingen om software engineers een eenvoudige en aangename algemene ervaring te bezorgen. Onder de oplossingen vallen automatisering en transparantie, maar er wordt ook gezien dat er in het algemeen nog meer ervaring nodig is met het bouwen van copilots om een gemeenschap te creëren waarin software engineers ervaringen kunnen uitwisselen. Het veld heeft daarom ook gewoon nog tijd nodig om uit te groeien.

Tip! Luister onze podcast van 29 januari waarin we bespreken waarom veel organisaties worstelen met het veilig gebruiken van LLM’s.