Hier wil ik het Artificieel Leerintelligentiesysteem (ALIS) organiseren door de concepten en principes te behandelen, tot aan het basisontwerp en de ontwikkelmethoden.
Concept
Huidige generatieve AI, voornamelijk grote taalmodellen, wordt getraind op basis van supervised learning met behulp van neurale netwerken.
Wij positioneren dit neurale netwerk trainingsproces als aangeboren leren.
ALIS is een systeem dat uitgebreide inferentie mogelijk maakt door zowel aangeboren als verworven leerprocessen te integreren, door een verworven leerproces op te nemen dat gescheiden is van aangeboren leren.
Bij dit verworven leren wordt aangeleerde kennis extern aan het neurale netwerk opgeslagen en gebruikt tijdens de inferentie.
Daarom ligt de technische kern van ALIS in de extractie, opslag van herbruikbare kennis, en de selectie en benutting van kennis tijdens de inferentie.
Bovendien is ALIS niet slechts één elementaire technologie, maar ook een systeemtechnologie die aangeboren en verworven leren combineert.
Elementen van een Leerintelligentiesysteem
ALIS behandelt zowel bestaand aangeboren leren als toekomstig verworven leren als opererend onder dezelfde principes binnen het kader van leren en inferentie.
Om de principes van leren in ALIS uit te leggen, definiëren we vijf elementen van een leerintelligentiesysteem:
Het eerste is de Intelligente Processor. Dit verwijst naar een verwerkingssysteem dat inferentie uitvoert met behulp van kennis en kennis extraheert voor leren.
Representatieve voorbeelden van intelligente processors zijn LLM's en delen van het menselijk brein.
Het tweede is de Kennisopslag (Knowledge Store). Dit verwijst naar een opslaglocatie waar geëxtraheerde kennis wordt bewaard en indien nodig kan worden opgehaald.
In LLM's zijn de parameters van het neurale netwerk de kennisopslag. Bij mensen komt dit overeen met het langetermijngeheugen in de hersenen.
Het derde is de Wereld. Dit verwijst naar de externe omgeving zoals waargenomen door leerintelligentiesystemen zoals mensen of ALIS.
Voor mensen is de wereld de realiteit zelf. In het geval van LLM's wordt het mechanisme dat output van de LLM ontvangt en hier feedback aan geeft, beschouwd als het equivalent van de wereld.
Het vierde is het Staatgeheugen (State Memory). Dit verwijst naar een intern tijdelijk geheugen, zoals een kladblok, dat een leerintelligentiesysteem gebruikt tijdens inferentie.
In LLM's is dit de geheugenruimte die tijdens inferentie wordt gebruikt, bekend als verborgen toestanden. Bij mensen komt dit overeen met het kortetermijngeheugen.
Het vijfde is het Raamwerk (Framework). Dit is het zogenaamde denkkader. In de terminologie van een leerintelligentiesysteem verwijst het naar de criteria voor het selecteren van noodzakelijke kennis tijdens inferentie en de logische structuur van de toestandsruimte voor het organiseren van het staatsgeheugen.
In LLM's is het de semantische structuur van verborgen toestanden, en over het algemeen is de inhoud ervan vaag en onbegrijpelijk voor mensen. Bovendien is kennisselectie geïntegreerd in het aandachtsmechanisme, dat selecteert naar welke bestaande tokens moet worden verwezen voor elk verwerkt token.
Voor mensen is het, zoals hierboven vermeld, het denkkader. Bij het denken met behulp van een specifiek denkkader, worden bepaalde sets knowhow uit het langetermijngeheugen opgeroepen en in het kortetermijngeheugen geladen. Vervolgens wordt de momenteel waargenomen informatie georganiseerd volgens het denkkader om de situatie te begrijpen.
Principes van een Leerintelligentiesysteem
Een leerintelligentiesysteem werkt als volgt:
De intelligente processor werkt in op de wereld. De wereld reageert met resultaten op basis van die actie.
De intelligente processor extraheert herbruikbare kennis uit deze resultaten en slaat deze op in de kennisopslag.
Wanneer de intelligente processor herhaaldelijk op de wereld inwerkt, selecteert deze kennis uit de kennisopslag en gebruikt deze om de wijze van handelen aan te passen.
Dit is het basismechanisme.
Fundamenteel bepalen de methoden voor kennisextractie, -opslag, -selectie en -benutting echter of het systeem zinvol kan leren.
Mensen beschikken over mechanismen die effectieve kennisextractie, -opslag, -selectie en -benutting mogelijk maken, waardoor ze kunnen leren.
Neurale netwerken, inclusief LLM's, hebben mechanismen voor opslag, selectie en benutting, hoewel het extractiegedeelte wordt afgehandeld door een externe leraar. Hierdoor kunnen ze leren zolang een leraar de input levert.
Bovendien kan een leerintelligentiesysteem complexer leren door ook de extractie, opslag en selectie van kaders, en het gebruik ervan in het staatsgeheugen, als kennis te leren.
Soorten Kennis
Op basis van dit principe is het bij het ontwerpen van aangeleerd leren noodzakelijk om te verhelderen welke vorm van informatie aangeleerde kennis zal aannemen.
Het is denkbaar om aangeleerde kennis afzonderlijk te leren als parameters van een neuraal netwerk.
Aangeleerde kennis hoeft echter niet uitsluitend beperkt te blijven tot neurale netwerkparameters. Een realistische kandidaat is kennis die in natuurlijke taal is getextualiseerd.
Als kennis in natuurlijke taal is getextualiseerd, kan deze worden geëxtraheerd en benut door gebruik te maken van de natuurlijke taalverwerkingsmogelijkheden van LLM's. Bovendien kan het worden behandeld als gegevens in een regulier IT-systeem, wat opslag en selectie eenvoudig maakt.
Bovendien is kennis die in natuurlijke taal is getextualiseerd gemakkelijk voor mensen en andere LLM's om te controleren, te begrijpen en, in sommige gevallen, te bewerken.
Het kan ook worden gedeeld met andere leerintelligentiesystemen, en samengevoegd of gesplitst.
Om deze redenen zal de aangeleerde kennis in het ALIS-concept in eerste instantie worden ontworpen om zich te richten op kennis die in natuurlijke taal is getextualiseerd.
Verworven statusgeheugen en raamwerk
Ik heb de voordelen uitgelegd van het kiezen van natuurlijke taal getextualiseerde kennis als verworven kennis.
Op dezelfde manier kan natuurlijke taaltekst ook worden gebruikt voor het statusgeheugen en het raamwerk voor inferentie.
Het raamwerk, dat een conceptuele structuur is, kan ook in de kennisopslag worden opgeslagen en gebruikt als in natuurlijke taal getextualiseerde kennis.
Bij het initialiseren of bijwerken van staten op basis van de structuur die door dat raamwerk is gedefinieerd, kan tekstgebaseerd statusgeheugen worden gebruikt.
Door ALIS zo te ontwerpen dat het tekstformaat niet alleen wordt gebruikt voor verworven kennis, maar ook voor raamwerken en statusgeheugen, kan ALIS de natuurlijke taalverwerkingsmogelijkheden van LLM's benutten voor zowel verworven leren als algemene inferentie.
Formele Kennis
Verworven kennis, raamwerken en staatsgeheugen kunnen niet alleen worden weergegeven door natuurlijke taaltekst, maar ook door rigoureuzere formele talen of formele modellen.
Hoewel ik "selecteren" schreef, is het doel van ALIS om meerdere mechanismen voor het leren van verworven kennis te integreren, om zo een hybride benutting van aangeboren en verworven leren mogelijk te maken.
Kennis die wordt weergegeven door formele talen of formele modellen kan rigoureuzer zijn en vrij van ambiguïteit.
Bovendien, als een raamwerk wordt uitgedrukt met behulp van een formele taal of een formeel model, en een initiële toestand wordt uitgebreid in het staatsgeheugen, dan kan een formeel model worden verwerkt door een intelligente processor (geen LLM) om rigoureuze simulaties en logisch redeneren uit te voeren.
Een uitstekend voorbeeld van dergelijke formele talen en formele modellen zijn programmeertalen.
Naarmate het systeem over de wereld leert, als het de onderliggende wetten en concepten als programma's binnen een raamwerk kan uitdrukken, kunnen deze vervolgens door een computer worden gesimuleerd.
Column 1: Soorten Kennis
Naarmate we de kennis binnen een leerintelligentiesysteem organiseren, wordt duidelijk dat deze grofweg kan worden onderverdeeld in drie systemen en twee typen.
De drie systemen zijn: netwerkparameterkennis die door neurale netwerken wordt verwerkt, natuurlijke kennis in natuurlijke taal, en formele kennis in formele talen.
De twee typen zijn stateless en stateful.
Stateless netwerkparameterkennis is intuïtieve kennis, zoals die wordt gevonden in deep learning AI. De kenmerken van katten en honden, die niet verbaal kunnen worden bedacht of geïdentificeerd, kunnen worden geleerd als stateless netwerkparameterkennis.
Stateful netwerkparameterkennis is vage, iteratieve proces-afgeleide kennis, zoals die wordt gevonden in generatieve AI.
Stateless natuurlijke kennis is kennis zoals de betekenis die geassocieerd wordt met een woord.
Stateful natuurlijke kennis is kennis inclusief de context die binnen een zin wordt gevonden.
Sommige natuurlijke kennis is inherent opgenomen in stateful netwerkparameterkennis, maar er is ook kennis die postnataal kan worden verworven uit natuurlijke taaltekst.
Stateless formele kennis is kennis die kan worden uitgedrukt door wiskundige formules die geen iteratie bevatten. Stateful formele kennis is kennis die kan worden uitgedrukt door programma's.
Het kortetermijngeheugen van iemands eigen brein kan ook worden gebruikt als een staatsgeheugen voor natuurlijke en formele kennis.
Omdat het echter kortetermijngeheugen is, is het moeilijk om een staat stabiel te handhaven. Ook is het niet goed in het vasthouden van kennis in een geformaliseerde, ondubbelzinnige staat.
Aan de andere kant kunnen papier, computers of smartphones worden gebruikt als staatsgeheugen voor het opschrijven en bewerken van natuurlijke taaltekst, formele talen of formele modellen.
Over het algemeen worden gegevens op papier of computers vaak gezien als iets voor het opslaan van kennis als kennisopslag, maar het kan ook worden gebruikt als staatsgeheugen voor het organiseren van gedachten.
Zo is het duidelijk dat mensen intellectuele activiteiten uitvoeren door deze drie systemen en twee soorten kennis vakkundig te benutten.
ALIS heeft ook het potentieel om zijn capaciteiten dramatisch te verbeteren door intellectuele activiteiten mogelijk te maken en te verbeteren die dezelfde drie systemen en twee soorten kennis benutten.
In het bijzonder heeft ALIS de kracht om enorme kennisopslagplaatsen en staatsgeheugen te gebruiken. Bovendien kan het gemakkelijk meerdere instanties van elk voorbereiden en intellectuele taken uitvoeren door ze te schakelen of te combineren.
Column 2: Intellectuele Orchestratie
Hoewel het een kracht is om een grote hoeveelheid kennis in de kennisopslag te kunnen opslaan, is een grote hoeveelheid kennis op zich niet noodzakelijkerwijs voordelig voor intellectuele activiteit, vanwege de beperkingen op het aantal tokens dat een generatieve AI tegelijk kan gebruiken en de beperking dat irrelevante kennis ruis wordt.
Aan de andere kant kunnen de problemen van tokenlimieten en ruis worden verminderd door de kennisopslag passend te segmenteren en gespecialiseerde kennisopslagplaatsen met hoge dichtheid te creëren die kennis verzamelen die nodig is voor specifieke intellectuele taken.
In ruil daarvoor zouden dergelijke gespecialiseerde kennisopslagplaatsen alleen bruikbaar zijn voor die specifieke intellectuele taken.
Veel intellectuele activiteiten zijn complexe combinaties van verschillende intellectuele taken. Door kennis op te splitsen in gespecialiseerde kennisopslagplaatsen op basis van het type intellectuele taak en intellectuele activiteit onder te verdelen in intellectuele taken, kan ALIS de gehele intellectuele activiteit uitvoeren terwijl het op gepaste wijze schakelt tussen gespecialiseerde kennisopslagplaatsen.
Dit is vergelijkbaar met een orkest bestaande uit professionele musici die verschillende instrumenten bespelen en een dirigent die het geheel leidt.
Door middel van deze systeemtechnologie, "intellectuele orchestratie", zal ALIS in staat zijn zijn intellectuele activiteiten te organiseren.
ALIS Basisontwerp en Ontwikkelingsmethode
Vanaf hier zal ik de ontwikkelingsaanpak voor ALIS organiseren.
Zoals reeds vermeld in de principes en columns, is ALIS inherent ontworpen om zijn functies en middelen gemakkelijk uit te breiden. Dit komt omdat de essentie van ALIS niet in specifieke functies ligt, maar in de processen van kennisextractie, -opslag, -selectie en -benutting.
Zo kunnen bijvoorbeeld meerdere typen kennisextractiemechanismen worden voorbereid, en vervolgens worden geselecteerd of tegelijkertijd worden gebruikt, afhankelijk van het systeemontwerp.
Bovendien kan ALIS deze selectie zelf uitvoeren.
Opslag, selectie en benutting kunnen op vergelijkbare wijze vrij worden geselecteerd of geparallelliseerd.
Daarom kan ALIS incrementeel en agile worden ontwikkeld, zonder de noodzaak om de gehele functionaliteit op een watervalmanier te ontwerpen.
Het begin van ALIS
Laten we nu een zeer eenvoudig ALIS ontwerpen.
De basisgebruikersinterface zal de bekende chat-AI zijn. In eerste instantie wordt de gebruikersinvoer direct aan de LLM doorgegeven. De reactie van de LLM wordt vervolgens op de gebruikersinterface weergegeven en het systeem wacht op de volgende gebruikersinvoer.
Wanneer de volgende invoer arriveert, ontvangt de LLM niet alleen de nieuwe invoer, maar ook de volledige chatgeschiedenis tussen de gebruiker en de LLM tot dat moment.
Achter deze chat-AI-gebruikersinterface bereiden we een mechanisme voor om herbruikbare kennis uit de chatgeschiedenis te extraheren.
Dit kan aan het chat-AI-systeem worden toegevoegd als een proces dat wordt uitgevoerd wanneer een gesprek eindigt of met regelmatige tussenpozen. Natuurlijk wordt een LLM gebruikt voor kennisextractie.
Deze LLM krijgt het ALIS-concept en de principes, samen met knowhow voor kennisextractie, als systeemprompts. Als kennis niet zoals bedoeld wordt geëxtraheerd, moeten de systeemprompts door vallen en opstaan worden verfijnd.
De kennis die uit de chatgeschiedenis is geëxtraheerd, wordt direct opgeslagen in een kennismeer (knowledge lake). Een kennismeer is een mechanisme voor het eenvoudig opslaan van kennis in een platte, ongestructureerde staat voordat deze wordt gestructureerd.
Vervolgens zullen we een structureringsmechanisme voorbereiden om het gemakkelijker te maken om kennis uit het kennismeer te selecteren.
Dit betekent het leveren van embedding-vectoropslag voor semantisch zoeken, zoals typisch gebruikt in RAG, en trefwoordindexen, onder andere.
Meer geavanceerde opties zijn onder andere het genereren van een kennisgraaf of het uitvoeren van categorisatie.
Deze verzameling gestructureerde informatie voor het kennismeer zal een kennisbasis worden genoemd. Deze hele kennisbasis en het kennismeer zullen de kennisopslag vormen.
Vervolgens integreren we de kennisopslag in de chat-UI-verwerking.
Dit is in principe hetzelfde als een algemeen RAG-mechanisme. Voor gebruikersinvoer wordt relevante kennis uit de kennisopslag geselecteerd en samen met de gebruikersinvoer aan de LLM doorgegeven.
Dit stelt de LLM in staat om automatisch kennis te gebruiken bij het verwerken van gebruikersinvoer.
Op deze manier zal kennis zich ophopen bij elk gesprek met de gebruiker, waardoor een eenvoudig ALIS wordt gerealiseerd dat kennis gebruikt die is geaccumuleerd uit eerdere gesprekken.
Eenvoudig Scenario
Stel je bijvoorbeeld voor dat een gebruiker een webapplicatie ontwikkelt met behulp van dit eenvoudige ALIS.
De gebruiker meldt dat de door de LLM voorgestelde code resulteerde in een fout. Nadat de gebruiker en de LLM samenwerken om problemen op te lossen, ontdekken ze dat de externe API-specificatie die de LLM kende verouderd was, en het programma werkt correct nadat het is aangepast aan de nieuwste API-specificatie.
Uit deze chatthread zou ALIS dan kennis kunnen opslaan in zijn kennisopslag: specifiek, dat de API-specificatie die de LLM kent oud is, en wat de nieuwste API-specificatie is.
Vervolgens, de volgende keer dat een programma met dezelfde API wordt gemaakt, zou ALIS deze kennis kunnen benutten om vanaf het begin een programma te genereren op basis van de nieuwste API-specificatie.
Verbeteringen aan het Initiële ALIS
Om dit te laten gebeuren, moet deze kennis echter worden geselecteerd als reactie op de gebruikersinvoer. Het is mogelijk dat deze kennis niet direct gekoppeld is aan de invoer van de gebruiker, aangezien de problematische API-naam mogelijk niet in de gebruikersinvoer voorkomt.
In dat geval zou de API-naam pas tijdens de reactie van de LLM naar voren komen.
Daarom zullen we het eenvoudige ALIS enigszins uitbreiden door mechanismen voor pre-analyse en post-controle toe te voegen.
Pre-analyse is vergelijkbaar met de "denkmodus" in recente LLM's. Een geheugen dat tekst kan vasthouden als toestandsgeheugen zal worden voorbereid, en de systeemprompt zal de LLM instrueren om pre-analyse uit te voeren bij ontvangst van gebruikersinvoer.
Het pre-analyseresultaat van de LLM zal worden opgeslagen in het toestandsgeheugen. Op basis van dit pre-analyseresultaat zal kennis worden geselecteerd uit de kennisopslag.
Vervolgens zullen de chatgeschiedenis, het pre-analyseresultaat, kennis die overeenkomt met de gebruikersinvoer, en kennis die overeenkomt met het pre-analyseresultaat worden doorgegeven aan de LLM om een reactie te ontvangen.
Bovendien zal het door de LLM geretourneerde resultaat ook worden gebruikt om naar kennis te zoeken in de kennisopslag. Inclusief de daar gevonden kennis zal de LLM worden gevraagd een post-controle uit te voeren.
Als er problemen worden gevonden, zullen de problematische punten en de redenen voor de opmerkingen worden opgenomen en teruggestuurd naar de chat-LLM.
Door mogelijkheden te bieden om kennis te selecteren tijdens pre-analyse en post-controle, kunnen we de kansen vergroten om geaccumuleerde kennis te benutten.
Vooruitblik
Deze benadering van het bouwen van een initiële ALIS en vervolgens het toevoegen van verbeteringen om de zwakke punten aan te pakken, illustreert perfect de agile ontwikkeling en de incrementele verbetering van ALIS.
Bovendien is, zoals aangegeven, de initiële ALIS het meest geschikt voor gebruik in softwareontwikkeling. Dit komt omdat het een veelgevraagd vakgebied is en ook een gebied waar kennis duidelijk en gemakkelijk kan worden geaccumuleerd.
Het is een genre waarin dingen duidelijk zwart-wit zijn, maar het is ook een cruciaal gebied waar trial-and-error, iteratieve kennisaccumulatie noodzakelijk en belangrijk is.
Daarnaast, aangezien de ontwikkeling van ALIS zelf softwareontwikkeling is, is het feit dat ALIS-ontwikkelaars zelf ALIS-gebruikers kunnen zijn ook aantrekkelijk.
En, samen met het ALIS-systeem, kan het kennismeer ook openbaar worden gedeeld op platforms zoals GitHub.
Dit zou veel mensen in staat stellen om samen te werken aan ALIS-systeemverbeteringen en kennisaccumulatie, waarbij iedereen profiteert van de resultaten, wat de ontwikkeling van ALIS verder versnelt.
Natuurlijk is kennisdeling niet beperkt tot ALIS-ontwikkelaars, maar kan het worden verzameld van alle softwareontwikkelaars die ALIS gebruiken.
Het feit dat kennis in natuurlijke taal is, biedt nog twee voordelen:
Het eerste voordeel is dat kennis kan worden benut, zelfs wanneer het LLM-model verandert of wordt bijgewerkt.
Het tweede voordeel is dat het enorme geaccumuleerde kennismeer kan worden gebruikt als een pre-training dataset voor LLM's. Dit kan op twee manieren: door het te gebruiken voor fine-tuning, of door het te gebruiken voor de LLM pre-training zelf.
In elk geval, als LLM's die de kennis die in het kennismeer is geaccumuleerd van nature hebben geleerd, kunnen worden benut, zal softwareontwikkeling nog efficiënter worden.
Bovendien zijn er binnen softwareontwikkeling verschillende processen zoals eisenanalyse, ontwerp, implementatie, testen, operatie en onderhoud, en bestaat er gespecialiseerde kennis voor elk softwaredomein en platform. Als een mechanisme wordt gecreëerd om de enorme geaccumuleerde kennis vanuit deze perspectieven te segmenteren, kan ook een ALIS-orkest worden gevormd.
Aldus zijn de elementaire technologieën voor ALIS aanwezig. De sleutel is nu om praktisch verschillende methoden uit te proberen – zoals knowhow voor kennisextractie, geschikte kennisselectie, gespecialiseerde kennissegmentatie en hoe staatsgeheugen te gebruiken – om effectieve benaderingen te ontdekken. Ook, naarmate de complexiteit toeneemt, zullen de verwerkingstijd en de gebruikskosten van LLM stijgen, wat optimalisatie noodzakelijk maakt.
Deze processen van vallen en opstaan en optimalisatie kunnen adaptief worden nagestreefd door de ontwikkeling en verbetering van raamwerken.
In eerste instantie zullen de ontwikkelaars, als gebruikers, waarschijnlijk door vallen en opstaan raamwerken in ALIS opnemen. Zelfs dan kan de LLM zelf echter worden gemaakt om raamwerkideeën te genereren.
En door raamwerken in ALIS op te nemen die raamwerken verbeteren of ontdekken op basis van de resultaten die van de wereld worden ontvangen en geëxtraheerde kennis, zal ALIS zelf adaptief vallen en opstaan en optimalisatie uitvoeren.
ALIS in de Echte Wereld
Zodra ALIS tot dit stadium is verfijnd, zou het in staat moeten zijn om kennis te leren, niet alleen in de wereld van softwareontwikkeling, maar breed over verschillende domeinen.
Vergelijkbaar met softwareontwikkeling, wordt verwacht dat ALIS zijn reikwijdte zal uitbreiden naar diverse intellectuele activiteiten die mensen uitvoeren met behulp van computers.
Zelfs bij dergelijke puur intellectuele activiteiten bezit ALIS een soort van belichaamde AI-aard met betrekking tot de doelwereld.
Dit komt omdat het de grens tussen zichzelf en de wereld herkent, via die grens op de wereld inwerkt en informatie kan waarnemen die van de wereld wordt ontvangen.
Wat we doorgaans een "lichaam" noemen, is een fysiek zichtbare en op één plaats gelokaliseerde grens met de wereld.
Echter, zelfs als de grens onzichtbaar en ruimtelijk verspreid is, is de structuur van waarneming en actie via een grens hetzelfde als het hebben van een fysiek lichaam.
In die zin kan ALIS, bij het uitvoeren van intellectuele activiteiten, worden beschouwd als het bezitten van de aard van een virtueel belichaamde AI.
En zodra ALIS is verfijnd tot een stadium waarin het zelfs in nieuwe, onbekende werelden adequaat kan leren, bestaat de mogelijkheid dat ALIS kan worden geïntegreerd als onderdeel van een echt belichaamde AI die een fysiek lichaam bezit.
Op deze manier zal ALIS uiteindelijk worden toegepast op de echte wereld en ervan beginnen te leren.