Sì, puoi eseguire un "chatbot AI" LLM su un Raspberry Pi! Segui semplicemente questo processo passo dopo passo e poi chiedigli qualsiasi cosa.

I modelli di linguaggio di grandi dimensioni, noti generalmente (e in modo impreciso) come IA, minacciano da mesi di sconvolgere il mondo dell'editoria, dell'arte e del diritto. Uno svantaggio è che utilizzare LLM come ChatGPT significa creare un account e fare in modo che il computer di qualcun altro faccia il lavoro. Ma puoi eseguire un LLM addestrato sul tuo Raspberry Pi per scrivere poesie, rispondere a domande e altro ancora.

Che cos'è un modello linguistico di grandi dimensioni?

I modelli di linguaggio di grandi dimensioni utilizzano algoritmi di apprendimento automatico per trovare relazioni e schemi tra parole e frasi. Addestrati su grandi quantità di dati, sono in grado di prevedere quali parole hanno statisticamente probabilità di venire dopo quando viene loro dato un suggerimento.

Se dovessi chiedere a migliaia di persone come si sentono oggi, le risposte sarebbero del tipo "Sto bene", "Potrebbe andare peggio", "OK, ma le mie ginocchia stanno giocando". La conversazione sarebbe quindi svolta in una direzione diversa. Forse la persona ti chiederà informazioni sulla tua salute o risponderà con "Scusa, devo scappare. Sono in ritardo per il lavoro".

instagram viewer

Alla luce di questi dati e del prompt iniziale, un modello linguistico di grandi dimensioni dovrebbe essere in grado di fornire una propria risposta convincente e originale, basata su la probabilità che una certa parola venga dopo in una sequenza, combinata con un grado prestabilito di casualità, penalità di ripetizione e altro parametri.

I grandi modelli linguistici in uso oggi non sono addestrati su un vox pop di poche migliaia di persone. Invece, ricevono una quantità inimmaginabile di dati, estratti da raccolte disponibili pubblicamente, piattaforme di social media, pagine Web, archivi e set di dati personalizzati occasionali.

Gli LLM sono addestrati da ricercatori umani che rafforzeranno determinati schemi e li riporteranno all'algoritmo. Quando chiedi a un modello linguistico di grandi dimensioni "qual è il miglior tipo di cane?", Sarà in grado di fornire una risposta che ti dirà che un Jack Russell terrier è il miglior tipo di cane e ti spiegherà perché.

Ma indipendentemente da quanto intelligente o convincente e umanamente stupida sia la risposta, né il modello né la macchina corre ha una mente, e sono incapaci di comprendere né la domanda né le parole che compongono il risposta. È solo matematica e molti dati.

Perché eseguire un modello di linguaggio di grandi dimensioni su Raspberry Pi?

I modelli di linguaggio di grandi dimensioni sono ovunque e vengono adottati da grandi società di ricerca per aiutare a rispondere alle domande.

Mentre si è tentati di lanciare una domanda in linguaggio naturale a una scatola nera aziendale, a volte si desidera cercare ispirazione o porre una domanda senza fornire ulteriori dati nelle fauci di capitalismo di sorveglianza.

Come scheda sperimentale per armeggiatori, il Computer a scheda singola Raspberry Pi è filosoficamente, se non fisicamente, adatto allo sforzo.

Nel febbraio 2023, Meta (la società precedentemente nota come Facebook) ha annunciato LLaMA, un nuovo LLM che vanta modelli linguistici compresi tra 7 e 65 miliardi di parametri. LLaMA è stato addestrato utilizzando set di dati disponibili pubblicamente,

Il codice LLaMA è open source, il che significa che chiunque può usarlo e adattarlo, e i "pesi" o parametri sono stati pubblicati come torrent e collegamenti magnetici in un thread sul progetto Pagina GitHub.

Nel marzo 2023, lo sviluppatore Georgi Gerganov ha rilasciato lama.cpp, che può essere eseguito su una vasta gamma di hardware, incluso Raspberry Pi. Il codice viene eseguito localmente e nessun dato viene inviato a Meta.

Installa llama.cpp su Raspberry Pi

Non ci sono linee guida hardware pubblicate per llama.cpp, ma è estremamente affamato di processore, RAM e spazio di archiviazione. Assicurati di eseguirlo su un Raspberry Pi 4B o 400 con tanta memoria, memoria virtualee lo spazio SSD disponibile il più possibile. Una scheda SD non lo taglierà e un case con un raffreddamento decente è un dovere.

Useremo il modello da 7 miliardi di parametri, quindi visita questo Thread LLama GitHube scarica il torrent 7B utilizzando un client come qBittorrent o Aria.

Clonare il repository llama.cpp e quindi utilizzare il file CD comando per spostarsi nella nuova directory:

idiota clone https://github.com/ggerganov/llama.cpp
CDlama.cpp

Se non hai un compilatore installato, installane uno ora con:

sudo apt-Ottenere installa g++

Ora compila il progetto con questo comando:

Fare

È possibile che llama.cpp non riesca a compilare e vedrai una serie di messaggi di errore relativi a "vdotq_s32". Se ciò accade, è necessario ripristinare un commit. Innanzitutto, imposta il tuo utente git locale:

git config nome utente "davide"

Ora puoi ripristinare un commit precedente:

git ripristinare 84d9015

Un messaggio di commit git si aprirà nell'editor di testo nano. Premere Ctrl+O salvare, quindi Ctrl+X per uscire da nano. llama.cpp ora dovrebbe essere compilato senza errori quando inserisci:

Fare

Dovrai creare una directory per i modelli ponderati che intendi utilizzare:

modelli mkdir

Ora trasferisci i modelli pesati dal file Lama rubrica:

mv~/Downloads/Lama/* ~/llama.cpp/models/

Assicurati di aver installato Python 3 sul tuo Pi e installa le dipendenze llama.cpp:

python3 -m pip installare torcia numpy frase

La versione di NumPy potrebbe causare problemi. Aggiornalo:

pippo installare intorpidito --aggiornamento

Ora converti il ​​modello 7B nel formato ggml FP16:

python3 convert-pth-to-ggml.py models/7B/ 1

Il passaggio precedente è estremamente intensivo per la memoria e, secondo i nostri calcoli, utilizza almeno 16 GB di RAM. È anche super lento e soggetto a guasti.

Otterrai risultati migliori seguendo queste istruzioni in parallelo su un PC desktop, quindi copiando il file /models/7B/ggml-model-q4_0.bin nella stessa posizione sul tuo Raspberry Pi.

Quantizza il modello a 4 bit:

./quantizzare.sh 7B

Questo è tutto. LLaMA LLM è ora installato sul tuo Raspberry Pi e pronto per l'uso!

Utilizzo di llama.cpp su Raspberry Pi

Per iniziare con llama.cpp, assicurati di essere nella directory del progetto e inserisci il seguente comando:

./main -m ./modelli/7B/ggml-modello-q4_0.bin -t 4 -N 128 -P "Cos'è il kernel Linux?"

IL -M l'opzione è indirizzare llama.cpp al modello che si desidera utilizzare; -T indica il numero di thread che vuoi utilizzare; -N è il numero di token da prevedere; -P è la tua richiesta. Puoi personalizzare tutte queste variabili.

Accomodati per una lunga attesa, perché mentre il Raspberry Pi è eccellente in quello che fa, non è stato progettato per questo tipo di attività della CPU. Nel nostro prompt di esempio, llama ha suddiviso il testo in otto singoli token, prima di dare la seguente risposta:

Linux Kernel, in poche parole, è sempre stato indicato come un sistema operativo. Tuttavia non è realmente considerato uno poiché per tutti gli scopi pratici la maggior parte delle sue funzioni lo sono esposto tramite API e utilità che possono essere utilizzate da qualsiasi altro sistema operativo che desideri (o abbia bisogno) di accedervi API. Per quanto riguarda il kernel Linux stesso, non c'è molto da fare con il kernel vero e proprio. Inizierà appena, riceverà i parametri di configurazione dal tuo bootloader/initrd preferito, quindi lo farà funzionare su un po 'di hardware e ti occuperai di qualsiasi attività che comporti a questo punto

Sebbene questa fosse una risposta abbastanza coerente, un secondo tentativo ha portato a qualcosa di simile a un'insalata di parole tritate grossolanamente:

Molti di voi probabilmente ne hanno sentito parlare ma non sanno davvero di cosa stanno parlando. Ne discuteremo in dettaglio perché comprenderli appieno ci aiuta a utilizzare di più i nostri computer in modo efficiente e prendi anche decisioni migliori quando acquisti nuovo hardware o software per i tuoi PC a casa, in ufficio eccetera.. Il kernel Linux è la spina dorsale della maggior parte dei sistemi operativi che gira su un sistema informatico come Android, che è un sistema operativo open source basato in parte su questo kernel. Ma cosa intendono esattamente dicendo linux kernal?

Il Linus Torvalds ha scritto i suoi pensieri (Conoscenza)

Vale la pena ricordare a questo punto che ciascuna di queste risposte ha richiesto quasi due ore per essere prodotta e che tutti e quattro i core della CPU funzionassero al 100%. Tuttavia, il lavoro sul progetto si sta muovendo rapidamente e puoi aspettarti che le imminenti ottimizzazioni ARM riducano i tempi.

Puoi anche simulare intere conversazioni con il tuo LLM invece di alimentarlo con i prompt uno alla volta. Aggiungendo il -io l'opzione avvierà il lama in modalità interattiva, mentre --avvio-interattivo ti chiederà un input all'inizio. Per un elenco completo delle opzioni disponibili, eseguire:

principale - h

Tieni presente che LlaMA non ha regole restrittive. A volte sarà sessista, razzista, omofobo e molto sbagliato.

Un grande modello linguistico non può sostituire la vera conoscenza

L'esecuzione di LLaMA di Meta su Raspberry Pi è follemente interessante e potresti essere tentato di rivolgerti al tuo guru virtuale per domande tecniche, consigli sulla vita, amicizia o come una vera fonte di conoscenza. Non lasciarti ingannare. I grandi modelli linguistici non sanno nulla, non sentono nulla e non capiscono nulla. Se hai bisogno di aiuto per qualcosa, è meglio parlare con un essere umano o leggere qualcosa scritto da un essere umano.

Se hai poco tempo, puoi leggerlo velocemente nel tuo terminale Linux!