AI LLM

Come Funziona ChatGPT

categorie

What Is ChatGPT Doing … and Why Does It Work


Quando ChatGPT scrive qualcosa come un saggio, ciò che fa è chiedersi ripetutamente "dato il testo fino a qui, quale dovrebbe essere la prossima parola ?",
Questa "parola" aggiunta si definisce "token", e potrebbe anche essere incompleto, per cui a volte possono essere "inventate nuove parole". Ad ogni passo si ottiene un elenco di parole con le relative probabilità.
Se a volte (a caso) si scelgono parole di rango inferiore, si può ottenere un saggio "più interessante".
Il parametro che regola questa scelta si chiama "temperatura", e determina la frequenza con cui vengono usate le parole di rango più basso; in molti casi una "temperatura" di 0,8 sembra essere l'ideale.

Con l'addestramento su un numero sufficiente di testi in lingua, si possono ottenere stime abbastanza buone non solo per le probabilità di singole lettere o coppie di lettere (2-grammi), ma anche per serie di lettere più lunghe. Ad esempio ci sono circa 40.000 parole ragionevolmente usate in inglese.
Esaminando un ampio corpus di testi in inglese (ad esempio qualche milione di libri, con un totale di qualche centinaio di miliardi di parole), possiamo ottenere una stima di quanto sia comune ogni parola.
E con questa si può iniziare a generare "intere frasi", in cui ogni parola è scelta indipendentemente a caso, con la stessa probabilità che appaia nel corpus.
Come per le lettere, possiamo iniziare a prendere in considerazione non solo le probabilità per le singole parole, ma anche quelle per le coppie o per gli n-grammi di parole più lunghi.

Supponiamo di voler sapere (come fece Galileo alla fine del 1500) quanto tempo impiegherà una palla di cannone lanciata da ogni piano della Torre di Pisa a toccare il suolo. Si potrebbe misurare in ogni caso e fare una tabella dei risultati. Immaginiamo di avere dei dati (un po' idealizzati) su quanto tempo impiega una palla di cannone a cadere da vari piani: come facciamo a capire quanto tempo impiega a cadere da un piano di cui non abbiamo dati espliciti?
In questo caso particolare, possiamo usare le leggi fisiche conosciute per calcolarlo.
E da questa linea retta possiamo stimare il tempo di caduta per qualsiasi piano.

Ma per ChatGPT dobbiamo creare un modello di testo in lingua umana del tipo prodotto da un cervello umano. E per una cosa del genere non abbiamo (almeno per ora) nulla di simile alla "matematica semplice".
Se il nostro obiettivo è produrre un modello di ciò che gli esseri umani possono fare nel riconoscimento delle immagini, la vera domanda da porsi è cosa avrebbe fatto un essere umano se gli fosse stata presentata una di quelle immagini sfocate, senza sapere da dove provenisse.
Abbiamo un "buon modello" se i risultati che otteniamo dalla nostra funzione concordano tipicamente con quello che direbbe un umano.

L'approccio attuale più popolare, e di successo, utilizza le reti neurali. Inventate negli anni '40, in una forma molto simile a quella attuale, le reti neurali possono essere considerate come semplici idealizzazioni del funzionamento del cervello.
La configurazione di un "diagramma di Voronoi" separa i punti nello spazio euclideo 2D; il compito di riconoscimento delle cifre può essere pensato come se facesse qualcosa di molto simile, ma in uno spazio a 784 dimensioni formato dai livelli di grigio di tutti i pixel di ogni immagine.

Soprattutto nell'ultimo decennio, ci sono stati molti progressi nell'arte dell'addestramento delle reti neurali.
Ma per lo più le cose sono state scoperte per tentativi ed errori, aggiungendo idee e trucchi che hanno progressivamente costruito una tradizione significativa su come lavorare con le reti neurali.
Questo non vuol dire che non esistano "idee strutturanti" rilevanti per le reti neurali.
Così, ad esempio, avere matrici di neuroni in 2D con connessioni locali sembra almeno molto utile nelle prime fasi di elaborazione delle immagini.
E le attuali reti neurali, con gli attuali approcci all'addestramento delle reti neurali, si occupano specificamente di matrici di numeri.

Ora c'è il problema di ottenere i dati con cui addestrare la rete.
Molte delle sfide pratiche legate alle reti neurali e all'apprendimento automatico in generale si concentrano sull'acquisizione o sulla preparazione dei dati di addestramento necessari. Quanti dati bisogna mostrare a una rete neurale per addestrarla a un compito particolare?
In generale, le reti neurali hanno bisogno di "vedere molti esempi" per allenarsi bene.
È inoltre necessario mostrare alla rete neurale variazioni dell'esempio.

La spiegazione approfondita nell'articolo: What Is ChatGPT Doing … and Why Does It Work?.

wikipedia

How to use AI to do practical stuff: A new guide


Stephen Wolfram: ChatGPT and the Nature of Truth, Reality & Computation | Lex Fridman Podcast

Sumplete - Progettato dalla AI

sumplete

Sumplete è stato progettato e realizzato completamente da chatGPT.

E' stato chiesto prima di consigliare un nuovo rompicapo da giocare per chi apprezza il Sudoku.
Dopo aver ottenuto un buon elenco di risultati, già tutti noti, ci si è chiesto se ChatGPT potesse davvero inventare un proprio rompicapo. Al quarto tentativo è venuto fuori questo "Sum Delete puzzle" che sembrava interessate. Ma è in grado di crearne una versione giocabile ?
30 secondi dopo c'era già una versione completamente giocabile del puzzle nel browser. Alla fine è stato chiesto perfino di migliorare il design aggiungendo alcuni CSS e di inventarsi un nome.

Il processo completo


Le Proprietà Emergenti della AI

categorie

137 emergent abilities of large language models


Un'abilità è considerata "emergente" se non è presente nei modelli più piccoli ma lo è in quelli più grandi. I modelli linguistici odierni sono stati dimensionati principalmente in base a tre fattori: quantità di calcolo, numero di parametri e dimensione del set di dati di addestramento.
In generale, si può considerare l'emergere di nuove proprietà come una funzione di molte variabili correlate. La scala in cui si osserva per la prima volta l'emergere di un'abilità dipende da una serie di fattori e non è una proprietà immutabile. In figura si vede come le prestazioni esplodano oltre un certo ordine di grandezza dei parametri.

Ecco una breve lista di oltre 200 proprietà emergenti dei modelli:

- La capacità di eseguire un compito tramite brevi serie di prompt legati (few-shots) è emergente quando un modello ha prestazioni casuali fino a una certa scala, dopodiché le prestazioni aumentano fino a diventare ben superiori.
- L'aumento di parametri aumenta le prestazioni della capacità di risolvere domande basate sulla conoscenza che abbraccia una vasta gamma di argomenti.
- Le prestazioni di Word in Context (WiC), che sono una soglia di comprensione semantica, sembrano non molto influenzate dal numero dei parametri, anche fino a 540B+.
- I compiti di ragionamento, in particolare quelli che prevedono più passaggi, sono stati una sfida per i modelli linguistici e per i modelli NLP in generale. Una recente strategia chiamata "chain-of-thought prompting" permette ai modelli linguistici di risolvere tali problemi guidandoli a produrre una sequenza di passaggi intermedi prima di fornire la risposta finale soprattutto quando viene scalato a 100B+ parametri.

Altre proprietà sono: Ragionamento a più Fasi, Seguire Istruzioni, Esecuzione di Programmi, Calibrazione dei Modelli.

The Unpredictable Abilities Emerging From Large AI Models
137 emergent abilities of large language models
209 Emergent Abilities of large language models.pdf


Simple LLaMA Finetuner

categorie

Simple LLaMA Finetuner

Simple LLaMA Finetuner è un'interfaccia facile da usare per facilitare la messa a punto del modello linguistico LLaMA-7B utilizzando il metodo LoRA tramite la libreria PEFT (State-of-the-art Parameter-Efficient Fine-Tuning) su GPU NVIDIA di qualità.

Con un set di dati di piccole dimensioni e una lunghezza dei campioni di 256, è possibile eseguire questa operazione anche su una normale istanza di Colab Tesla T4.

Grazie a questa intuitiva interfaccia utente, è possibile gestire facilmente il dataset, personalizzare i parametri, addestrare e valutare le capacità di inferenza del modello LL.

Simple LLaMA Finetuner

some highlights of llama.cpp repo

Image Credit: Tydence Davis

MarioGPT Level Generation

okuribito


MarioGPT: Open-Ended Text2Level Generation through LLM è un modello GPT2 perfezionato (nello specifico, distilgpt2), addestrato su un sottoinsieme di livelli di Super Mario Bros e Super Mario Bros: The Lost Levels, fornito dal The Video Game Level Corpus. MarioGPT è in grado di generare livelli guidati da una semplice richiesta di testo. Questa generazione non è perfetta, ma riteniamo che sia un ottimo primo passo per una generazione di livelli/ambienti più controllabile e diversificata.

[via]

Galactica

galactica AI
La missione di Galactica era quella di organizzare tutto lo scibile scientifico, che è ora difficile da discernere in mezzo ad un oceano di informazioni. La promessa originaria dell'informatica era quella di risolvere il sovraccarico di informazioni, ma i computer classici erano specializzati nel recupero e nell'archiviazione, non nel riconoscimento di modelli ("pattern recognition"). Di conseguenza, abbiamo avuto un'esplosione di informazioni ma non dei mezzi per elaborarla. I ricercatori sono sepolti da una massa di documenti, sempre più incapaci di distinguere tra ciò che è significativo e ciò che è irrilevante. Peraltro la stessa situazione la vivono i cittadini sui social.

Si è rivelato un ennesimo clamoroso flop di Meta.

Meta Galactica AI explained: How to use it?


Il Manichino Virtuale - Set Pose

Il Manichino Virtuale - Set Pose

Quando si disegna il corpo umano, si devono prendere in considerazione molti fattori diversi perché il risultato sia il più realistico possibile. Fattori come la struttura ossea, i muscoli e altri dettagli anatomici sono molto importanti ma difficili da ottenere. Questo è il motivo per cui molti artisti usano dei riferimenti quando disegnano il corpo umano. Questi riferimenti possono essere sotto forma di un'immagine o un video, ma il problema è che questi non sono regolabili. Quando si vuole disegnare una posa specifica, può essere spesso difficile trovare le immagini di riferimento giuste, per esempio. È qui che un modello di disegno regolabile torna utile. Questi modelli regolabili sono spesso chiamati anche manichini da disegno o figure da disegno e sono disponibili nella maggior parte dei negozi d'arte.

Set Pose è un manichino virtuale 3D utilizzabile direttamente nel browser come riferimento per il disegno figurativo, pose dinamiche e altro. Nell'interfaccia sono disponibili 81 preset di pose e ben 16 prop (sedie, biciclette ecc.) per aumentare molto le possibiltà, inoltre è possibile modificare anche le dimensioni delle singole parti del manichino, oltre ovviamente a poter manipolare l'orientamento e l'angolo di ogni giuntura.

★ Pose in 3D & Render with ControlNet (SD-1.5)


Gwern Branwen

Gwern
Gwern Branwen è lo pseudonimo di un ricercatore molto attivo su internet che si è occupato di dark web e cryptocurrencies, microdosi di LSD e anime. La sua incessante curiosità e la propensione a cercare di comprendere sistematicamente argomenti anche molto complessi lo ha portato a scrivere quasi 100.000 contributi su wikipedia, ha contribuito a Wired e ha realizzato molti progetti con una precisione ed una scala che farebbero pensare ad un collettivo di ben più di una persona.

Open Questions

GPT-2
links
newsletter archives

Making Anime Faces
tagged anime
Danbooru 2018

The Melancholy of Kyon
Whe Should I Check the Mail
AIs: the Power of Agencies

prediction book
patreon
github
revolvy
quora

★ Gwern Site Design