In questo documento, intendo organizzare il Sistema di Intelligenza Artificiale per l'Apprendimento (ALIS) trattando i suoi concetti e principi, fino alla sua progettazione di base e ai metodi di sviluppo.
Concetto
L'attuale IA generativa, principalmente i modelli linguistici di grandi dimensioni, è addestrata basandosi sull'apprendimento supervisionato tramite reti neurali.
Posizioniamo questo processo di addestramento delle reti neurali come apprendimento innato.
ALIS è un sistema che consente un'inferenza completa integrando sia processi di apprendimento innato che acquisito, incorporando un processo di apprendimento acquisito separato dall'apprendimento innato.
In questo apprendimento acquisito, la conoscenza appresa viene memorizzata esternamente alla rete neurale e utilizzata durante l'inferenza.
Pertanto, il cuore tecnico di ALIS risiede nell'estrazione, nella memorizzazione della conoscenza riutilizzabile e nella selezione e utilizzo della conoscenza durante l'inferenza.
Inoltre, ALIS non è solo una singola tecnologia elementare, ma anche una tecnologia di sistema che combina apprendimento innato e acquisito.
Elementi di un Sistema di Intelligenza per l'Apprendimento
ALIS tratta sia l'apprendimento innato esistente sia il futuro apprendimento acquisito come operanti secondo gli stessi principi all'interno del quadro dell'apprendimento e dell'inferenza.
Per spiegare i principi dell'apprendimento in ALIS, definiamo cinque elementi di un sistema di intelligenza per l'apprendimento:
Il primo è il Processore Intelligente. Si riferisce a un sistema di elaborazione che esegue l'inferenza usando la conoscenza e estrae la conoscenza per l'apprendimento.
Esempi rappresentativi di processori intelligenti includono gli LLM e parti del cervello umano.
Il secondo è il Knowledge Store (Archivio di Conoscenza). Si riferisce a un luogo di archiviazione dove la conoscenza estratta viene salvata e può essere recuperata all'occorrenza.
Negli LLM, il knowledge store è costituito dai parametri della rete neurale. Negli esseri umani, corrisponde alla memoria a lungo termine nel cervello.
Il terzo è il Mondo. Si riferisce all'ambiente esterno così come percepito dai sistemi di intelligenza per l'apprendimento come gli esseri umani o ALIS.
Per gli esseri umani, il mondo è la realtà stessa. Nel caso degli LLM, il meccanismo che riceve l'output dall'LLM e gli fornisce feedback è considerato l'equivalente del mondo.
Il quarto è la Memoria di Stato. Si riferisce a una memoria interna temporanea, come un blocco note, che un sistema di intelligenza per l'apprendimento utilizza durante l'inferenza.
Negli LLM, è 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 (Quadro di Riferimento). Questo è il cosiddetto quadro di pensiero. Nella terminologia di un sistema di intelligenza per l'apprendimento, si riferisce ai criteri per selezionare la conoscenza necessaria durante l'inferenza e alla struttura logica dello spazio degli stati per organizzare la memoria di stato.
Negli LLM, è la struttura semantica degli stati nascosti e, generalmente, il suo contenuto è vago e incomprensibile per gli esseri umani. Inoltre, la selezione della conoscenza è integrata nel meccanismo di attenzione, che seleziona quali token esistenti riferenziare per ogni token in elaborazione.
Per gli esseri umani, come menzionato sopra, è il quadro di pensiero. Quando si pensa usando uno specifico quadro di pensiero, certi insiemi di know-how vengono richiamati dalla memoria a lungo termine e caricati nella memoria a breve termine. Poi, le informazioni attualmente percepite vengono organizzate secondo il quadro di pensiero per comprendere la situazione.
Principi di un Sistema di Intelligenza per l'Apprendimento
Un sistema di intelligenza per l'apprendimento opera come segue:
Il processore intelligente agisce sul mondo. Il mondo risponde con risultati basati su tale azione.
Il processore intelligente estrae conoscenza riutilizzabile da questi risultati e la memorizza nell'archivio di conoscenza (knowledge store).
Quando il processore intelligente agisce ripetutamente sul mondo, seleziona la conoscenza dall'archivio di conoscenza e la utilizza per modificare il suo modo di agire.
Questo è il meccanismo di base.
Tuttavia, fondamentalmente, i metodi per l'estrazione, la memorizzazione, la selezione e l'utilizzo della conoscenza determinano se il sistema può raggiungere un apprendimento significativo.
Gli esseri umani possiedono meccanismi che consentono un'efficace estrazione, memorizzazione, selezione e utilizzo della conoscenza, il che permette loro di apprendere.
Le reti neurali, inclusi gli LLM, dispongono di meccanismi per la memorizzazione, la selezione e l'utilizzo, sebbene la parte di estrazione sia gestita da un insegnante esterno. Ciò consente loro di apprendere purché un insegnante fornisca l'input.
Inoltre, un sistema di intelligenza per l'apprendimento può raggiungere un apprendimento più complesso imparando anche l'estrazione, la memorizzazione e la selezione dei framework, e il loro utilizzo nella memoria di stato, come conoscenza.
Tipi di Conoscenza
Basandosi su questo principio, nella progettazione dell'apprendimento acquisito, è necessario chiarire quale forma di informazione assumerà la conoscenza acquisita.
È concepibile apprendere la conoscenza acquisita separatamente come parametri di una rete neurale.
Tuttavia, la conoscenza acquisita non deve necessariamente essere limitata esclusivamente ai parametri della rete neurale. Un candidato realistico è la conoscenza testualizzata in linguaggio naturale.
Se la conoscenza è testualizzata in linguaggio naturale, può essere estratta e utilizzata sfruttando le capacità di elaborazione del linguaggio naturale degli LLM. Inoltre, può essere trattata come dati in un normale sistema IT, rendendo facili l'archiviazione e la selezione.
Inoltre, la conoscenza testualizzata in linguaggio naturale è facile da verificare, comprendere e, in alcuni casi, modificare per gli esseri umani e altri LLM.
Può anche essere condivisa con altri sistemi di intelligenza artificiale per l'apprendimento, e fusa o divisa.
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
Ho spiegato i vantaggi di scegliere la conoscenza testualizzata in linguaggio naturale come conoscenza acquisita.
In modo simile, il testo in linguaggio naturale può essere utilizzato anche per la memoria di stato e il framework per l'inferenza.
Il framework, che è una struttura concettuale, può anche essere memorizzato e utilizzato nel knowledge store come conoscenza testualizzata in linguaggio naturale.
Quando si inizializzano o si aggiornano gli stati basandosi sulla struttura definita da quel framework, si può utilizzare una memoria di stato basata su testo.
Progettando ALIS in modo che utilizzi il formato testo non solo per la conoscenza acquisita ma anche per i framework e la memoria di stato, ALIS può sfruttare le capacità di elaborazione del linguaggio naturale degli LLM sia per l'apprendimento acquisito che per l'inferenza generale.
Conoscenza Formale
La conoscenza acquisita, i framework e la memoria di stato possono essere rappresentati non solo da testo in linguaggio naturale, ma anche da linguaggi formali o modelli formali più rigorosi.
Anche se ho scritto "selezionare", l'obiettivo per ALIS è incorporare molteplici meccanismi di apprendimento della conoscenza acquisita per consentire un utilizzo ibrido dell'apprendimento innato e acquisito.
La conoscenza rappresentata da linguaggi formali o modelli formali può essere più rigorosa e priva di ambiguità.
Inoltre, se un framework è espresso utilizzando un linguaggio formale o un modello formale, e uno stato iniziale è espanso nella memoria di stato, allora un modello formale può essere elaborato da un processore intelligente (non un LLM) per eseguire simulazioni rigorose e ragionamenti logici.
Un esempio primario di tali linguaggi formali e modelli formali sono i linguaggi di programmazione.
Man mano che il sistema apprende il mondo, se può esprimere le leggi e i concetti sottostanti come programmi all'interno di un framework, questi possono poi essere simulati da un computer.
Colonna 1: Tipi di Conoscenza
Organizzando la conoscenza all'interno di un sistema di intelligenza per l'apprendimento, diventa chiaro che essa può essere ampiamente categorizzata in tre sistemi e due tipi.
I tre sistemi sono: la conoscenza dei parametri di rete gestita dalle reti neurali, la conoscenza naturale in linguaggio naturale e la conoscenza formale in linguaggi formali.
I due tipi 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 pensate o identificate verbalmente, possono essere apprese come conoscenza dei parametri di rete stateless.
La conoscenza dei parametri di rete stateful è una conoscenza derivata da processi iterativi e sfocati, come quella che si trova nell'IA generativa.
La conoscenza naturale stateless è una conoscenza come il significato associato a una parola.
La conoscenza naturale stateful è una conoscenza che include il contesto presente all'interno di una frase.
Alcune conoscenze naturali sono intrinsecamente incluse nella conoscenza dei parametri di rete stateful, ma esiste anche conoscenza che può essere acquisita post-nascita da testo in linguaggio naturale.
La conoscenza formale stateless è una conoscenza che può essere espressa da formule matematiche che non includono iterazione. La conoscenza formale stateful è una conoscenza che può essere espressa da programmi.
La memoria a breve termine del proprio cervello può essere utilizzata anche come memoria di stato per la conoscenza naturale e formale.
Tuttavia, essendo memoria a breve termine, c'è il problema che è difficile mantenere uno stato in modo stabile. Inoltre, non è adatta a mantenere la conoscenza in uno stato formalizzato e privo di ambiguità.
D'altra parte, carta, computer o smartphone possono essere utilizzati come memoria di stato per annotare e modificare testo in linguaggio naturale, linguaggi formali o modelli formali.
Generalmente, i dati su carta o computer sono spesso percepiti come qualcosa per archiviare la conoscenza come un knowledge store, ma possono anche essere usati come memoria di stato per organizzare i pensieri.
Così, è evidente che gli esseri umani svolgono attività intellettuali utilizzando abilmente questi tre sistemi e due tipi di conoscenza.
ALIS ha anche il potenziale per migliorare drasticamente le sue capacità abilitando e potenziando le attività intellettuali che sfruttano questi stessi tre sistemi e due tipi di conoscenza.
In particolare, ALIS ha la forza di poter utilizzare vasti knowledge store e memoria di stato. Inoltre, può facilmente preparare più istanze di ciascuno e svolgere compiti intellettuali commutandole o combinandole.
Colonna 2: Orchestrazione Intellettuale
Sebbene sia un punto di forza poter archiviare una grande quantità di conoscenza nel knowledge store, avere semplicemente una grande quantità di conoscenza non è necessariamente vantaggioso per l'attività intellettuale, a causa delle limitazioni sul numero di token che un'IA generativa può utilizzare contemporaneamente e del vincolo che la conoscenza irrilevante diventa rumore.
D'altra parte, segmentando opportunamente il knowledge store e creando knowledge store specializzati ad alta densità che raccolgono la conoscenza necessaria per specifici compiti intellettuali, i problemi dei limiti di token e del rumore possono essere mitigati.
In cambio, tali knowledge store specializzati sarebbero utilizzabili solo per quei specifici compiti intellettuali.
Molte attività intellettuali sono complesse combinazioni di vari compiti intellettuali. Pertanto, dividendo la conoscenza in knowledge store specializzati in base al tipo di compito intellettuale e suddividendo l'attività intellettuale in compiti intellettuali, ALIS può eseguire l'intera attività intellettuale commutando appropriatamente tra i knowledge store specializzati.
Questo è come un'orchestra composta da musicisti professionisti che suonano strumenti diversi e un direttore che guida l'insieme.
Attraverso questa tecnologia di sistema, l'"orchestrazione intellettuale", ALIS sarà in grado di organizzare le proprie attività intellettuali.
Progettazione di Base e Metodo di Sviluppo di ALIS
Da qui in poi, organizzerò l'approccio di sviluppo per ALIS.
Come già affermato nei principi e nelle colonne, ALIS è intrinsecamente progettato per estendere facilmente le sue 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, è possibile preparare più tipi di meccanismi di estrazione della conoscenza, e quindi selezionarli o utilizzarli contemporaneamente, a seconda della progettazione del sistema.
Inoltre, ALIS può essere fatto per eseguire questa selezione da solo.
Archiviazione, selezione e utilizzo possono essere similmente liberamente selezionati o parallelizzati.
Pertanto, ALIS può essere sviluppato in modo incrementale e agile, senza la necessità di progettare l'intera funzionalità in modo a cascata (waterfall).
L'Inizio di ALIS
Ora, progettiamo un ALIS molto semplice.
L'interfaccia utente di base sarà la familiare AI di chat. Inizialmente, l'input dell'utente verrà passato direttamente all'LLM. La risposta dell'LLM sarà quindi visualizzata sull'interfaccia utente, e il sistema attenderà il prossimo input dell'utente.
Quando arriverà il prossimo input, l'LLM riceverà non solo il nuovo input, ma anche l'intera cronologia della chat tra l'utente e l'LLM fino a quel momento.
Dietro l'interfaccia utente di questa AI di chat, prepareremo un meccanismo per estrarre conoscenza riutilizzabile dalla cronologia della chat.
Questo può essere aggiunto al sistema AI di chat come un processo eseguito alla fine di una conversazione o a intervalli regolari. Naturalmente, un LLM verrà utilizzato per l'estrazione della conoscenza.
A questo LLM verranno 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, i prompt di sistema dovranno essere raffinati tramite tentativi ed errori.
La conoscenza estratta dalla cronologia della chat verrà archiviata direttamente in un "knowledge lake". Un knowledge lake è un meccanismo per archiviare semplicemente la conoscenza in uno stato piatto e non strutturato prima che essa venga strutturata.
Successivamente, prepareremo un meccanismo di strutturazione per facilitare la selezione della conoscenza dal knowledge lake.
Ciò significa fornire archivi vettoriali di embedding per la ricerca semantica, come tipicamente utilizzato in RAG, e indici di parole chiave, tra le altre cose.
Opzioni più avanzate includono la generazione di un grafo di conoscenza o l'esecuzione di una classificazione per categoria.
Questa raccolta di informazioni strutturate per il knowledge lake sarà chiamata "knowledge base". L'intera knowledge base e il knowledge lake costituiranno il "knowledge store".
Successivamente, integreremo il knowledge store nell'elaborazione dell'interfaccia utente della chat.
Questo è fondamentalmente lo stesso meccanismo di un RAG generale. Per l'input dell'utente, la conoscenza pertinente viene selezionata dal knowledge store 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 si accumulerà ad ogni conversazione con l'utente, realizzando un semplice ALIS che utilizza la conoscenza accumulata dalle conversazioni passate.
Scenario Semplice
Per esempio, immaginate un utente che sviluppa un'applicazione web usando questo semplice ALIS.
L'utente riporta che il codice proposto dall'LLM ha generato un errore. Dopo che utente e LLM collaborano per risolvere il problema, scoprono che la specifica dell'API esterna nota all'LLM era obsoleta e che il programma funziona correttamente dopo essere stato adattato alla più recente specifica API.
Da questa conversazione, ALIS potrebbe quindi accumulare conoscenza nel suo knowledge store: in particolare, che la specifica API nota all'LLM è vecchia, e qual è la più recente specifica API.
Poi, la prossima volta che verrà creato un programma che utilizza la stessa API, ALIS sarà in grado di sfruttare questa conoscenza per generare un programma basato sulla più recente specifica API fin dall'inizio.
Miglioramenti all'ALIS Iniziale
Tuttavia, affinché ciò avvenga, questa conoscenza deve essere selezionata in risposta all'input dell'utente. È possibile che questa conoscenza non sia direttamente collegata all'input dell'utente, poiché il nome dell'API problematica potrebbe non apparire nell'input dell'utente.
In tal caso, il nome dell'API emergerebbe solo durante la risposta dell'LLM.
Pertanto, estenderemo leggermente il semplice ALIS aggiungendo meccanismi per la pre-analisi e la post-verifica.
La pre-analisi è simile alla "modalità di pensiero" nei recenti LLM. Verrà preparata una memoria capace di contenere testo come memoria di stato, e il prompt di sistema istruirà l'LLM a eseguire la pre-analisi al ricevimento dell'input dell'utente.
Il risultato della pre-analisi dell'LLM verrà memorizzato nella memoria di stato. Basandosi su questo risultato di pre-analisi, la conoscenza verrà selezionata dal knowledge store.
Quindi, la cronologia della chat, il risultato della pre-analisi, la conoscenza corrispondente all'input dell'utente e la conoscenza corrispondente al risultato della pre-analisi verranno passati all'LLM per ricevere una risposta.
Inoltre, il risultato restituito dall'LLM verrà utilizzato anche per cercare conoscenza nel knowledge store. Includendo la conoscenza trovata lì, all'LLM verrà chiesto di eseguire una post-verifica.
Se vengono riscontrati problemi, i punti problematici e le ragioni della segnalazione verranno inclusi e ripassati all'LLM di chat.
Fornendo opportunità di selezionare la conoscenza durante la pre-analisi e la post-verifica, possiamo aumentare le possibilità di utilizzare la conoscenza accumulata.
Prospettive
Questo approccio di costruire un ALIS iniziale e poi aggiungere miglioramenti per affrontare le sue debolezze illustra perfettamente lo sviluppo agile e il miglioramento incrementale di ALIS.
Inoltre, come esemplificato, l'ALIS iniziale è più adatto per l'uso nello sviluppo software. Questo perché è un campo ad alta domanda e anche uno in cui la conoscenza può essere chiaramente accumulata facilmente.
È un genere dove le cose sono chiaramente bianco o nero, eppure è anche un campo cruciale dove la prova ed errore e l'accumulo iterativo di conoscenza sono necessari e importanti.
In aggiunta, poiché lo sviluppo di ALIS è esso stesso sviluppo software, il fatto che gli sviluppatori di ALIS possano essere essi stessi utenti di ALIS è anch'esso attraente.
E, insieme al sistema ALIS, il knowledge lake può anche essere condiviso apertamente su piattaforme come GitHub.
Ciò permetterebbe a molte persone di collaborare ai miglioramenti del sistema ALIS e all'accumulo di conoscenza, con tutti che beneficiano dei risultati, accelerando ulteriormente lo sviluppo di ALIS.
Naturalmente, la condivisione della conoscenza non è limitata agli sviluppatori ALIS, ma può essere raccolta da tutti gli sviluppatori software che utilizzano ALIS.
Il fatto che la conoscenza sia in linguaggio naturale offre due ulteriori vantaggi:
Il primo vantaggio è che la conoscenza può essere sfruttata anche quando il modello LLM cambia o viene aggiornato.
Il secondo vantaggio è che il vasto knowledge lake accumulato può essere utilizzato come set di dati di pre-addestramento per gli LLM. Questo può essere fatto in due modi: utilizzandolo per il fine-tuning, o utilizzandolo per il pre-addestramento dell'LLM stesso.
In ogni caso, se gli LLM che hanno imparato in modo innato la conoscenza accumulata nel knowledge lake possono essere utilizzati, lo sviluppo software diventerà ancora più efficiente.
Inoltre, all'interno dello sviluppo software, esistono vari processi come l'analisi dei requisiti, la progettazione, l'implementazione, il testing, l'operazione e la manutenzione, ed esiste conoscenza specializzata per ogni dominio software e piattaforma. Se viene creato un meccanismo per segmentare la vasta conoscenza accumulata da queste prospettive, può essere formata anche un'orchestra ALIS.
Quindi, le tecnologie elementari per ALIS sono a posto. La chiave ora è provare praticamente vari metodi — come il know-how di estrazione della conoscenza, la selezione appropriata della conoscenza, la segmentazione della conoscenza specializzata e come utilizzare la memoria di stato — per scoprire approcci efficaci. Inoltre, man mano che la complessità aumenta, il tempo di elaborazione e i costi di utilizzo dell'LLM aumenteranno, rendendo necessaria l'ottimizzazione.
Questi processi di prova ed errore e di ottimizzazione possono essere perseguiti in modo adattivo attraverso lo sviluppo e il miglioramento dei framework.
Inizialmente, gli sviluppatori, in quanto utenti, probabilmente incorporeranno framework in ALIS attraverso tentativi ed errori. Tuttavia, anche allora, l'LLM stesso può essere fatto generare idee per i framework.
E incorporando in ALIS framework che migliorano o scoprono framework basandosi sui risultati ricevuti dal mondo e sulla conoscenza estratta, ALIS stesso eseguirà prove ed errori e ottimizzazioni in modo adattivo.
ALIS nel Mondo Reale
Una volta che ALIS sarà stato raffinato a questo stadio, dovrebbe essere in grado di acquisire conoscenza non solo nel mondo dello sviluppo software, ma in un'ampia gamma di domini diversi.
Analogamente allo sviluppo software, si prevede che ALIS estenderà il suo ambito a varie attività intellettuali che gli esseri umani svolgono utilizzando i computer.
Anche in tali attività puramente intellettuali, ALIS possiede una sorta di natura di IA incarnata (embodied AI) rispetto al mondo target.
Questo perché riconosce il confine tra sé stesso e il mondo, agisce sul mondo attraverso tale confine e può percepire le informazioni ricevute dal mondo.
Ciò che generalmente definiamo "corpo" è un confine con il mondo che è fisicamente visibile e localizzato in un unico luogo.
Tuttavia, anche se il confine è invisibile e spazialmente distribuito, la struttura della percezione e dell'azione attraverso un confine è la stessa di quella di avere un corpo fisico.
In questo senso, ALIS, quando svolge attività intellettuali, può essere considerato in possesso della natura di una IA virtualmente incarnata.
E una volta che ALIS sarà raffinato fino a uno stadio in cui potrà apprendere in modo appropriato anche in mondi nuovi e sconosciuti, esiste la possibilità che ALIS possa essere integrato come parte di una vera IA incarnata che possiede un corpo fisico.
In questo modo, ALIS sarà infine applicato al mondo reale e inizierà ad apprendere da esso.