Vai al contenuto principale

Tutorial Vicuna-13B: guida all’esecuzione di Vicuna-13B

Una guida completa per eseguire il modello Vicuna-13B tramite un server FastAPI.
Aggiornato 29 set 2026  · 15 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

L’emergere dei large language model ha trasformato interi settori, portando la potenza di tecnologie come GPT-3.5 e GPT-4 di OpenAI in varie applicazioni. Tuttavia, l’alto costo e le preoccupazioni sulla riservatezza dei dati spesso scoraggiano i potenziali adottanti. È qui che entrano in gioco i modelli open source come Vicuna-13B, che offrono prestazioni simili senza i costi elevati e i rischi per le informazioni sensibili.

Per saperne di più su GPT-3.5 e GPT-4, il nostro tutorial Usare GPT-3.5 e GPT-4 tramite l’API di OpenAI in Python è un buon punto di partenza per capire come lavorare con il pacchetto OpenAI per Python e conversare con ChatGPT in modo programmatico.

Che cos’è Vicuna-13B?

Vicuna-13B è un modello conversazionale open source addestrato tramite fine-tuning del modello LLaMa 13B utilizzando conversazioni condivise dagli utenti raccolte da ShareGPT.

Una valutazione preliminare con GPT-4 come giudice ha mostrato che Vicuna-13B raggiunge oltre il 90% della qualità di chatGPT e Google Bard, superando poi altri modelli come LLaMa e Alpaca in oltre il 90% dei casi. Il flusso complessivo di fine-tuning e valutazione è illustrato di seguito:

Flusso di fine-tuning e valutazione di Vicuna-13B (fonte)

Flusso di fine-tuning e valutazione di Vicuna-13B (fonte)

Anche se questo evidenzia la forza di Vicuna-13B, il modello presenta dei limiti ed è poco adatto a compiti come matematica e ragionamento.

Immagine da LMSYSORG modificata dall’autore

Immagine da LMSYSORG modificata dall’autore

Applicazioni di Vicuna-13B

In quanto chatbot intelligente, le applicazioni di Vicuna-13B sono innumerevoli, e alcune sono illustrate di seguito in diversi settori, come assistenza clienti, sanità, istruzione, finanza e viaggi/hospitality.

Cinque applicazioni diverse di Vicuna-13 nella vita reale

Cinque applicazioni diverse di Vicuna-13 nella vita reale

  • Assistenza clienti: grazie alla capacità di fornire servizi 24/7, i chatbot possono supportare i clienti e automatizzare richieste semplici e ripetitive. Ad esempio, Sephora usa chatbot per aiutare i clienti a trovare prodotti, controllare lo stato degli ordini e ottenere consigli di trucco dal loro sito.
  • Sanità: i pazienti possono ottenere rapidamente informazioni sanitarie personalizzate, permettendo agli specialisti di concentrarsi su altre ricerche per nuove terapie. Per esempio, Babylon Health sfrutta chatbot basati su IA per condurre valutazioni sanitarie e monitorare meglio la salute dei pazienti.
  • Istruzione: molte rinomate istituzioni educative, come Duolingo, usano bot di IA in modo creativo per aumentare il coinvolgimento degli studenti e facilitare la comprensione di concetti più avanzati.
  • Finanza: la prima interazione che ho con la mia banca quando ho bisogno di assistenza avviene tramite un bot intelligente, e credo che molte banche, come Wells Fargo, stiano usando tecnologie simili per aiutare i clienti con attività ripetitive come controllare i saldi, trasferire denaro e gestire i conti.
  • Viaggi/hospitality: analogamente ai servizi bancari, i chatbot possono aiutare a trovare le migliori destinazioni in base al budget e ai requisiti di viaggio degli utenti, e persino fungere da concierge virtuale. L’hotel bot Omar dell’Equinox Hotel New York gestisce quasi l’85% delle richieste dei clienti. Questo ha permesso di processare 2600 nuove richieste in meno di tre mesi e generare 150 lead qualificati in soli quattro mesi.

L’elenco sopra non è esaustivo, e il nostro articolo Come l’NLP sta cambiando il futuro della Data Science spiega come l’NLP stia guidando il futuro della data science e del machine learning, le sue applicazioni future, i rischi e come mitigarli.

Importanza e rilevanza dell’imparare a eseguire Vicuna-13B

Alla luce di queste applicazioni reali, non c’è dubbio che la domanda di agenti conversazionali basati su IA come Vicuna-13B sia enorme nei principali settori.

Di conseguenza, padroneggiare come implementare e integrare questa tecnologia nei flussi di lavoro aziendali sta diventando una competenza sempre più richiesta, man mano che più aziende la usano per potenziare il coinvolgimento dei clienti, generare più lead e aumentare il ritorno sugli investimenti.

La buona notizia è che l’obiettivo di questo tutorial è aiutarti a sviluppare le competenze necessarie per eseguire il modello Vicuna-13B e integrarlo in qualsiasi flusso di lavoro dei sistemi informativi aziendali.

Prerequisiti

Prima di entrare nel processo di esecuzione del modello Vicuna-13B, è importante impostare correttamente i prerequisiti, che includono:

  • Comprendere il workflow di Vicuna-13B
  • Configurare l’hardware e il software necessari
  • Ottenere i pesi LLaMa per Vicuna-13B

Una volta soddisfatti questi requisiti, avremo una migliore comprensione dei formati di input e output e saremo in grado di eseguire con successo il modello.

Comprendere il workflow di Vicuna-13B

Avere una migliore comprensione del formato di input e output di Vicuna-13B fornisce allo sviluppatore la conoscenza minima dei fattori che possono influenzare il processo decisionale del modello.

Questa sezione spiega i principali parametri richiesti in input insieme al formato di output atteso del modello Vicuna-13B.

Workflow minimalista dell’end-to-end workflow

Workflow minimalista dell’end-to-end workflow

Vediamo di capire il workflow qui sopra. Per prima cosa, l’utente invia l’input desiderato, che include il prompt, ovvero la richiesta testuale principale per cui vuole una risposta.

Il prompt è fornito insieme ai seguenti parametri aggiuntivi:

  • Max-length: usato per specificare il numero massimo di caratteri che il modello deve considerare nella risposta finale.
  • Temperature: questo valore varia tra 0 e 1. Più è basso, più è deterministico il risultato finale. Al contrario, un valore più alto porta a maggiore casualità, quindi output più vari e creativi.
  • Top-p: usato per controllare la diversità delle predizioni, selezionando i token più probabili la cui probabilità cumulata supera una soglia data. Partendo da zero, un valore più alto aumenta la possibilità di ottenere un output migliore ma richiede più calcolo.
  • Repetition_penalty: se una parola viene menzionata spesso, questo parametro aiuta a evitare di ripeterla eccessivamente, rendendo il risultato più vario.
  • Seed: per garantire un risultato consistente per un dato input su più esecuzioni.
  • Debug: questo parametro può essere utile quando si vuole attivare la modalità di debug, vantaggiosa per diagnosticare il comportamento e le prestazioni del modello.

Dopo aver inviato il prompt con i parametri sopra, il modello Vicuna-13B esegue l’elaborazione necessaria dietro le quinte per generare l’output richiesto, che corrisponde al seguente schema:

  • Text: l’output testuale generato dal modello Vicuna
  • Metadata: alcune informazioni aggiuntive generate dal modello. Un’analisi approfondita è fornita nelle prossime sezioni.

Configurare hardware e software necessari

Ora che abbiamo compreso meglio input e output, possiamo procedere a identificare le principali librerie per eseguire con successo il modello vicuna.

  • Conda: garantisce un ambiente pulito e isolato per le dipendenze del modello vicuna.
  • FastAPI: fornisce un framework moderno per sviluppare l’API del modello Vicuna con analisi automatica del prompt dell’utente.
  • Uvicorn: serve l’applicazione FastAPI del modello Vicuna, garantendo prestazioni efficienti e affidabili.
  • LLaMa.cpp: gestisce la complessità di elaborazione dei large language model che compongono il modello vicuna.

Crea l’ambiente virtuale

Tutti i comandi di questa sezione si eseguono da terminale. Con il comando conda create, creiamo un ambiente virtuale chiamato vicuna-env.

conda create --name vicuna-env

Dopo aver creato con successo l’ambiente virtuale, lo attiviamo usando il comando conda activate, come segue:

conda activate vicuna-env

Il comando sopra dovrebbe mostrare il nome dell’ambiente tra parentesi all’inizio del terminale, come segue:

Nome dell’ambiente virtuale dopo l’attivazione

Nome dell’ambiente virtuale dopo l’attivazione

Installazione delle librerie

Le librerie sopra possono essere installate in due modi. Il primo è eseguire manualmente pip install per ogni libreria: può richiedere tempo quando le librerie sono molte e non è ottimale in contesti aziendali.

La seconda opzione è la migliore e usa un file requirements.txt contenente tutte le librerie richieste. Di seguito il contenuto del file requirements.txt, insieme all’installazione con un unico comando pip install.

# Content of the requirements.txt file

llama-cpp-python==0.1.48
fastapi 
uvicorn[standard]

Tutte e tre le librerie possono essere installate come segue:

pip install -r requirements.txt

Ottenere i pesi LLaMa

Dalla piattaforma Hugging Face, possiamo scaricare i pesi del modello Vicuna come mostrato di seguito:

Due passaggi principali per scaricare i pesi di Vicuna-13B da Hugging Face

Due passaggi principali per scaricare i pesi di Vicuna-13B da Hugging Face

Per una migliore organizzazione del codice, possiamo spostare i pesi del modello scaricato in una nuova cartella model.

Packaging e creazione di un’API

Sebbene i prerequisiti siano soddisfatti per eseguire il modello da riga di comando, distribuire un’API che interagisca con il modello è un approccio più pratico. Renderà il modello facilmente accessibile a un pubblico più ampio.

Per arrivare a questo livello, servono i seguenti passaggi:

  • Caricare il modello dalla macchina locale
  • Costruire un’API per esporre il modello

La struttura complessiva del sorgente è riportata sotto e il codice completo è disponibile su GitHub.

------ model
         |------- ggml-vicuna-13b-4bit.bin

------ requirements.txt
------ vicuna_app.py
  • ggml-vicuna-13b-4bit.bin è il peso del modello scaricato nella cartella model
  • requirements.txt contiene le dipendenze per eseguire il modello
  • vicuna_app.py contiene il codice Python per creare l’API, che è il focus principale di questa sezione.

Definizione delle rotte principali dell’API

Nel nostro caso, servono le due rotte principali seguenti. Prima, dobbiamo importare le librerie pertinenti, caricare il modello e creare un’istanza del modulo FastAPI.

# Import the libraries
from fastapi import FastAPI, HTTPException
from llama_cpp import Llama

# Load the model 
vicuna_model_path = "./model/ggml-vicuna-13b-4bit.bin"
vicuna_model = Llama(model_path=vicuna_model_path)

app = FastAPI()
  • Prima rotta: la rotta di default "/” restituisce il seguente JSON “Message”: “Welcome to the Vicuna Demo FastAPI” tramite la funzione home(), che non accetta parametri.
# Define the default route
@app.get("/")
def home():
   return {"Message": "Welcome to the Vicuna Demo FastAPI"}
  • Seconda rotta: “/vicuna_says” responsabile dell’attivazione della funzione answer_prompt(), che prende come parametro il prompt dell’utente e restituisce una risposta JSON contenente il risultato del modello Vicuna e alcune metainformazioni aggiuntive.
@app.post("/vicuna_says")
def answer_prompt(user_prompt):

   if (not (user_prompt)):
       raise HTTPException(status_code=400,
                           detail="Please Provide a valid text message")

   response = vicuna_model(user_prompt)

   return {"Answer": response}

Esecuzione delle rotte

Possiamo finalmente eseguire l’API con il seguente comando da riga di comando, nella cartella in cui si trova il file vicuna_app.py.

uvicorn vicuna_app:app --reload
  • uvicorn avvia il server Uvicorn.
  • vicuna_app: corrisponde al file Python vicuna_app.py. È la parte a sinistra dei due punti “:”.
  • app: corrisponde all’oggetto creato dentro il file vicuna_app.py con l’istruzione app = FastAPI(). Se il file si chiamasse main.py il comando sarebbe uvicorn main:app --reload
  • --reload: opzione usata per riavviare il server dopo ogni modifica al codice. Tieni presente che va usata solo in fase di sviluppo, non in produzione.

Ecco il risultato ottenuto eseguendo il comando precedente: si vede che il server è in esecuzione sul localhost sulla porta 8000 (http://127.0.0.1:8000)

URL dell’API in esecuzione su localhost

URL dell’API in esecuzione su localhost

Accedere alla rotta di default è semplice. Basta digitare il seguente URL in un qualsiasi browser.

Risposta dalla rotta di default

Risposta dalla rotta di default

E qui viene la parte interessante. L’URL http://127.0.0.1:8000/docs fornisce una dashboard completa per interagire con l’API, e sotto c’è il risultato.

Visualizzazione grafica delle due rotte

Visualizzazione grafica delle due rotte

Dall’immagine precedente, selezionando /vicuna_says nel riquadro verde otteniamo la guida completa per interagire con la nostra API, come mostrato di seguito.

I tre passaggi principali per eseguire il prompt dell’utente

I tre passaggi principali per eseguire il prompt dell’utente

Seleziona la scheda Try it out e inserisci il messaggio per cui vuoi la predizione nel campo text_message.

Infine otteniamo il seguente risultato dopo aver selezionato il pulsante Execute.

Risposta del server dal modello Vicuna alla richiesta dell’utente

Risposta del server dal modello Vicuna alla richiesta dell’utente

La risposta del modello Vicuna è fornita nel campo “text”, e il risultato è davvero notevole.

Vengono fornite anche metainformazioni aggiuntive, come il modello utilizzato, la data di creazione della risposta, il numero di token nel prompt e il numero di token nella risposta, solo per citarne alcune.

Alcuni spunti su come il deployment facilita l’uso di Vicuna-13B

Distribuire un modello così potente migliora l’esperienza utente e l’efficienza operativa in diversi modi significativi, tra cui ma non solo:

  • Facilità di accesso: il deployment consente di accedere al modello tramite API, eliminando la necessità di scaricarlo e configurarlo in locale.

  • Gestione delle risorse: risorse server adeguate possono gestire più richieste simultanee, fornendo un servizio affidabile.

  • Scalabilità: le risorse possono essere scalate per soddisfare la crescente domanda degli utenti, garantendo prestazioni costanti.

  • Aggiornamenti e manutenzione: aggiornamenti e manutenzione centralizzati assicurano che gli utenti abbiano sempre accesso alla versione più recente del modello.

  • Integrazione: un’integrazione più semplice con altri sistemi e applicazioni amplia i potenziali casi d’uso e la versatilità del modello.


In generale, il deployment rende l’uso di vicuna-13B più accessibile, affidabile e versatile, ampliandone l’applicabilità per vari utenti e applicazioni.

Best practice e suggerimenti per Vicuna-13B

Quando lavori con il modello Vicuna-13B, alcune best practice e suggerimenti possono aiutarti a ottimizzare l’esperienza, i risultati e a risolvere i problemi comuni.

Consigli per ottimizzare le prestazioni del modello Vicuna-13B

Seguendo queste best practice e questi consigli, potrai assicurarti un’esperienza più fluida e risultati migliori quando lavori con il modello Vicuna-13B.

4 consigli per ottimizzare le prestazioni del modello Vicuna-13B

4 consigli per ottimizzare le prestazioni del modello Vicuna-13B

  • Ottimizzazione hardware: assicurati che il server che ospita Vicuna-13B disponga di RAM e CPU sufficienti per gestire in modo efficiente le esigenze computazionali del modello.
  • Batch processing: sfrutta le capacità di elaborazione parallela del modello processando i dati in batch, quando possibile.
  • Caching dei risultati: implementa il caching dei risultati di query comuni per ridurre i calcoli ridondanti e migliorare i tempi di risposta.
  • Preprocessing dell’input: preelabora i dati di input per assicurarti che siano nel formato ottimale per il modello, contribuendo a migliorare sia l’accuratezza sia le prestazioni.

Risoluzione dei problemi comuni

Oltre all’ottimizzazione delle prestazioni, è importante saper risolvere i problemi comuni che possono sorgere durante l’uso di Vicuna-13B; di seguito quattro esempi:

Alcuni problemi comuni di troubleshooting

Alcuni problemi comuni di troubleshooting

  • Errori di memoria: se si verificano errori di memoria, valuta opzioni come aumentare la RAM del server o ottimizzare la dimensione dell’input per renderla più gestibile dal modello.
  • Tempi di risposta lenti: aggiorna la CPU del server o utilizza il batch processing per ridurre i tempi di risposta lenti del modello.
  • Output non corretti: in caso di output errati o inattesi, esamina attentamente i dati di input per individuare eventuali anomalie o errori che potrebbero influenzare i risultati.
  • Problemi di integrazione: se riscontri difficoltà a integrare Vicuna-13B con altri sistemi o applicazioni, rivedi attentamente la documentazione dell’API e verifica che tutti i punti di integrazione siano configurati correttamente.

Conclusione

In sintesi, questo articolo ha fornito una panoramica completa su come configurare e utilizzare il modello Vicuna-13B. Abbiamo coperto i prerequisiti necessari, tra cui hardware, software e l’ottenimento dei pesi LLaMa essenziali per eseguire correttamente il modello.

Sono state fornite istruzioni dettagliate per configurare l’ambiente di lavoro, installare il software richiesto e impostare i pesi di Vicuna-13B, sottolineando l’importanza dei pesi nei modelli linguistici.

Abbiamo inoltre approfondito il packaging e il deployment di Vicuna-13B, evidenziando come il deployment ne faciliti l’utilizzo come interfaccia web e API.

Infine, sono stati condivisi suggerimenti pratici per interagire con Vicuna-13B, esempi delle sue capacità e best practice per ottimizzarne le prestazioni e risolvere i problemi comuni.

Pronto a immergerti più a fondo nel mondo dell’IA e del machine learning? Migliora le tue competenze con il potente framework di deep learning usato dai professionisti dell’IA. Iscriviti oggi al corso Deep Learning con PyTorch.


Zoumana Keita 's photo
Author
Zoumana Keita
LinkedIn
Twitter

Un data scientist poliedrico che ama condividere le proprie conoscenze e restituire valore agli altri, Zoumana è un content creator su YouTube e un top writer tech su Medium. Trova soddisfazione nel parlare in pubblico, programmare e insegnare. Zoumana ha due lauree magistrali: la prima in informatica con specializzazione in Machine Learning conseguita a Parigi, Francia, e la seconda in Data Science alla Texas Tech University negli Stati Uniti. Ha iniziato la sua carriera come Software Developer presso Groupe OPEN in Francia, per poi passare a IBM come Machine Learning Consultant, dove ha sviluppato soluzioni di IA end-to-end per compagnie assicurative. Successivamente, è entrato in Axionable, la prima startup di Sustainable AI con sede a Parigi e Montréal. Lì ha lavorato come Data Scientist e ha implementato prodotti di IA, principalmente casi d’uso di NLP, per clienti in Francia, Montréal, Singapore e Svizzera. Inoltre, ha dedicato il 5% del suo tempo ad attività di Ricerca e Sviluppo. Attualmente lavora come Senior Data Scientist presso IFC - World Bank Group.

Argomenti
Intelligenza artificiale

Inizia oggi il tuo percorso nell’IA!

Corso

Comprendere l'intelligenza artificiale

2 ore
426.1K
Impara i concetti di base dell'Intelligenza Artificiale, come l'apprendimento automatico, l'apprendimento profondo, l'NLP, l'IA generativa e altro ancora.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

Mostra AltroMostra Altro