Risponderemo a tutte le tue domande!

Applicazioni e Guide

StarCoder: il vostro assistente di codifica locale

Microsoft CoPilot ha portato una rivoluzione nel campo dello sviluppo software. Questo assistente AI aiuta notevolmente gli sviluppatori a svolgere diverse attività di codifica, semplificando loro la vita. Tuttavia, uno svantaggio è che non si tratta di un'applicazione autonoma, ma di un servizio basato sul cloud. Ciò significa che gli utenti devono accettare i termini e le condizioni del servizio e pagare un abbonamento.

Fortunatamente, il mondo del software open-source offre numerose alternative. Al momento della stesura di questo articolo, la più importante alternativa a CoPilot è StarCoder, sviluppato dal progetto BigCode. StarCoder è un modello di rete neurale esteso con 15,5 miliardi di parametri, addestrato su oltre 80 linguaggi di programmazione.

Questo modello è distribuito su Hugging Face (HF) utilizzando un modello gated sotto l'accordo di licenza BigCode OpenRAIL-M v1. È possibile scaricare e utilizzare questo modello gratuitamente, ma è necessario disporre di un account HF con una chiave SSH collegata. Prima di poterlo scaricare, è necessario eseguire alcuni passaggi aggiuntivi.

Aggiungere la chiave SSH a HF

Prima di iniziare, è necessario impostare il port forwarding (porta remota 7860 a 127.0.0.1:7860) nel proprio client SSH. Ulteriori informazioni sono disponibili nei seguenti articoli:

Aggiornare il repository della cache dei pacchetti e i pacchetti installati:

sudo apt update && sudo apt -y upgrade

Installiamo il gestore dei pacchetti di sistema di Python (PIP):

sudo apt install python3-pip

Generare e aggiungere una chiave SSH da utilizzare in Hugging Face:

cd ~/.ssh && ssh-keygen

Quando la coppia di chiavi è stata generata, è possibile visualizzare la chiave pubblica nell'emulatore di terminale:

cat id_rsa.pub

Copiare tutte le informazioni che iniziano con ssh-rsa e terminano con usergpu@gpuserver come mostrato nella seguente schermata:

Copy RSA key

Aprire un browser web, digitare https://huggingface.co/ nella barra degli indirizzi e premere Enter. Accedere al proprio account HF e aprire Impostazioni profilo. Scegliere quindi SSH and GPG Keys e fare clic sul pulsante Add SSH Key:

Add SSH key

Compilare Key name e incollare la SSH Public key copiata dal terminale. Salvare la chiave premendo Add key:

Paste the key

Ora il vostro account HF è collegato alla chiave SSH pubblica. La seconda parte (chiave privata) è memorizzata sul server. Il passo successivo consiste nell'installare un'estensione specifica di Git LFS (Large File Storage), utilizzata per scaricare file di grandi dimensioni come i modelli di reti neurali. Aprire la propria home directory:

cd ~/

Scaricare ed eseguire lo script di shell. Questo script installa un nuovo repository di terze parti con git-lfs:

curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash

Ora è possibile installarlo utilizzando il gestore di pacchetti standard:

sudo apt-get install git-lfs

Configuriamo git per usare il nostro nickname HF:

git config --global user.name "John"

E collegato all'account di posta elettronica HF:

git config --global user.email "john.doe@example.com"

Scarica il modello

Si noti che StarCoder in formato binario può occupare una quantità significativa di spazio su disco (>75 GB). Non dimenticate di fare riferimento a questo articolo per assicurarvi di utilizzare la partizione montata correttamente.

Tutto è pronto per il download del modello. Aprire la directory di destinazione:

cd /mnt/fastdisk

E avviare il download del repository:

git clone git@hf.co:bigcode/starcoder

Questo processo richiede fino a 15 minuti. Si prega di essere pazienti. È possibile monitorare il processo eseguendo il seguente comando in un'altra console SSH:

watch -n 0.5 df -h

Qui si vedrà come lo spazio libero sul disco montato si riduce, assicurando che il download procede e che i dati vengono salvati. Lo stato si aggiorna ogni mezzo secondo. Per interrompere manualmente la visualizzazione, premere il collegamento Ctrl + C.

Eseguire il modello completo con la WebUI

Clonare il repository del progetto:

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

Aprire la cartella scaricata:

cd text-generation-webui

Eseguire lo script di avvio:

./start_linux.sh --model-dir /mnt/fastdisk

Lo script verificherà la presenza delle dipendenze necessarie sul server. Le dipendenze mancanti saranno installate automaticamente. All'avvio dell'applicazione, aprire il browser Web e digitare il seguente indirizzo:

http://127.0.0.1:7860

Aprire la scheda Model e selezionare il modello scaricato starcoder dall'elenco a discesa. Fare clic sull'elenco Model loader e scegliere Transformers. Impostare il cursore della memoria massima della GPU per ogni GPU installata. Questo è molto importante, poiché impostandolo a 0 si limita l'uso della VRAM e si impedisce il corretto caricamento del modello. È inoltre necessario impostare l'utilizzo massimo della RAM. A questo punto, fare clic sul pulsante Load e attendere il completamento del processo di caricamento:

Load StarCoder model

Passare alla scheda Chat e testare la conversazione con il modello. Si noti che Starcoder non è destinato a dialoghi come ChatGPT. Tuttavia, può essere utile per verificare la presenza di errori nel codice e suggerire soluzioni.

Run the StarCoder

Se volete ottenere un modello di dialogo completo, potete provare altri due modelli: starchat-alpha e starchat-beta. Questi modelli sono stati messi a punto per condurre un dialogo proprio come fa ChatGPT. I comandi seguenti aiutano a scaricare ed eseguire questi modelli:

Per starchat-alpha:

git clone git@hf.co:HuggingFaceH4/starchat-alpha

Per starchat-beta:

git clone git@hf.co:HuggingFaceH4/starchat-beta

La procedura di caricamento è la stessa descritta sopra. Inoltre, è possibile trovare l'implementazione C++ di starcoder, che sarà efficace per l'inferenza della CPU.

Vedere anche:



Aggiornato: 13.03.2025

Pubblicato: 17.01.2025