Algoritme als Software

20 nov 2020

Dit is een vervolg op het inleidende artikel "Van wie is het model"?

Wat kunnen klant en ontwikkelaar van elkaar verwachten als het eindproduct een dienst wordt?

De klant komt bij de ontwikkelaar en geeft hem haar data. Ze heeft ook een vraag die ze beantwoord wil hebben. De ontwikkelaar schoont de data op, verduidelijkt de vraagstelling en kiest vervolgens een model. Met het gekozen model en de voorbereidende stappen kan de ontwikkelaar het algoritme trainen. Hij kan met nieuwe data dan ook nieuwe versies van het algoritme trainen. De ontwikkelaar heeft nu dus een algoritme wat op basis van nieuwe data een voorspelling kan gaan doen. De ontwikkelaar zet het algoritme op een server. De klant kan dan via een website of een API (application programming interface) nieuwe data sturen en de resultaten krijgt. De klant heeft dus een dienst ‘gekocht’ en hiervoor de ontwikkelaar toegang gegeven tot haar data om de dienst te ontwikkelen. Een voorbeeld hiervan is Google Vision AI’s API. Dit is een API waar je een foto naartoe kan sturen om bijvoorbeeld gezichten of logos te herkennen in de foto. In dit geval lever je zelf niet de trainingsdata aan, maar maak je gebruik van de data die door Google verzameld is.

Voor de ontwikkelaar

Als ontwikkelaar heb je hier de verantwoordelijkheid voor het hosten en onderhouden van het algoritme. Je zal ook de uitkomsten van het algoritme uit moeten leggen als daarom wordt gevraagd. In ruil daarvoor hoef je het model en het algoritme niet prijs te geven. Je kunt de klant op basis van een abonnement Software as a Service (SaaS), een vast bedrag of op basis van gebruik laten betalen. Je zal er wel op moeten letten dat als jouw klant het financiële risico van het project draagt, de klant misschien een databankrecht heeft op de voorbereide data voor het trainen. Je mag de data dan niet zomaar voor andere projecten gebruiken.

Voor de klant

Als klant heb je niet veel controle op het algoritme en het model. Je hebt dan wel minder verantwoordelijkheden aangezien de ontwikkelaar het hosten en het onderhoud regelt. Voor de uitleg van het algoritme ben je verder afhankelijk van de ontwikkelaar. Die afhankelijkheid kan problemen opleveren als de uitleg belangrijk is voor jouw specifieke vraag.

Conclusie

Deze samenwerkingsvorm is vooral geschikt als de klant zelf weinig kennis in huis heeft. Als de klant geen modellen kan beoordelen, onderhouden en hosten, dan is het handig dat de ontwikkelaar een groot deel van de verantwoordelijkheid neemt. Verder zal men op de uitdagingen van Software as a Service (SaaS) moeten letten. Die zijn te vinden in ons artikel.

Wat kunnen wij voor u betekenen?

AI/ML zijn niet in de wet verankerd. Dit betekent dat partijen die gaan werken met AI/ML technologie over verschillende aspecten van de opdracht afspraken moeten maken om de onderlinge juridische posities alsnog te bepalen. Onderwerpen zoals de selectie van data(sets), hoe wordt een model getraind, hoe kan je je model en algoritmes beschermen, wie is waar verantwoordelijk / aansprakelijk voor, wie mag wat met het algoritme, wat mag je wel en niet met de data(set), wat mag er verwacht worden van het algoritme en (hoe) kunnen de uitkomsten van het model uitgelegd worden. Wij maken dit soort overeenkomsten en beoordelen dit soort overeenkomsten.

Lees ook de volgende artikelen die bij het inleidende artikel "Van wie is het model?" horen. Artikel Algoritme als een dienst en Algoritme via Detachering.

Dit artikel is geschreven door Robin Verhoef en Jos van der Wijst.

Voor vragen kunt u contact opnemen met Jos van der Wijst.

Jos van der Wijst