Vai al contenuto

Glossario

I termini che incontri nei log, nella documentazione e in questo corso, in ordine alfabetico. Le voci in inglese restano in inglese perché è così che le troverai in --help e nei messaggi del programma.

Termine Significato
Alias (-a) Nome con cui il server presenta il modello nell'API (/v1/models, campo model), indipendente dal nome del file.
API key Chiave segreta che il client manda come Authorization: Bearer …; il server la verifica se avviato con --api-key o --api-key-file. /health è escluso dal controllo.
Backend Implementazione dei calcoli di ggml per un tipo di hardware: CPU, CUDA (NVIDIA), Metal (Apple), Vulkan, HIP/ROCm (AMD), SYCL (Intel), RPC (remoto)… Il binario sceglie quello disponibile.
Batch (-b, -ub) Numero massimo di token elaborati in un colpo durante il prompt processing: -b logico, -ub fisico. Più grande = prompt più veloce ma più memoria.
Batching continuo Il server elabora nello stesso llama_decode i token di più richieste (slot) contemporaneamente; una richiesta nuova entra senza aspettare che le altre finiscano.
Build (bNNNNN) Numero progressivo della build notturna di llama.cpp (es. b11046). Le release vX.Y.Z puntano a una build. llama version li stampa entrambi.
Chat template Modello Jinja, salvato nei metadati del GGUF, che trasforma la lista di messaggi (system/user/assistant/tool) nel testo che il modello si aspetta. --jinja (default) lo usa; --chat-template lo sovrascrive.
Contesto (-c, n_ctx) Numero massimo di token (prompt + risposta) che il modello tiene "in mente". -c 0 usa quello nativo del modello. Nel server è totale e si divide tra gli slot.
Context shift Quando il contesto è pieno, il server scarta i token più vecchi per continuare (--context-shift, disabilitato di default).
Decodifica speculativa Un modello bozza (draft) piccolo propone più token, il modello grande li verifica in un solo passaggio: stessa qualità, meno tempo per token. -md, --spec-type draft-simple, o varianti senza draft (ngram-*).
Draft model Il modello bozza della decodifica speculativa: stessa famiglia e stesso tokenizer del modello principale, molto più piccolo.
Embedding Vettore di numeri che rappresenta il significato di un testo; testi simili hanno vettori vicini. llama serve --embedding, endpoint /v1/embeddings. Base del RAG.
Flash Attention (-fa) Implementazione dell'attenzione che usa meno memoria e, su GPU, è più veloce; necessaria per la KV cache quantizzata. auto di default.
fit (--fit) Adattamento automatico dei parametri non impostati (contesto, offload) alla memoria disponibile. Comodo, ma in produzione fissa i valori esplicitamente.
ftype Tipo di quantizzazione prevalente di un GGUF, mostrato nel banner (es. Q8_0, Q4_K_M, F16).
GBNF Grammatica in formato BNF di llama.cpp che vincola i token generabili: garantisce output in un formato (JSON, lista, SQL). Il JSON Schema viene convertito in GBNF.
GGUF Formato di file di llama.cpp: pesi del modello (eventualmente quantizzati) + metadati (architettura, tokenizer, chat template). Un solo file, mappabile in memoria.
ggml Libreria tensoriale in C su cui è costruito llama.cpp: definisce i tensori, il grafo di calcolo e i backend.
gguf-split Strumento per dividere un GGUF grande in più file (-00001-of-00006.gguf) o riunirli; llama.cpp li carica dal primo pezzo.
Grammatica Vedi GBNF.
Health check GET /health: 200 {"status":"ok"} quando il modello è pronto, 503 mentre carica. Usato da Compose, Kubernetes, uptime monitor.
HF (-hf) Hugging Face, il sito da cui si scaricano i modelli. -hf utente/repo[:quant] scarica e mette in cache; HF_TOKEN per i repo con accesso limitato.
imatrix Matrice di importanza: statistiche raccolte su un testo di calibrazione che dicono al quantizzatore quali pesi contano di più. Migliora molto le quantizzazioni a pochi bit.
Infill (FIM) Completamento "nel mezzo" di un testo dato prefisso e suffisso; usato dagli assistenti di codice. Endpoint /infill.
JSON Schema Descrizione formale della forma di un JSON (campi, tipi, obbligatori). Con response_format: {"type":"json_schema", …} il server lo converte in grammatica e garantisce output conforme.
KL divergence (KLD) Misura di quanto la distribuzione dei token di un modello quantizzato si discosta da quella del modello di riferimento: più precisa della perplexity per confrontare quantizzazioni.
KV cache Memoria che conserva chiavi e valori dell'attenzione per i token già elaborati, così non vanno ricalcolati. Cresce linearmente con il contesto; quantizzabile con -ctk/-ctv.
KV unified (--kv-unified) Un'unica KV cache condivisa tra gli slot invece di N fette fisse: gli slot possono usare contesti diversi.
Latenza al primo token (TTFT) Tempo tra l'invio della richiesta e il primo token ricevuto; dipende dal prompt processing e dall'attesa in coda.
LoRA Adattatore a basso rango che modifica un modello base senza riscriverne i pesi; llama.cpp lo carica con --lora e lo può attivare per richiesta.
Load mode (--load-mode) Come leggere il file: mmap (mappato in memoria, default), mlock (bloccato in RAM), dio (I/O diretto). Sostituisce i vecchi --mmap/--mlock.
Metrics GET /metrics in formato Prometheus (attivo con --metrics): contatori e gauge llamacpp:* su token, tempi, richieste in corso e in coda.
mmproj Proiettore multimodale: file GGUF separato che collega un encoder di immagini/audio al modello linguistico. Con -hf viene scaricato in automatico.
MoE (Mixture of Experts) Architettura in cui ogni token attiva solo alcuni "esperti" (sottoreti): molti parametri su disco, pochi attivi per token. -cmoe tiene gli esperti su CPU.
MTP Multi-Token Prediction: testa aggiuntiva del modello (es. gemma-4) usata come draft nella decodifica speculativa (--spec-type draft-mtp).
Offload (-ngl) Numero di layer del modello spostati sulla GPU (all, auto o un numero); il resto resta su CPU (inferenza ibrida).
Perplexity (PPL) Misura di quanto il modello è "sorpreso" da un testo: più bassa è meglio. llama perplexity la calcola; utile per confrontare quantizzazioni dello stesso modello sullo stesso testo.
pp / tg Prompt processing / token generation: le due velocità (token/s) misurate da llama bench (pp512, tg128). pp è limitata dal calcolo, tg dalla banda di memoria.
Prompt caching Il server riusa la KV cache di un prefisso già visto (system prompt, conversazione precedente): quei token non vengono rielaborati. --cache-reuse N permette il riuso anche con spostamenti.
Prompt injection Testo ostile dentro un documento o una pagina che il modello legge e scambia per istruzioni; pericoloso quando il modello può chiamare strumenti.
Quantizzazione Rappresentare i pesi con meno bit (8, 5, 4, 3, 2) per ridurre memoria e aumentare la velocità, perdendo un po' di qualità. Tipi: Q8_0, Q4_K_M, IQ4_XS…
RAG Retrieval-Augmented Generation: cercare i passaggi pertinenti in un archivio (con gli embedding) e passarli nel prompt, così il modello risponde su dati tuoi e cita le fonti.
Reasoning / thinking Modelli che "pensano" prima di rispondere, producendo un blocco di ragionamento. -rea on|off|auto, --reasoning-budget N, --reasoning-format; per richiesta chat_template_kwargs: {"enable_thinking": false}.
Reranker Modello che dà un punteggio di pertinenza a coppie (domanda, documento); usato dopo la ricerca vettoriale per riordinare i risultati. --rerank --pooling rank, /v1/rerank.
Reverse proxy Server (Caddy, Nginx) che sta davanti a llama serve: termina HTTPS, autentica, limita, logga; il server resta su 127.0.0.1.
Router mode llama serve senza modello: carica e scarica modelli su richiesta (dalla cache, da --models-dir o da un preset .ini) e inoltra ogni richiesta all'istanza giusta in base al campo model.
RPC Backend che esegue parte del modello su un'altra macchina (ggml-rpc-server); senza autenticazione: solo in rete privata.
Sampling (campionamento) Come si sceglie il prossimo token tra i candidati: --temp, --top-k, --top-p, --min-p, penalità di ripetizione, --seed.
Slot Unità di lavoro del server: ogni slot serve una richiesta alla volta con la sua fetta di contesto. -np N = N slot; /slots ne mostra lo stato.
SSE (Server-Sent Events) Formato dello streaming HTTP usato con "stream": true: righe data: {...} fino a data: [DONE]. Il proxy non deve bufferizzarlo.
systemd unit File .service che descrive come avviare, riavviare e confinare un processo su Linux; Environment=LLAMA_ARG_* per configurare il server.
Thread (-t) Thread CPU usati per la generazione: di norma = core fisici. -tb per il prompt processing, --threads-http per le connessioni HTTP.
Token Unità di testo del modello (pezzo di parola, parola, simbolo): ~0,7 parole in italiano. Tutto si misura in token: contesto, velocità, costi. /tokenize mostra la suddivisione.
Tool calling Il modello, dato l'elenco degli strumenti (tools nell'API), risponde con una chiamata strutturata (tool_calls) che il tuo codice esegue; il risultato torna al modello con role: tool.
VRAM Memoria della GPU: ci devono stare i layer offloadati e la relativa KV cache.
Web UI Interfaccia web integrata in llama serve (su /): chat, allegati, impostazioni; --no-webui la disattiva.