Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Prompt Caching

Il caching dei prompt riutilizza gli stati key-value calcolati da un LLM per un prefisso di prompt ripetuto, così le richieste successive saltano quel calcolo e costano meno.

Il caching dei prompt, chiamato anche caching dei prefissi, archivia i risultati intermedi calcolati da un modello linguistico di grandi dimensioni (LLM) per l’inizio di un prompt e li riutilizza nelle richieste successive che iniziano con esattamente lo stesso testo. Molte richieste condividono un lungo prefisso invariabile, come un prompt di sistema, definizioni di strumenti, un insieme di esempi, un documento lungo o la conversazione fino a quel momento, seguito da una breve parte nuova. Se la cache trova una corrispondenza, il server elabora solo i nuovi token: si riduce così il tempo al primo token di output e, con le API ospitate, il costo dell’input memorizzato in cache scende a una frazione della tariffa normale.

Come funziona il caching dei prompt#

Un LLM basato su transformer risponde in due fasi. Durante il prefill, ogni livello calcola un vettore key e uno value per ciascun token del prompt; durante la decodifica, ogni nuovo token presta attenzione a tutte queste key e value tramite il meccanismo di attenzione. All’interno di una richiesta, la cache KV conserva questi tensori, così che ogni token generato non debba ricalcolare il prompt. Il caching dei prompt li conserva tra richieste diverse. Poiché l’attenzione in questi modelli è causale, le key e i value di un token dipendono solo dai token precedenti; due prompt con lo stesso prefisso hanno quindi key e value identici per quel prefisso e la copia archiviata può sostituire il ricalcolo.

L’esempio seguente mostra il riutilizzo con GPT-2 di Hugging Face Transformers. Esegue il prefill una sola volta su un prompt di sistema di 409 token, poi risponde a due domande elaborando solo i rispettivi token sopra il prefisso memorizzato in cache e confronta il risultato con un ricalcolo completo:

import copy

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("gpt2")
model = AutoModelForCausalLM.from_pretrained("gpt2")

# A long system prompt shared by every request, followed by different user questions
system = "You answer questions about a camera store. " + "Returns are accepted within 30 days with a receipt. " * 40
questions = [" Question: Can I return a lens?", " Question: Do you ship abroad?"]
prefix_ids = tokenizer(system, return_tensors="pt").input_ids

with torch.no_grad():
    # Prefill the shared prefix once and keep its key-value cache
    prefix_cache = model(prefix_ids).past_key_values
    for question in questions:
        ids = tokenizer(question, return_tensors="pt").input_ids
        # Cache hit: only the question's tokens run through the model
        cached = model(ids, past_key_values=copy.deepcopy(prefix_cache)).logits[0, -1]
        # No cache: the whole prompt is computed from scratch
        full = model(torch.cat([prefix_ids, ids], dim=1)).logits[0, -1]
        same = torch.allclose(cached, full, atol=1e-3)
        print(f"Computed {ids.shape[1]} of {prefix_ids.shape[1] + ids.shape[1]} tokens, same next-token scores: {same}")

Stampa Computed 8 of 417 tokens, same next-token scores: True e Computed 7 of 416 tokens, same next-token scores: True: ogni richiesta ha elaborato con il modello meno del 2% del proprio prompt e ha ottenuto gli stessi punteggi per il token successivo del calcolo completo.

I motori open source di gestione dei modelli applicano automaticamente questo meccanismo. vLLM conserva la cache KV in blocchi di dimensione fissa, la struttura di memoria di PagedAttention, riutilizza i blocchi del prefisso corrispondente più lungo per ogni nuova richiesta ed elimina i blocchi meno usati di recente quando la memoria della GPU scarseggia. RadixAttention di SGLang conserva i prefissi memorizzati in cache in un albero radix, così che le richieste che condividono una qualsiasi porzione iniziale possano riutilizzarla; il paper di SGLang riporta un throughput fino a 6,4 volte superiore rispetto ad altri motori di inferenza all’avanguardia. Il paper Prompt Cache di In Gim e colleghi, presentato a MLSys 2024, estende il riutilizzo oltre i prefissi identici a moduli di prompt dichiarati, come modelli e documenti, e riporta riduzioni del tempo al primo token da 8 volte su GPU a 60 volte su CPU.

Caching dei prompt nelle API LLM#

Le API ospitate rendono disponibile lo stesso meccanismo a pagamento. Il caching dei prompt di OpenAI è attivo per impostazione predefinita nei modelli supportati, mentre il caching dei prompt di Claude di Anthropic si abilita con il campo cache_control, una volta per richiesta o su un massimo di quattro blocchi di contenuto. Anthropic addebita la lettura della cache a un decimo del prezzo di input base o meno e la scrittura nella cache predefinita di cinque minuti a 1,25 volte il prezzo base; ogni accesso riuscito azzera la durata di cinque minuti. Entrambi i fornitori confrontano solo prefissi identici: Anthropic confronta prima gli strumenti, poi il prompt di sistema e infine i messaggi; modificare la definizione di uno strumento invalida tutto ciò che è stato memorizzato in cache dopo di esso. La guida di OpenAI consiglia di inserire prima le istruzioni stabili e il materiale di riferimento e, per ultimi, i dettagli specifici dell’utente.

I carichi di lavoro con lunghi prefissi condivisi ottengono i maggiori vantaggi:

  • Agenti IA: Ogni passaggio invia di nuovo le definizioni degli strumenti e l’intera cronologia, ovvero il prompt del passaggio precedente più l’azione più recente e il relativo risultato.
  • Chatbot: Ogni turno di una conversazione estende il prompt del turno precedente, quindi la cronologia viene memorizzata nella cache fino al nuovo messaggio.
  • Risposte a domande sui documenti: Molte domande su un lungo contratto, report o repository riutilizzano il documento già elaborato, e le pipeline di recupero lo riutilizzano ogni volta che vengono recuperati di nuovo gli stessi passaggi.
  • Prompt few-shot: Decine di esempi fissi vengono calcolati una volta e riutilizzati per ogni input.

I modelli di visione a vocabolario aperto riutilizzano il calcolo dei prompt in modo analogo. Ultralytics YOLOE codifica prompt di classe come "carrello elevatore" con un codificatore di testo MobileCLIP una volta sola, quando viene chiamato set_classes(), e memorizza nel modello i vettori di embedding risultanti, così le predizioni successive saltano del tutto il codificatore di testo; save_prompt_embeddings() li scrive in un file NPZ che una sessione successiva carica con load_prompt_embeddings() invece di eseguire di nuovo il codificatore.

  • Cache KV: Riutilizza chiavi e valori tra i token di una singola generazione. Il prompt caching li riutilizza tra richieste separate.
  • Caching semantico: Memorizza risposte complete e ne restituisce una quando una nuova query ha lo stesso significato di una precedente, saltando del tutto il modello. Il prompt caching continua a eseguire il modello sulla nuova parte del prompt e genera una risposta nuova.
  • Compressione del prompt: Accorcia il prompt stesso, ed è adatta al testo che cambia a ogni richiesta. Le due tecniche si combinano bene: la parte fissa del prompt viene memorizzata nella cache e quella variabile viene compressa.
  • Prompt engineering: Decide cosa dice il prompt. Il caching modifica solo la quantità di prompt che il server ricalcola, e un cache hit lascia invariati i punteggi dei token successivi, a meno degli arrotondamenti in virgola mobile.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning