Risponderemo a tutte le tue domande!

Applicazioni e Guide

Il proprio Vicuna in Linux

Questo articolo vi guiderà attraverso il processo di implementazione di un'alternativa LLaMA di base su un server LeaderGPU. A questo scopo utilizzeremo il progetto FastChat e il modello Vicuna, disponibile gratuitamente.

Il modello che utilizzeremo è basato sull'architettura LLaMA di Meta, ma è stato ottimizzato per una distribuzione efficiente su hardware consumer. Questa configurazione offre un buon equilibrio tra prestazioni e requisiti di risorse, rendendola adatta sia agli ambienti di test che a quelli di produzione.

Preinstallazione

Prepariamo l'installazione di FastChat aggiornando il repository della cache dei pacchetti:

sudo apt update && sudo apt -y upgrade

Installare automaticamente i driver NVIDIA® utilizzando il seguente comando:

sudo ubuntu-drivers autoinstall

È anche possibile installare questi driver manualmente con la nostra guida passo-passo. Quindi, riavviare il server:

sudo shutdown -r now

Il passo successivo è l'installazione di PIP (Package Installer for Python):

sudo apt install python3-pip

Installare FastChat

Da PyPi

Ci sono due modi possibili per installare FastChat. Si può installare direttamente da PyPi:

pip3 install "fschat[model_worker,webui]"

Da GitHub

In alternativa, è possibile clonare il repository FastChat da GitHub e installarlo:

git clone https://github.com/lm-sys/FastChat.git
cd FastChat

Non dimenticate di aggiornare PIP prima di procedere:

pip3 install --upgrade pip
pip3 install -e ".[model_worker,webui]"

Eseguire FastChat

Primo avvio

Per garantire il successo dell'avvio iniziale, si consiglia di richiamare manualmente FastChat direttamente dalla riga di comando:

python3 -m fastchat.serve.cli --model-path lmsys/vicuna-7b-v1.5

Questa azione recupera e scarica automaticamente il modello designato di vostra scelta, che deve essere specificato utilizzando il parametro --model-path. Il modello 7b rappresenta un modello con 7 miliardi di parametri. È il modello più leggero, adatto alle GPU con 16 GB di memoria video. I collegamenti ai modelli con un numero maggiore di parametri si trovano nel file Readme del progetto.

Sample Vicuna conversation

A questo punto si può scegliere di avviare una conversazione con il chatbot direttamente all'interno dell'interfaccia a riga di comando oppure si può impostare un'interfaccia Web. Essa contiene tre componenti:

  • Controllore
  • Lavoratori
  • Server web Gradio

Impostare i servizi

Trasformiamo ogni componente in un servizio systemd separato. Creare 3 file separati con i seguenti contenuti:

sudo nano /etc/systemd/system/vicuna-controller.service
[Unit]
Description=Vicuna controller service
[Service]
User=usergpu
WorkingDirectory=/home/usergpu
ExecStart=python3 -m fastchat.serve.controller
Restart=always
[Install]
WantedBy=multi-user.target
sudo nano /etc/systemd/system/vicuna-worker.service
[Unit]
Description=Vicuna worker service
[Service]
User=usergpu
WorkingDirectory=/home/usergpu
ExecStart=python3 -m fastchat.serve.model_worker --model-path lmsys/vicuna-7b-v1.5
Restart=always
[Install]
WantedBy=multi-user.target
sudo nano /etc/systemd/system/vicuna-webserver.service
[Unit]
Description=Vicuna web server
[Service]
User=usergpu
WorkingDirectory=/home/usergpu
ExecStart=python3 -m fastchat.serve.gradio_web_server
Restart=always
[Install]
WantedBy=multi-user.target

Systemd di solito aggiorna il database dei demoni durante il processo di avvio del sistema. Tuttavia, è possibile farlo manualmente utilizzando il seguente comando:

sudo systemctl daemon-reload

Aggiungiamo ora tre nuovi servizi all'avvio e lanciamoli immediatamente usando l'opzione --now:

sudo systemctl enable vicuna-controller.service --now && sudo systemctl enable vicuna-worker.service --now && sudo systemctl enable vicuna-webserver.service --now

Tuttavia, se si tenta di aprire un'interfaccia Web all'indirizzo http://[IP_ADDRESS]:7860, si troverà un'interfaccia completamente inutilizzabile senza modelli disponibili. Per risolvere questo problema, interrompere il servizio di interfaccia Web:

sudo systemctl stop vicuna-webserver.service

Eseguire manualmente il servizio Web:

python3 -m fastchat.serve.gradio_web_server

Aggiungere un'autenticazione

Questa azione richiama un altro script, che registrerà il modello precedentemente scaricato in un database interno di Gradio. Attendere qualche secondo e interrompere il processo utilizzando la scorciatoia Ctrl + C. Ci occuperemo anche della sicurezza e attiveremo un semplice meccanismo di autenticazione per l'accesso all'interfaccia web. Aprite il seguente file se avete installato FastChat da PyPI:

sudo nano /home/usergpu/.local/lib/python3.10/site-packages/fastchat/serve/gradio_web_server.py

oppure

sudo nano /home/usergpu/FastChat/fastchat/serve/gradio_web_server.py

Scorrere fino alla fine. Trovare questa riga:

auth=auth,

Modificatela impostando un nome utente o una password a piacere:

auth=(“username”,”password”),

Salvare il file e uscire, utilizzando la scorciatoia Ctrl + X. Infine, avviare l'interfaccia web:

sudo systemctl start vicuna-webserver.service

Aprite http://[IP_ADDRESS]:7860 nel vostro browser e godetevi FastChat con Vicuna:

Sample Vicuna poem

Vedi anche:



Aggiornato: 28.03.2025

Pubblicato: 20.01.2025