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.

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:

Vedi anche:
Aggiornato: 28.03.2025
Pubblicato: 20.01.2025