Selecteer een pagina

Ai-architecturen

Hoewel het trainen van data belangrijk is voor de uiteindelijke functionaliteit van een AI-model, is het niet de enige overweging. Om die data uiteindelijk bruikbaar te maken, is een geschikte architectuur cruciaal. Beschouw de architectuur als een skelet, een verzameling botten die met spieren met elkaar verbonden moeten worden.

Er zijn vele soorten architecturen die voor verschillende doeleinden kunnen worden gebruikt. Sommige AI-modellen zijn beperkt, bekend als kunstmatige smalle intelligentie (ANI) en zijn geoptimaliseerd voor één heel specifiek doel, zoals schaak-AI’s, terwijl andere kunstmatige algemene intelligentie (AGI) worden genoemd en proberen het menselijk begrip op alle gebieden na te bootsen. AGI is nog niet bereikt en er zijn veel discussies over definities en bewustzijn.

Grote taalmodellen (LLM’s) zoals ChatGPT zijn een poging om AGI te creëren en zijn aanzienlijk geavanceerder dan de technologie een paar jaar geleden was. Dat gezegd hebbende, zijn er voor beide categorieën veel verschillende architecturen, elk met hun eigen superkrachten, beperkingen en specifieke use cases waarvoor deze afwegingen zinvol zijn. Om een basisbegrip te geven van wat mogelijk is, bespreken we er slechts twee: genetische algoritmen en neurale netwerken.

Genetische algoritmen (GA’s) zijn een type AI-architectuur, net iets anders dan wat u waarschijnlijk gewend bent in de mainstream. Om ons begrip van verschillende soorten AI te verbreden, zullen we kijken waar ze voor nuttig zijn en hoe ze werken. Dit is een zeer gespecialiseerd type architectuur dat niet breed bruikbaar is voor veel verschillende soorten taken, maar zeer efficiënt is voor specifieke problemen.

GA’s worden meestal gebruikt bij optimalisatieproblemen waarbij er meer variabelen zijn dan er met brute force-force kunnen worden uitgevoerd. Het is een elegante, lichtgewicht oplossing voor het testen van mogelijke oplossingen voor strikt gedefinieerde problemen. Dit klinkt misschien allemaal wat abstract, dus laten we het meest populaire voorbeeld eens bekijken: het handelsreizigersprobleem.

Diagram van een mogelijk scenario

In de bovenstaande tekening ziet u 7 knooppunten. Het handelsreizigersprobleem verwacht een oplossing waarbij elk knooppunt of elke stad precies één keer wordt bezocht, en het doel is om het kortste pad te vinden. Voor de eenvoud zijn er in dit voorbeeld geen afstanden tussen de knooppunten. Een mogelijke oplossing is ABCDEFG. Een andere oplossing is ABCDEGF. Hoewel er andere manieren zijn om dit op te lossen, presteren GA’s erg goed in dergelijke problemen.

Hoe werken ze? In dit voorbeeld is elke oplossing 7 letters lang en bevat elke letter precies één keer. Zie dit als het DNA waarop de genetica is gebaseerd; de locatie van elke letter is een kenmerk van de oplossing. Elke oplossing is een lid van de populatie.

Aanvankelijk wordt een willekeurige populatie gegenereerd met allerlei soorten oplossingen, waarvan sommige inefficiënt en andere sneller zijn. Een fitnessfunctie is een rangschikkingssysteem dat wordt gebruikt om de kwaliteit van oplossingen te vergelijken. In dit voorbeeld is de fitnessfunctie gewoon de afstand van het pad, waarbij een lagere afstand beter is. Dit betekent dat oplossingen met een lagere totale afstand beter gerangschikt zullen worden en gebruikt zullen worden voor de volgende generatie. Met 3 knooppunten, als de oplossing ABC is, is de afstand AB + AC, waarbij AB de afstand van A naar B is.

Zodra de populatie is gegenereerd, moet deze worden gesorteerd op basis van de fitnessfunctie. Vervolgens kan de volgende generatie worden geproduceerd uit de ouders van de huidige generatie. Hoewel oplossingen met een hogere rangorde zich waarschijnlijker reproduceren, is er enige willekeur om voortijdige convergentie en lokale maxima te voorkomen. Dit onderwerp is te genuanceerd om er binnen het bereik van deze module dieper op in te gaan, maar er zijn extra bronnen beschikbaar voor nieuwsgierige cursisten.

Voortplanting gebeurt door de twee ouders te combineren om zo de nakomelingen te variëren. Hoewel er veel verschillende manieren zijn om genetica te combineren, is het algemene idee dat de nieuwe populatie gemiddeld beter is, omdat de minst effectieve oplossingen uit elke generatie worden verwijderd. Door het algoritme meerdere generaties lang te laten draaien, kun je de beste oplossingen bijhouden totdat er één goed genoeg is voor het doel, omdat er nooit een garantie is dat het de best mogelijke oplossing is.

Neurale netwerken (NN’s) vormen de hoeksteen van moderne AI. Het concept is dat ze nabootsen hoe menselijke hersenen werken met neuronen (hersencellen) en de verbindingen daartussen. In de context van AI wordt elk neuron een knooppunt genoemd en is de computerrepresentatie ervan een functie voor dataverwerking. Een eenvoudig geval is wanneer het knooppunt een waarde tussen 1 en 0 heeft en de invoer met die waarde wordt vermenigvuldigd; dit is een functie. De verbindingen hebben vaak ook waarden die gewichten worden genoemd en die de invloed van het ene knooppunt op het volgende weergeven.

Er bestaan talloze verschillende structuren voor neurale netwerken, waaronder de transformerarchitectuur – hierop zijn de meeste LLM’s zoals ChatGPT gebaseerd. In dit hoofdstuk bespreken we het algemene idee van een neuraal netwerk in plaats van de details die geavanceerdere architecturen vormen.

Om inzicht te krijgen in de werking van NN’s, gebruiken we een visueel voorbeeld van een AI voor beeldherkenning.

In dit voorbeeld zijn de knooppunten de cirkels en de pijlen de verbindingen. De gewichten van de verbindingen en de knooppunten hebben beide invloed op de resultaten. We zullen in hoofdstuk 4 – AI trainen – begrijpen waar deze waarden vandaan komen.

Stel je nu een raster als dit voor over een afbeelding. In plaats van deze vierkanten is elke pixel echter een blauwe invoercirkel in het NN. Deze invoer wordt vervolgens verwerkt door het netwerk, waarbij elke verbinding patronen tussen de aangrenzende pixels analyseert. Wanneer de invoer door voldoende verborgen lagen gaat, is het in staat om structuren te identificeren op basis van de invoerpixels. Het zou dan kunnen beschrijven wat deze structuren zijn.

De mogelijkheden zijn afhankelijk van de grootte van het neurale netwerk, aangezien het slechts zoveel inputs kan verwerken als er knooppunten zijn. Zie het als een puzzel: als elk knooppunt je kon vertellen waar een onderdeel hoort, zou je evenveel knooppunten nodig hebben als er onderdelen zijn. Dit is echter een te simplistische voorstelling van zaken en in werkelijkheid is het gunstig om meer knooppunten te hebben voor nauwkeurigheid en nuance. Hoewel we in het vorige hoofdstuk hebben geleerd dat trainingsdata belangrijk is, is de grootte van het neurale netwerk ook een knelpunt voor de prestaties. Als je één knooppunt had, ongeacht hoeveel data je eraan hebt toegevoegd en hoe goed je data is, zou je slechts één waarde bijwerken en uiteindelijk zou je AI niet nuttig zijn.

Met de inzichten uit dit hoofdstuk zou het duidelijk moeten zijn dat de architectuur van een AI-model direct van invloed is op wat het kan. Neurale netwerken zijn veelzijdiger omdat de invoergegevens flexibel kunnen zijn als de grootte van de hersenen (het aantal parameters) voldoende is. Genetische algoritmen zijn per geval specifiek vanwege de gedwongen invoer en uitvoer, maar hebben zeker hun sterke punten wanneer ze in de juiste context worden gebruikt. Er zijn veel meer architecturen te verkennen, sommige zeer geavanceerd en andere meer basaal. Over het algemeen zijn basismodellen sneller te gebruiken en hebben ze de voorkeur voor goed gedefinieerde verwachtingen. Geavanceerde modellen zijn duur om te trainen en vereisen state-of-the-art hardware, maar leveren verbluffende resultaten op als ze effectief worden ontworpen. Zorg er altijd voor dat u analyseert welke architectuur geschikt is, aangezien dit de resultaten zal bepalen. Stockfish is een goede schaak-AI, beter dan welke mens dan ook in de geschiedenis, terwijl ChatGPT nog steeds illegale zetten maakt tijdens partijen. Beide zijn AI, maar ze worden met verschillende intenties getraind.