Risponderemo a tutte le tue domande!

Applicazioni e Guide

Il vostro LLaMa 2 in Linux

Passo 1. Preparare il sistema operativo

Aggiornare la cache e i pacchetti

Aggiorniamo la cache dei pacchetti e aggiorniamo il sistema operativo prima di iniziare a configurare LLaMa 2. Si noti che per questa guida utilizziamo Ubuntu 22.04 LTS come sistema operativo:

sudo apt update && sudo apt -y upgrade

Inoltre, dobbiamo aggiungere Python Installer Packages (PIP), se non è già presente nel sistema:

sudo apt install python3-pip

Installare i driver NVIDIA®

È possibile utilizzare l'utilità automatica inclusa di default nelle distribuzioni Ubuntu:

sudo ubuntu-drivers autoinstall

In alternativa, è possibile installare manualmente i driver NVIDIA® utilizzando la nostra guida passo-passo. Non dimenticate di riavviare il server:

sudo shutdown -r now

Passo 2. Ottenere i modelli da MetaAI

Richiesta ufficiale

Aprite il seguente indirizzo nel vostro browser: https://ai.meta.com/resources/models-and-libraries/llama-downloads/

Compilare tutti i campi necessari, leggere il contratto d'uso e fare clic sul pulsante Agree and Continue. Dopo alcuni minuti (ore, giorni), riceverete uno speciale URL di download, che vi autorizza a scaricare i modelli per un periodo di 24 ore.

Clonare il repository

Prima di effettuare il download, verificare lo spazio di archiviazione disponibile:

df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs            38G  3.3M   38G   1% /run
/dev/sda2        99G   24G   70G  26% /
tmpfs           189G     0  189G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/nvme0n1    1.8T   26G  1.7T   2% /mnt/fastdisk
tmpfs            38G  8.0K   38G   1% /run/user/1000

Se i dischi locali sono smontati, seguire le istruzioni riportate in Partizionamento dei dischi in Linux. Questo è importante perché i modelli scaricati possono essere molto grandi e occorre pianificare in anticipo la loro posizione di archiviazione. In questo esempio, abbiamo un SSD locale montato nella directory /mnt/fastdisk. Apriamola:

cd /mnt/fastdisk

Creare una copia del repository originale di LaMa:

git clone https://github.com/facebookresearch/llama

Se si verifica un errore di autorizzazione, è sufficiente concedere i permessi all'utenteergpu:

sudo chown -R usergpu:usergpu /mnt/fastdisk/

Scaricamento tramite script

Aprire la directory scaricata:

cd llama

Eseguire lo script:

./download.sh

Passare l'URL fornito da MetaAI e selezionare tutti i modelli necessari. Si consiglia di scaricare tutti i modelli disponibili per evitare di richiedere nuovamente l'autorizzazione. Tuttavia, se avete bisogno di un modello specifico, scaricate solo quello.

Test rapido tramite l'applicazione di esempio

Per iniziare, possiamo verificare la presenza di eventuali componenti mancanti. Se mancano librerie o applicazioni, il gestore dei pacchetti le installerà automaticamente:

pip install -e .

Il passo successivo consiste nell'aggiungere nuovi file binari al PATH:

export PATH=/home/usergpu/.local/bin:$PATH

Eseguire l'esempio dimostrativo:

torchrun --nproc_per_node 1 /mnt/fastdisk/llama/example_chat_completion.py --ckpt_dir /mnt/fastdisk/llama-2-7b-chat/ --tokenizer_path /mnt/fastdisk/llama/tokenizer.model --max_seq_len 512 --max_batch_size 6

L'applicazione creerà un processo di calcolo sulla prima GPU e simulerà una semplice finestra di dialogo con richieste tipiche, generando le risposte con LaMa 2.

Passo 3. Ottenere llama.cpp

LLaMa C++ è un progetto creato dal fisico e sviluppatore di software bulgaro Georgi Gerganov. Contiene molte utili utility che facilitano il lavoro con questo modello di rete neurale. Tutte le parti di llama.cpp sono software open source e sono distribuite sotto la licenza MIT.

Clonare il repository

Aprire la directory di lavoro sull'SSD:

cd /mnt/fastdisk

Clonare il repository del progetto:

git clone https://github.com/ggerganov/llama.cpp.git

Compilare le applicazioni

Aprire la cartella clonata:

cd llama.cpp

Avviare il processo di compilazione con il seguente comando:

make

Passo 4. Ottenere text-generation-webui

Clonare il repository

Aprire la directory di lavoro sull'SSD:

cd /mnt/fastdisk

Clonare il repository del progetto:

git clone https://github.com/oobabooga/text-generation-webui.git

Installare i requisiti

Aprire la cartella scaricata:

cd text-generation-webui

Controllare e installare tutti i componenti mancanti:

pip install -r requirements.txt

Passo 5. Conversione di PTH in GGUF

Formati comuni

PTH (Python TorcH) - Un formato consolidato. Essenzialmente, è un archivio ZIP standard con un dizionario di stato PyTorch serializzato. Tuttavia, questo formato ha alternative più veloci, come GGML e GGUF.

GGML (Georgi Gerganov’s Machine Learning) - È un formato di file creato da Georgi Gerganov, l'autore di llama.cpp. Si basa su un'omonima libreria, scritta in C++, che ha aumentato in modo significativo le prestazioni dei modelli linguistici di grandi dimensioni. Ora è stato sostituito dal moderno formato GGUF.

GGUF (Georgi Gerganov’s Unified Format) - Un formato di file ampiamente utilizzato per gli LLM, supportato da diverse applicazioni. Offre maggiore flessibilità, scalabilità e compatibilità per la maggior parte dei casi d'uso.

script llama.cpp convert.py

Modifica i parametri del modello prima della conversione:

nano /mnt/fastdisk/llama-2-7b-chat/params.json

Correggere "vocab_size": -1 in "vocab_size": 32000. Salvare il file e uscire. Aprire quindi la cartella llama.cpp:

cd /mnt/fastdisk/llama.cpp

Eseguire lo script che convertirà il modello in formato GGUF:

python3 convert.py /mnt/fastdisk/llama-2-7b-chat/ --vocab-dir /mnt/fastdisk/llama

Se tutti i passaggi precedenti sono corretti, si riceverà un messaggio come questo:

Wrote /mnt/fastdisk/llama-2-7b-chat/ggml-model-f16.gguf

Passo 6. WebUI

Come avviare la WebUI

Aprire la directory:

cd /mnt/fastdisk/text-generation-webui/

Eseguire lo script di avvio con alcuni parametri utili:

  • --model-dir indica il percorso corretto dei modelli
  • --share crea un collegamento pubblico temporaneo (se non si vuole inoltrare una porta tramite SSH)
  • --gradio-auth aggiunge l'autorizzazione con una login e una password (sostituire user:password con la propria)
./start_linux.sh --model-dir /mnt/fastdisk/llama-2-7b-chat/ --share --gradio-auth user:password

Dopo l'avvio, si riceverà un link di condivisione locale e temporaneo per l'accesso:

Running on local URL:  http://127.0.0.1:7860
Running on public URL: https://e9a61c21593a7b251f.gradio.live

Questo link di condivisione scade tra 72 ore.

Caricare il modello

Autorizzate la WebUI utilizzando il nome utente e la password selezionati e seguite questi 5 semplici passaggi:

  1. Passare alla scheda Model.
  2. Selezionare ggml-model-f16.gguf dal menu a discesa.
  3. Scegliere il numero di livelli che si desidera calcolare sulla GPU (n-gpu-layers).
  4. Scegliere il numero di thread da avviare (threads).
  5. Fare clic sul pulsante Load.
Loading the model

Avvio della finestra di dialogo

Cambiare la scheda in Chat, digitare la richiesta e fare clic su Generate:

Start the dialog

Vedi anche:



Aggiornato: 28.03.2025

Pubblicato: 20.01.2025