In questa sezione, desidero organizzare il Sistema di Intelligenza Artificiale di Apprendimento (ALIS), approfondendo il suo concetto, i principi, la progettazione di base e la metodologia di sviluppo.
Concetto
L'attuale IA generativa, basata principalmente su modelli linguistici di grandi dimensioni, è addestrata tramite apprendimento supervisionato basato su reti neurali.
Come processo di apprendimento, definiamo questo apprendimento delle reti neurali come apprendimento innato.
ALIS integra un processo di apprendimento acquisito, distinto dall'apprendimento innato, per consentire un'inferenza che combina entrambi i processi di apprendimento.
In questo apprendimento acquisito, la conoscenza appresa viene accumulata esternamente alla rete neurale e utilizzata durante l'inferenza.
Pertanto, il nucleo tecnico di ALIS risiede nell'estrazione, nell'archiviazione e nella selezione e utilizzo della conoscenza riutilizzabile durante l'inferenza.
Inoltre, ALIS non è semplicemente una singola tecnologia elementare, ma una tecnologia di sistema che combina l'apprendimento innato e l'apprendimento acquisito.
Elementi di un Sistema di Intelligenza di Apprendimento
ALIS opera secondo il principio che sia l'apprendimento innato esistente sia l'apprendimento acquisito futuro seguano lo stesso framework di apprendimento e inferenza.
Per spiegare i principi di apprendimento in ALIS, definiamo cinque elementi di un sistema di intelligenza di apprendimento.
Il primo è il processore intelligente. Questo si riferisce a un sistema di elaborazione che esegue l'inferenza usando la conoscenza ed estrae la conoscenza per l'apprendimento.
I Modelli Linguistici di Grande Scala (LLM) e parti del cervello umano sono esempi eccellenti di processori intelligenti.
Il secondo è l'archivio di conoscenza. Questo si riferisce a un luogo di archiviazione dove la conoscenza estratta può essere salvata e recuperata secondo necessità.
Negli LLM, l'archivio di conoscenza è costituito dai parametri della rete neurale. Negli esseri umani, corrisponde alla memoria a lungo termine nel cervello.
Il terzo è il mondo. Questo si riferisce all'ambiente esterno percepito da un sistema di intelligenza di apprendimento, come gli esseri umani o ALIS.
Per gli esseri umani, il mondo è la realtà stessa. Nel caso degli LLM, un meccanismo che riceve l'output dall'LLM e gli fornisce feedback può essere considerato equivalente al mondo.
Il quarto è la memoria di stato. Questo si riferisce a una componente interna temporanea simile a una memoria utilizzata da un sistema di intelligenza di apprendimento durante l'inferenza.
Negli LLM, questo è lo spazio di memoria utilizzato durante l'inferenza, noto come stati nascosti. Negli esseri umani, corrisponde alla memoria a breve termine.
Il quinto è il framework. Questa è, per così dire, una struttura di pensiero. Nella terminologia dei sistemi di intelligenza di apprendimento, si riferisce ai criteri per selezionare la conoscenza necessaria durante l'inferenza e a una struttura logica dello spazio degli stati per organizzare la memoria di stato.
Negli LLM, è la struttura semantica degli stati nascosti, e il suo contenuto è generalmente ambiguo e incomprensibile agli esseri umani. Inoltre, la selezione della conoscenza è incorporata nel meccanismo di attenzione, che seleziona a quali token esistenti fare riferimento per ogni token elaborato.
Negli esseri umani, come menzionato sopra, è una struttura di pensiero. Quando si pensa usando un framework specifico, un particolare insieme di know-how viene richiamato dalla memoria a lungo termine e caricato nella memoria a breve termine. Quindi, le informazioni attualmente percepite vengono organizzate secondo il framework di pensiero per comprendere la situazione.
Principi di un Sistema di Intelligenza di Apprendimento
Un sistema di intelligenza di apprendimento opera come segue:
Un processore intelligente agisce sul mondo. Il mondo, in risposta a questa azione, restituisce dei risultati.
Il processore intelligente estrae la conoscenza riutilizzabile da questi risultati e la memorizza nell'archivio di conoscenza.
Quando agisce sul mondo in modo iterativo, il processore intelligente seleziona la conoscenza dall'archivio di conoscenza e la utilizza per modificare le proprie azioni.
Questo è il meccanismo di base.
Tuttavia, fondamentalmente, i metodi di estrazione, archiviazione, selezione e utilizzo della conoscenza determinano se il sistema può realizzare un apprendimento significativo.
Gli esseri umani possiedono meccanismi che gestiscono efficacemente l'estrazione, l'archiviazione, la selezione e l'utilizzo di questa conoscenza, consentendo loro di apprendere.
Le reti neurali, inclusi gli LLM, hanno la loro estrazione gestita da insegnanti esterni, ma possiedono meccanismi per l'archiviazione, la selezione e l'utilizzo. Ciò consente loro di apprendere purché venga fornito un insegnante.
Inoltre, un sistema di intelligenza di apprendimento può anche apprendere l'estrazione, l'archiviazione e la selezione dei framework, e i loro metodi di utilizzo all'interno della memoria di stato, come conoscenza, consentendo così un apprendimento più complesso.
Tipi di Conoscenza
Sulla base di questi principi, nella progettazione dell'apprendimento acquisito, è necessario chiarire quale forma assumerà la conoscenza acquisita.
Si potrebbe considerare un metodo in cui la conoscenza acquisita venga appresa separatamente anche come parametri di rete neurale.
Tuttavia, la conoscenza acquisita non deve necessariamente essere limitata esclusivamente ai parametri della rete neurale. Un candidato pratico è la conoscenza testualizzata in linguaggio naturale.
La conoscenza testualizzata in linguaggio naturale può essere estratta e utilizzata sfruttando le capacità di elaborazione del linguaggio naturale degli LLM. Inoltre, poiché può essere gestita come dato nei sistemi IT standard, anche l'archiviazione e la selezione sono facili.
Inoltre, la conoscenza testualizzata in linguaggio naturale è facile da controllare, comprendere e, in alcuni casi, persino modificare da parte di esseri umani e altri LLM.
Può anche essere condivisa, unita o divisa con altri sistemi di intelligenza di apprendimento.
Per queste ragioni, la conoscenza acquisita nel concetto ALIS sarà inizialmente progettata per mirare alla conoscenza testualizzata in linguaggio naturale.
Memoria di Stato Acquisita e Framework
Abbiamo spiegato i vantaggi di scegliere il testo in linguaggio naturale come formato per la conoscenza acquisita.
Allo stesso modo, il testo in linguaggio naturale può essere utilizzato anche per la memoria di stato e per i framework di inferenza.
I framework, in quanto strutture concettuali, possono essere archiviati e utilizzati nell'archivio di conoscenza come conoscenza testualizzata in linguaggio naturale.
Anche quando si inizializzano o si aggiornano gli stati basandosi sulla struttura definita da un framework, è possibile utilizzare una memoria di stato in formato testo.
Progettando non solo la conoscenza acquisita, ma anche i framework e la memoria di stato in formato testo, ALIS può sfruttare le capacità di elaborazione del linguaggio naturale degli LLM per l'apprendimento acquisito e l'inferenza in generale.
Conoscenza Formale
La conoscenza acquisita, i framework e la memoria di stato possono essere espressi non solo in testo in linguaggio naturale, ma anche in linguaggi formali o modelli formali più rigorosi.
Anche se ho scritto "selezionare", l'obiettivo per ALIS è incorporare molteplici meccanismi distinti di apprendimento della conoscenza acquisita per consentire un uso ibrido dell'apprendimento innato e acquisito.
La conoscenza rappresentata da linguaggi formali o modelli formali può essere resa più precisa e univoca.
Inoltre, se un framework è espresso usando un linguaggio o un modello formale e uno stato iniziale è dispiegato nella memoria di stato, allora una simulazione o uno sviluppo logico possono essere eseguiti con un modello rigoroso da un processore intelligente capace di elaborare modelli formali, piuttosto che da un LLM.
Un esempio primario di tali linguaggi o modelli formali sono i linguaggi di programmazione.
Man mano che il sistema apprende sul mondo, se può esprimere le leggi e i concetti ivi trovati come un programma in un framework, allora può simularli su un computer.
Colonna 1: Tipi di Conoscenza
Organizzando la conoscenza all'interno di un sistema di intelligenza di apprendimento, diventa chiaro che essa può essere ampiamente categorizzata in tre tipi di sistemi di conoscenza e due tipi di stato.
I tre sistemi di conoscenza sono: conoscenza dei parametri di rete, gestita dalle reti neurali; conoscenza naturale, espressa in linguaggio naturale; e conoscenza formale, espressa in linguaggi formali.
I due tipi di stato sono stateless (senza stato) e stateful (con stato).
La conoscenza dei parametri di rete stateless è una conoscenza intuitiva, come quella che si trova nell'IA di deep learning. Le caratteristiche di cani e gatti, che non possono essere esplicitamente pensate o identificate verbalmente, possono essere apprese come conoscenza dei parametri di rete stateless.
La conoscenza dei parametri di rete stateful è una conoscenza che emerge attraverso processi iterativi e imprecisi, come nell'IA generativa.
La conoscenza naturale stateless è una conoscenza come i significati legati alle singole parole.
La conoscenza naturale stateful è una conoscenza che include il contesto all'interno delle frasi.
Alcune conoscenze naturali sono innate e incluse nella conoscenza dei parametri di rete stateful, ma c'è anche conoscenza che può essere acquisita dal testo in linguaggio naturale.
La conoscenza formale stateless è una conoscenza che può essere espressa in formule matematiche senza iterazione. La conoscenza formale stateful è una conoscenza che può essere espressa come un programma.
Si può anche usare la propria memoria a breve termine come memoria di stato per la conoscenza naturale e la conoscenza formale.
Tuttavia, essendo una memoria a breve termine, c'è il problema che è difficile mantenere uno stato in modo stabile. Inoltre, non è abile nel mantenere stati formalizzati e privi di ambiguità.
D'altra parte, carta, computer e smartphone possono essere usati come memoria di stato per annotare o modificare testo in linguaggio naturale, linguaggi formali o modelli formali.
Generalmente, i dati su carta o computer sono spesso percepiti come un archivio di conoscenza per memorizzare la conoscenza, ma possono anche essere usati come memoria di stato per organizzare i pensieri.
Così, è evidente che gli esseri umani svolgono attività intellettuali facendo pieno uso di questi tre sistemi di conoscenza e due tipi di stato.
Anche ALIS detiene il potenziale per migliorare drasticamente le sue capacità abilitando e rafforzando attività intellettuali che sfruttano questi stessi tre sistemi di conoscenza e due tipi di stato.
In particolare, ALIS ha la forza di poter utilizzare vasti archivi di conoscenza e memoria di stato. Inoltre, può facilmente svolgere compiti intellettuali preparandone molti e alternandoli o combinandoli.
Colonna 2: Orchestrazione Intelligente
Sebbene vi sia un vantaggio nell'essere in grado di accumulare una vasta quantità di conoscenza in un archivio di conoscenza, la quantità di conoscenza non si traduce semplicemente in un vantaggio nell'attività intellettuale a causa delle limitazioni sul numero di token che un'IA generativa può elaborare contemporaneamente e del rumore generato da conoscenza irrilevante.
Al contrario, dividendo appropriatamente l'archivio di conoscenza e trasformandolo in archivi di conoscenza specializzati ad alta densità, ciascuno contenente la conoscenza necessaria per un compito intellettuale specifico, i problemi dei limiti dei token e del rumore possono essere mitigati.
In cambio, ogni archivio di conoscenza specializzato diventa utilizzabile solo per il compito intellettuale designato.
Molte attività intellettuali sono composizioni complesse di vari compiti intellettuali. Pertanto, dividendo la conoscenza in archivi di conoscenza specializzati in base al tipo di compito intellettuale e suddividendo l'attività intellettuale in compiti individuali, ALIS può eseguire l'intera attività intellettuale passando appropriatamente tra questi archivi di conoscenza specializzati.
Questo è analogo a un'orchestra, composta da musicisti professionisti che suonano strumenti diversi e un direttore che guida l'insieme.
Attraverso questa tecnologia di sistema, l'orchestrazione intelligente, ALIS sarà in grado di organizzare le proprie attività intellettuali.
Progettazione di Base e Metodo di Sviluppo di ALIS
Da qui, organizzeremo lo sviluppo di ALIS.
Come già discusso nei principi e nelle colonne, ALIS è intrinsecamente progettato per una facile espansione di funzioni e risorse. Questo perché l'essenza di ALIS non risiede in funzioni specifiche, ma nei processi di estrazione, archiviazione, selezione e utilizzo della conoscenza.
Ad esempio, possono essere forniti più tipi di meccanismi di estrazione della conoscenza, e la progettazione del sistema consente la libera scelta di selezionarli o usarli contemporaneamente.
Inoltre, ALIS stesso può essere incaricato di eseguire questa selezione.
Analogamente, archiviazione, selezione e utilizzo possono anche essere liberamente scelti o parallelizzati.
Pertanto, ALIS può essere sviluppato in modo incrementale e agile, senza la necessità di progettare l'intera funzionalità in modalità a cascata.
L'Inizio di ALIS
Ora, progettiamo un ALIS molto semplice.
L'interfaccia utente di base sarà una familiare chat AI. Inizialmente, l'input dell'utente viene passato direttamente all'LLM. La risposta dell'LLM viene visualizzata sull'interfaccia utente e il sistema attende il successivo input dell'utente.
Al ricevimento del successivo input, all'LLM viene fornito non solo il nuovo input, ma anche l'intera cronologia della chat tra l'utente e l'LLM.
Dietro l'interfaccia utente di questa chat AI, è preparato un meccanismo per estrarre conoscenza riutilizzabile dalla cronologia della chat.
Questo meccanismo può essere aggiunto al sistema di chat AI come un processo che si esegue quando una conversazione termina o a intervalli regolari. Naturalmente, un LLM viene utilizzato per l'estrazione della conoscenza.
A questo LLM vengono forniti il concetto e i principi di ALIS, insieme al know-how per l'estrazione della conoscenza, come prompt di sistema. Se la conoscenza non viene estratta come previsto, il prompt di sistema dovrebbe essere migliorato tramite tentativi ed errori.
La conoscenza estratta dalla cronologia della chat viene archiviata direttamente in un knowledge lake. Un knowledge lake è semplicemente un meccanismo per archiviare la conoscenza in uno stato piatto prima che venga strutturata.
Successivamente, viene preparato un meccanismo di strutturazione per facilitare la selezione della conoscenza dal knowledge lake.
Ciò comporta la fornitura di un archivio vettoriale di embedding per la ricerca semantica, come utilizzato nei tipici RAG, e indici di parole chiave.
Altre possibilità includono la generazione di grafi della conoscenza più avanzati o l'esecuzione di una classificazione per categorie.
Questa raccolta di informazioni strutturate per il knowledge lake sarà chiamata base di conoscenza. L'intera base di conoscenza e il knowledge lake costituiranno l'archivio di conoscenza.
Successivamente, l'archivio di conoscenza viene integrato nell'elaborazione dell'interfaccia utente della chat.
Questo è fondamentalmente lo stesso di un meccanismo RAG generale. Per l'input dell'utente, la conoscenza pertinente viene selezionata dall'archivio di conoscenza e passata all'LLM insieme all'input dell'utente.
Ciò consente all'LLM di utilizzare automaticamente la conoscenza durante l'elaborazione dell'input dell'utente.
In questo modo, la conoscenza aumenta con ogni conversazione con l'utente, consentendo un semplice ALIS che utilizza la conoscenza accumulata dalle conversazioni passate.
Scenario Semplice
Ad esempio, immagina uno scenario in cui un utente sta sviluppando un'applicazione web utilizzando questo semplice ALIS.
L'utente segnalerebbe che il codice proposto dall'LLM ha generato un errore. Quindi, l'utente e l'LLM collaborerebbero per risolvere il problema. Diciamo che scoprono che la specifica dell'API esterna di cui l'LLM era a conoscenza era obsoleta, e che l'adattamento alla più recente specifica API ha risolto il problema.
In questo caso, la conoscenza che la specifica dell'API dell'LLM era vecchia e quale sia la più recente specifica API potrebbe essere accumulata nell'archivio di conoscenza da questa conversazione di chat.
Quindi, quando si creerà un programma che utilizza la stessa API la prossima volta, ALIS potrebbe sfruttare questa conoscenza per generare un programma basato sulla più recente specifica API fin dall'inizio.
Migliorare l'ALIS Iniziale
Tuttavia, affinché ciò avvenga, questa conoscenza deve essere selezionata in risposta all'input dell'utente. Potrebbe darsi che questa conoscenza non sia direttamente collegata all'input dell'utente, poiché il nome dell'API problematica è improbabile che appaia nell'input iniziale dell'utente.
In tal caso, il nome dell'API emergerebbe per la prima volta solo nella risposta dell'LLM.
Pertanto, estenderemo leggermente il semplice ALIS aggiungendo un meccanismo per i commenti di pre-verifica e i commenti di post-verifica.
I commenti di pre-verifica sono simili alla recente "modalità di pensiero" negli LLM. Prepariamo una memoria che può contenere testo come memoria di stato e istruiamo l'LLM tramite un prompt di sistema a eseguire commenti di pre-verifica al ricevimento dell'input dell'utente.
Il risultato del commento di pre-verifica dell'LLM viene quindi inserito nella memoria di stato e, basandosi su questo risultato, la conoscenza viene selezionata dall'archivio di conoscenza.
Quindi, la cronologia della chat, il risultato del commento di pre-verifica, la conoscenza corrispondente all'input dell'utente e la conoscenza corrispondente al risultato del commento di pre-verifica vengono passati all'LLM per riceverne l'output.
Inoltre, per il risultato restituito dall'LLM, la conoscenza viene cercata nell'archivio di conoscenza. Includendo qualsiasi conoscenza trovata lì, all'LLM viene quindi chiesto di eseguire una post-verifica.
Se vengono riscontrati problemi, questi vengono ripassati all'LLM della chat insieme ai punti problematici e ai motivi delle osservazioni (commenti/feedback).
Fornendo opportunità di selezionare la conoscenza durante i commenti di pre-verifica e i commenti di post-verifica, possiamo aumentare le possibilità di utilizzare la conoscenza accumulata.
Prospettive
Il processo di creazione dell'ALIS iniziale e l'aggiunta di miglioramenti per affrontare le sue debolezze è precisamente uno sviluppo agile, a dimostrazione che ALIS può essere potenziato in modo incrementale.
Inoltre, come esemplificato, l'ALIS iniziale è più adatto all'uso nello sviluppo software. Questo perché è un campo ad alta domanda e uno in cui la conoscenza può essere chiaramente accumulata.
È un dominio in cui i risultati sono inequivocabili, eppure necessita e beneficia significativamente da prove ed errori, e dall'accumulo iterativo di conoscenza.
Inoltre, poiché lo sviluppo di ALIS è esso stesso sviluppo software, il fatto che gli sviluppatori di ALIS possano essere anche utenti di ALIS è un aspetto attraente.
In più, insieme al sistema ALIS, il knowledge lake può essere condiviso apertamente su piattaforme come GitHub.
Ciò consentirebbe a molti individui di contribuire al miglioramento del sistema ALIS e all'accumulo di conoscenza, con tutti che godono dei benefici e accelerano ulteriormente lo sviluppo di ALIS in modo efficiente.
Naturalmente, la condivisione della conoscenza non è limitata agli sviluppatori di ALIS; può essere raccolta da tutti gli sviluppatori software che utilizzano ALIS.
La natura in linguaggio naturale della conoscenza offre due ulteriori vantaggi.
Il primo vantaggio è che la conoscenza può essere ancora utilizzata anche quando i modelli LLM cambiano o vengono aggiornati.
Il secondo vantaggio è che il vasto knowledge lake accumulato può essere utilizzato come dataset di pre-addestramento per gli LLM. Ci sono due modi per utilizzarlo: come fine-tuning, o per il pre-addestramento stesso dell'LLM.
In ogni caso, se un LLM che ha appreso in modo innato dalla conoscenza accumulata nel knowledge lake può essere utilizzato, lo sviluppo software diventerà ancora più efficiente.
Inoltre, lo sviluppo software comporta vari processi come analisi dei requisiti, progettazione, implementazione, test, funzionamento e manutenzione. Esiste anche una conoscenza specializzata per ogni dominio e piattaforma software. Creando un meccanismo per dividere la vasta quantità di conoscenza accumulata da queste prospettive, si può formare un'orchestra ALIS.
Pertanto, le tecnologie elementari per ALIS sono a posto. Il passo cruciale rimanente è sperimentare praticamente vari metodi — come il know-how per l'estrazione della conoscenza, la selezione appropriata della conoscenza, la segmentazione della conoscenza specializzata e l'utilizzo della memoria di stato — per scoprire approcci efficaci. Con l'aumentare della complessità, aumenteranno anche il tempo di elaborazione e i costi di utilizzo dell'LLM, rendendo necessaria l'ottimizzazione.
Questi processi di prova ed errore e le ottimizzazioni possono essere avanzati in modo orientato all'apprendimento attraverso lo sviluppo e il perfezionamento di framework.
Inizialmente, gli sviluppatori, in quanto utenti, probabilmente integreranno i framework in ALIS tramite prove ed errori. Tuttavia, anche in questo caso, l'LLM stesso può essere incaricato di generare idee per i framework.
Poi, incorporando in ALIS un framework per migliorare e scoprire framework, basato sui risultati ricevuti dal mondo e sulla conoscenza estratta, ALIS stesso eseguirà prove ed errori e ottimizzazioni in modo guidato dall'apprendimento.
ALIS nel Mondo Reale
Una volta che ALIS sarà stato raffinato a questo stadio, dovrebbe essere in grado di acquisire conoscenza in un'ampia varietà di domini, non limitati al solo mondo dello sviluppo software.
Similmente allo sviluppo software, ALIS si prevede che estenderà il suo campo di applicazione a varie attività intellettuali che gli esseri umani svolgono utilizzando i computer.
Anche in tali attività puramente intellettuali, ALIS possederà una qualità simile a quella di un'IA incarnata in relazione al suo mondo di riferimento.
Questo perché riconosce il confine tra sé stesso e il mondo, agisce sul mondo attraverso quel confine e può percepire le informazioni ricevute dal mondo.
Quando questo confine con il mondo è fisicamente visibile e localizzato in un unico luogo, ci riferiamo generalmente ad esso come un corpo.
Tuttavia, anche se il confine è invisibile e distribuito spazialmente, la struttura della percezione e dell'azione attraverso un confine rimane la stessa di quando si possiede un corpo fisico.
In questo senso, un ALIS che svolge attività intellettuali può essere considerato possedere virtualmente le caratteristiche di un'IA incarnata.
E, se ALIS sarà raffinato a uno stadio in cui potrà apprendere in modo appropriato anche in mondi nuovi e sconosciuti, esiste la possibilità che ALIS possa essere incorporato come parte di un'IA incarnata reale che possiede un corpo fisico effettivo.
In questo modo, ALIS verrà infine applicato al mondo reale e inizierà ad apprenderne.