Vai al contenuto principale

Come eseguire Llama 3 in locale con Ollama e GPT4ALL

Esegui LLaMA 3 in locale con GPT4ALL e Ollama e integralo in VSCode. Poi crea un sistema di recupero Q&A con Langchain e Chroma DB.
Aggiornato 29 set 2026  · 12 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

Eseguire in locale modelli linguistici di grandi dimensioni (LLM) come Llama 3 ha cambiato le carte in tavola nel mondo dell’IA. Con piattaforme come Hugging Face che promuovono la distribuzione locale, ora puoi goderti esperienze private e senza interruzioni con i tuoi modelli.

In questo blog, vedremo perché conviene eseguire in locale LLM come Llama 3 e come accedervi con GPT4ALL e Ollama. Inoltre, parleremo del serving del modello, dell’integrazione di Llama 3 nel tuo workspace e, infine, dell’uso per sviluppare un’applicazione di IA. Non lo useremo solo come chatbot: lo impiegheremo anche per migliorare il flusso di lavoro e costruire progetti.

Perché eseguire Llama 3 in locale?

Eseguire Llama 3 in locale può sembrare impegnativo a causa dei requisiti elevati di RAM, GPU e potenza di calcolo. Tuttavia, i progressi nei framework e nell’ottimizzazione dei modelli lo hanno reso più accessibile che mai. Ecco perché dovresti considerarlo:

  • Accesso senza interruzioni: non dovrai preoccuparti di limiti di utilizzo, downtime o interruzioni improvvise del servizio.
  • Prestazioni migliorate: la generazione delle risposte è rapida, senza lag o latenze. Anche su laptop di fascia media puoi ottenere velocità di circa 50 token al secondo.
  • Sicurezza potenziata: hai il pieno controllo degli input usati per perfezionare il modello e i dati restano localmente sul tuo dispositivo.
  • Costi ridotti: invece di pagare tariffe elevate per accedere alle API o abbonarti a un chatbot online, puoi usare Llama 3 gratuitamente.
  • Personalizzazione e flessibilità: puoi personalizzare i modelli usando gli iperparametri, aggiungere stop token e modificare impostazioni avanzate.
  • Funzionalità offline: una volta scaricato il modello, non ti serve una connessione Internet per usarlo.
  • Proprietà: hai la piena proprietà e controllo sul modello, sui suoi dati e sui suoi output.

Leggi il nostro articolo Pro e contro dell’uso dei Large Language Model (LLM) nel cloud rispetto all’esecuzione in locale per capire meglio se usare gli LLM in locale fa per te.

Usare Llama 3 con GPT4ALL

GPT4ALL è un software open source che ti permette di eseguire i principali modelli linguistici di grandi dimensioni sulla tua macchina locale, anche senza GPU. È facile da usare, quindi accessibile anche a chi non ha un background tecnico.

Inizieremo scaricando e installando GPT4ALL su Windows dalla pagina ufficiale dei download.

Dopo l’installazione, avvia l’applicazione e fai clic sul pulsante “Downloads” per aprire il menu dei modelli. Da lì, scorri e seleziona il modello “Llama 3 Instruct”, quindi fai clic sul pulsante “Download”.

Download del modello Llama 3 nell'applicazione GPT4ALL per Windows.

Al termine del download, chiudi la scheda e seleziona il modello Llama 3 Instruct dal menu a discesa “Choose a model”.

selezione del modello llama 3

Scrivi un prompt e inizia a usarlo come ChatGPT. Il sistema ha installato il toolkit CUDA, quindi utilizza la GPU per generare risposte più veloci.

uso del modello llama3 8b in locale

Usare Llama 3 con Ollama

Ora proviamo il modo più semplice per usare Llama 3 in locale scaricando e installando Ollama.

download del pacchetto di installazione per Ollama

Ollama è uno strumento potente che ti consente di usare gli LLM in locale. È veloce e ricco di funzionalità.

Dopo aver installato Ollama sul tuo sistema, avvia il terminale/PowerShell e digita il comando.

ollama run llama3

Nota: il download del file del modello e l’avvio del chatbot nel terminale richiederanno alcuni minuti.

Scrivi prompt o poni domande, e Ollama genererà la risposta direttamente nel terminale. La chat è velocissima e puoi continuare con domande di approfondimento per esplorare l’argomento.

download e uso di llama 3 in Windows PowerShell

Per uscire dal chatbot, digita semplicemente /bye .

Oltre a questi due software, puoi consultare la guida Eseguire LLM in locale: 7 metodi semplici per esplorare altre applicazioni e framework.

Servire Llama 3 in locale

Eseguire un server locale ti permette di integrare Llama 3 in altre applicazioni e costruire la tua app per compiti specifici.

Avvia il server di inferenza del modello locale digitando il seguente comando nel terminale.

ollama serve

Per verificare che il server sia attivo, vai nell’area di notifica, trova l’icona di Ollama e fai clic con il tasto destro per visualizzare i log.

ollama view logs

Verrai portato nella cartella di Ollama, dove puoi aprire il file `server.log` per visualizzare le informazioni sulle richieste al server tramite API e le informazioni del server con timestamp.

log del server ollama

Accesso all’API con CURL

Puoi accedere al server di inferenza semplicemente usando il comando CURL.

Fornisci il nome del modello e il prompt, e assicurati che lo streaming sia disattivato per ottenere il messaggio completo.

curl http://localhost:11434/api/chat -d '{
  "model": "llama3",
  "messages": [
    { "role": "user", "content": "What are God Particles?" }
  ],
  "stream": false
}'

Il comando CURL è nativo di Linux, ma puoi usarlo anche in Windows PowerShell, come mostrato sotto.

uso di curl per accedere al modello llama3 ospitato in locale

Accesso all’API con il pacchetto Python

Puoi anche installare il pacchetto Python di Ollama con PIP per accedere al server di inferenza.

pip install ollama

Accedere all’API in Python ti dà la possibilità di creare applicazioni e strumenti basati sull’IA, ed è davvero semplice da usare.

Basta passare alla funzione `ollama.chat` il nome del modello e il messaggio, e genererà la risposta.

Nota: nell’argomento message puoi anche aggiungere un system prompt e un assistant prompt per fornire il contesto.

import ollama

response = ollama.chat(
    model="llama3",
    messages=[
        {
            "role": "user",
            "content": "Tell me an interesting fact about elephants",
        },
    ],
)
print(response["message"]["content"])

output generato da llama 3

Il pacchetto Python di Ollama offre anche funzionalità come chiamate asincrone e streaming, che permettono di gestire in modo efficace le richieste API e aumentare la velocità percepita del modello.

In modo analogo all’API di OpenAI, puoi creare una funzione di chat asincrona e poi scrivere codice di streaming usando la funzione async, per interazioni efficienti e rapide con il modello.

import asyncio
from ollama import AsyncClient

async def chat():
    """
    Stream a chat from Llama using the AsyncClient.
    """
    message = {
        "role": "user",
        "content": "Tell me an interesting fact about elephants"
    }
    async for part in await AsyncClient().chat(
        model="llama3", messages=[message], stream=True
    ):
        print(part["message"]["content"], end="", flush=True)


asyncio.run(chat())

Come puoi vedere, il modello mostra i token man mano che vengono generati.

output asincrono e in streaming

Puoi anche usare l’API Python per creare modelli personalizzati, convertire testo in embedding e gestire gli errori. Inoltre puoi copiare, eliminare, effettuare pull e push dei modelli.

Integrazione di Llama 3 in VSCode

Oltre a usare Ollama come chatbot o per generare risposte, puoi integrarlo in VSCode e usare Llama 3 per funzioni come autocompletamento, suggerimenti di codice basati sul contesto, scrittura del codice, generazione di docstring, unit test e altro ancora.

1. Per prima cosa, dobbiamo inizializzare il server di inferenza di Ollama digitando il seguente comando nel terminale.

ollama serve

2. Vai alle estensioni di VSCode, cerca lo strumento "CodeGPT" e installalo. CodeGPT ti consente di collegare qualsiasi provider di modelli tramite chiave API.

CodeGPT nel marketplace di VSCode

3. Configura CodeGPT facendo clic sull’icona della chat di CodeGPT nel pannello a sinistra. Cambia il provider del modello in Ollama e seleziona il modello llama3:8b. Non devi fornire una chiave API, perché lo stiamo eseguendo in locale.

selezione del provider e del modello nell’estensione CodeGPT

4. Scrivi il prompt per generare il codice Python e poi fai clic sul pulsante "Insert the code" per trasferire il codice nel tuo file Python. Puoi anche scrivere istruzioni successive per migliorarlo.

uso di llama 3 in CodeGPT

5. Oltre all’assistente alla programmazione, puoi usare CodeGPT per comprendere il codice, rifattorizzarlo, documentarlo, generare unit test e risolvere problemi.

rifattorizzazione del codice con CodeGPT

Se vuoi sentirti un pro di Python, dai un’occhiata alla guida Configurare VSCode per Python per conoscere le funzionalità di base di VSCode e personalizzarlo secondo le tue esigenze.

Sviluppare un’applicazione di IA in locale

In questa sezione, svilupperemo un’applicazione basata sull’IA che legge file docx da una cartella dedicata, li converte in embedding e li archivia in un archivio vettoriale.

Successivamente, useremo una similarity search per recuperare i significati pertinenti e fornire risposte contestualizzate alle tue domande.

Questa applicazione ti consentirà di cogliere rapidamente l’essenza dei libri e approfondire lo sviluppo dei personaggi.

Directory Books di Abid con file docx

Configurazione

Per prima cosa, installeremo tutti i pacchetti Python necessari per il caricamento dei documenti, l’archivio vettoriale e i framework LLM.

pip install unstructured[docx] langchain langchainhub langchain_community langchain-chroma

Poi avvia il server di inferenza di Ollama.

ollama serve

Caricamento dei documenti

È buona pratica sviluppare e testare il codice in Jupyter Notebook prima di creare l’app.

Caricheremo tutti i file docx dalla cartella usando DirectoryLoader.

from langchain_community.document_loaders import DirectoryLoader

loader = DirectoryLoader("C:/Users/abida/Desktop/Books", glob="**/*.docx")
books = loader.load()
len(books)
4

Puoi creare il tuo chatbot sensibile al contesto seguendo il tutorial Sviluppo di chatbot con ChatGPT & LangChain: un approccio context-aware.

Suddivisione del testo

Fornire l’intero libro al modello non è fattibile, perché supererebbe la sua finestra di contesto. Per superare questo limite, dobbiamo dividere il testo in blocchi più piccoli e gestibili che rientrino comodamente nella finestra di contesto del modello.

Nel nostro caso, convertiremo tutti e quattro i libri in chunk da 500 caratteri.

from langchain_text_splitters import RecursiveCharacterTextSplitter

text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=0)
all_splits = text_splitter.split_documents(books)

Embedding con Ollama e archivio vettoriale Chroma

Useremo Langchain per convertire il testo in embedding e archiviarlo nel database Chroma.

Usiamo il modello Ollama Llama 3 come modello di embedding.

from langchain_chroma import Chroma
from langchain_community.embeddings import OllamaEmbeddings

vectorstore = Chroma.from_documents(
    documents=all_splits,
    embedding=OllamaEmbeddings(model="llama3", show_progress=True),
    persist_directory="./chroma_db",
)
OllamaEmbeddings: 100%|██████████| 23/23 [01:00<00:00,  2.63s/it]

Testiamo il nostro database vettoriale eseguendo alcune ricerche per similarità.

question = "Who is Zahra?"
docs = vectorstore.similarity_search(question)
docs

Abbiamo ottenuto quattro risultati simili alla domanda.

Output della ricerca per similarità

Puoi approfondire il mondo dei database vettoriali e di Chroma DB leggendo il tutorial Come usare Chroma DB: guida passo passo.

Costruire catene Langchain per il sistema di recupero Q&A

Per costruire un vero sistema di domanda e risposta, useremo le chain di Langchain e inizieremo ad aggiungere i moduli.

Nella nostra Q&A chain,

  1. Useremo l’archivio vettoriale come retriever e formatteremo i risultati.
  2. Dopodiché forniremo il prompt RAG. Puoi recuperarlo facilmente dal Langchain Hub.
  3. Poi forniremo la funzione di inferenza Ollama Llama 3.
  4. Infine, effettueremo il parsing dei risultati per mostrare solo la risposta.

In parole povere, prima di passare attraverso il modello Llama 3, alla tua domanda verrà fornito il contesto usando la ricerca per similarità e il prompt RAG.

from langchain import hub
from langchain_community.llms import Ollama
from langchain_core.output_parsers import StrOutputParser
from langchain_core.runnables import RunnablePassthrough

llm = Ollama(model="llama3")

retriever = vectorstore.as_retriever()


def format_docs(docs):
    return "\n\n".join(doc.page_content for doc in docs)


rag_prompt = hub.pull("rlm/rag-prompt")
qa_chain = (
    {"context": retriever | format_docs, "question": RunnablePassthrough()}
    | rag_prompt
    | llm
    | StrOutputParser()
)

Puoi costruire un’applicazione simile usando LLamaIndex. Per farlo, segui il tutorial LlamaIndex: un framework dati per applicazioni basate su Large Language Model (LLM).

Test della chain di recupero Q&A

Fai domande pertinenti sui libri per comprendere meglio la storia.

question = "What is the story of the 'Gené is Missing' book?"
qa_chain.invoke(question)

Come possiamo vedere, usare i libri come contesto fornisce una risposta accurata.

'Based on the provided context, "Gené is Missing" appears to be a mystery novel that revolves around uncovering the truth about Gené\'s life and potential involvement in murders. The story follows different perspectives, including Simon trying to prove his innocence, flashbacks of Gené\'s past, and detective Jacob investigating the case.'

Ora facciamo una domanda su un personaggio.

question = "Who is Arslan?"
qa_chain.invoke(question)

È stata generata una risposta precisa.

'Arslan is Zahra\'s brother\'s best friend. He is someone that Zahra visits in the book "A Boy with Honest Dreams" by Abid Ali Awan to gather information about Ali.'

Costruire l’applicazione di IA

Per creare un’applicazione di IA completa che giri senza intoppi nel tuo terminale, combineremo tutto il codice delle sezioni precedenti in un unico file Python.

code AI_app.py

Inoltre, miglioreremo il codice per abilitare query interattive, permettendoti di porre domande all’app ripetutamente finché non termini esplicitamente la sessione digitando "exit".

from langchain_chroma import Chroma
from langchain_community.embeddings import OllamaEmbeddings
from langchain import hub
from langchain_community.llms import Ollama
from langchain_core.output_parsers import StrOutputParser
from langchain_core.runnables import RunnablePassthrough

# loading the vectorstore
vectorstore = Chroma(persist_directory="./chroma_db", embedding_function=OllamaEmbeddings(model="llama3"))

# loading the Llama3 model
llm = Ollama(model="llama3")

# using the vectorstore as the retriever
retriever = vectorstore.as_retriever()

# formating the docs
def format_docs(docs):
    return "\n\n".join(doc.page_content for doc in docs)

# loading the QA chain from langchain hub
rag_prompt = hub.pull("rlm/rag-prompt")

# creating the QA chain
qa_chain = (
    {"context": retriever | format_docs, "question": RunnablePassthrough()}
    | rag_prompt
    | llm
    | StrOutputParser()
)

# running the QA chain in a loop until the user types "exit"
while True:
    question = input("Question: ")
    if question.lower() == "exit":
        break
    answer = qa_chain.invoke(question)

    print(f"\nAnswer: {answer}\n")



Esegui l’applicazione digitando `Python` e il nome del file nel terminale.

python AI_app.py

Forte. Abbiamo creato la nostra applicazione RAG in locale con poche righe di codice.

Applicazione Python di IA: recupero Q&A

Tutto il codice sorgente di questo tutorial è disponibile nel repository GitHub kingabzpro/using-llama3-locally. Dagli un’occhiata e ricordati di mettere una stella ⭐ al repository.

Conclusione

In questo tutorial, abbiamo imparato a usare Llama 3 in locale su un laptop. Abbiamo anche visto il server di inferenza e come usarlo per integrare Llama 3 in VSCode.

Infine, abbiamo costruito il sistema di recupero Q&A usando Langchain, Chroma e Ollama. I dati non hanno mai lasciato il sistema locale e non hai dovuto spendere un solo dollaro per costruirlo. Oltre alle applicazioni più semplici, puoi creare sistemi complessi con gli stessi strumenti usati in questo tutorial.

Per saperne di più, ti consiglio questi tutorial:

FAQ

Posso eseguire Llama 3 in locale su macOS o Linux, o è solo per Windows?

Sì, puoi eseguire Llama 3 in locale anche su macOS e Linux. Strumenti come Ollama e GPT4ALL offrono supporto multipiattaforma e molte istruzioni di configurazione sono simili tra sistemi operativi.

Quanto spazio su disco richiede in genere Llama 3?

A seconda della dimensione del modello (ad es. 7B, 13B), potresti aver bisogno da 4 GB a oltre 20 GB di spazio su disco. Assicurati di avere spazio sufficiente prima del download, soprattutto se usi più modelli o versioni quantizzate.

Posso fare fine-tuning di Llama 3 in locale dopo il deploy?

Sì, ma il fine-tuning richiede più risorse rispetto all’inferenza. Ti servirà una buona GPU e un framework come Hugging Face Transformers o PEFT (Parameter-Efficient Fine-Tuning) per iniziare.

La GPU è necessaria per eseguire Llama 3 in locale?

No, non è strettamente necessario. Strumenti come GPT4ALL possono eseguire Llama 3 su CPU, ma le prestazioni saranno inferiori. Se vuoi risposte in tempo reale o usare modelli grandi, una GPU è fortemente consigliata.

Posso passare tra più LLM in Ollama?

Sì. Ollama supporta l’esecuzione di modelli diversi come Llama 2, Llama 3 e Mistral. Puoi scaricarli e passare dall’uno all’altro tramite terminale o GUI, a seconda della configurazione.

Come aggiorno un modello Llama 3 che ho già scaricato?

La maggior parte degli strumenti come Ollama consente di rieseguire il pull o aggiornare i modelli. Esegui di nuovo il comando di download o pull: verificherà gli aggiornamenti e sovrascriverà la versione precedente se disponibile.


Abid Ali Awan's photo
Author
Abid Ali Awan
LinkedIn
Twitter

In quanto data scientist certificato, sono appassionato di sfruttare tecnologie all’avanguardia per creare applicazioni di machine learning innovative. Con una solida esperienza in riconoscimento vocale, analisi e reportistica dei dati, MLOps, AI conversazionale e NLP, ho affinato le mie competenze nello sviluppo di sistemi intelligenti in grado di avere un impatto concreto. Oltre alla mia expertise tecnica, sono anche un comunicatore efficace, con il talento di rendere chiari e sintetici concetti complessi. Di conseguenza, sono diventato un blogger molto seguito in ambito data science, condividendo idee ed esperienze con una community in crescita di professionisti dei dati. Attualmente mi concentro sulla creazione e sull’editing di contenuti, lavorando con large language model per sviluppare contenuti potenti e coinvolgenti che possano aiutare aziende e singoli a valorizzare al meglio i propri dati.

Argomenti
Intelligenza artificiale
Large Language Models

Impara l’IA con DataCamp!

Programma

Sviluppare modelli linguistici di grandi dimensioni

16 ore
Impara a sviluppare modelli linguistici di grandi dimensioni (LLM) con PyTorch e Hugging Face, utilizzando le più recenti tecniche di deep learning e NLP.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

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

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

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