Memorizzazione nella cache delle query LLM per miglioramenti in termini di prestazioni e costi
Che cos'è GPTCache? Stai cercando di migliorare le prestazioni della tua applicazione basata su un modello linguistico di grandi dimensioni (LLM) riducendo al contempo le spese? Non cercare oltre: una cache semantica per archiviare le risposte degli LLM è ciò che fa per te. La memorizzazione nella cache delle risposte degli LLM può ridurre significativamente il tempo necessario per recuperare i dati, ridurre le spese delle chiamate API e migliorare la scalabilità. Inoltre, personalizzando la cache e monitorandone le prestazioni, puoi ottimizzarla per renderla più efficiente. In questo blog, presenteremo GPTCache, una cache semantica open-source per archiviare le risposte degli LLM, e forniremo suggerimenti su come implementarla per ottenere i migliori risultati. Continua a leggere per saperne di più su come la memorizzazione nella cache delle query LLM possa aiutarti a ottenere prestazioni migliori e risparmi sui costi.
Perché usare una cache semantica per archiviare gli LLM?
Creare una cache semantica per archiviare le risposte degli LLM (Large Language Model) può offrire diversi vantaggi, come:
- Prestazioni migliorate: Archiviare le risposte degli LLM in una cache può ridurre significativamente il tempo necessario per recuperare la risposta, soprattutto quando è già stata richiesta in precedenza ed è già presente nella cache. Archiviare le risposte in una cache può migliorare le prestazioni complessive della tua applicazione.
- Spese ridotte: La maggior parte dei servizi LLM addebita tariffe basate su una combinazione del numero di richieste e del conteggio dei token. La memorizzazione nella cache delle risposte degli LLM può ridurre il numero di chiamate API effettuate al servizio, traducendosi in risparmi sui costi. La memorizzazione nella cache è particolarmente rilevante quando si gestiscono livelli di traffico elevati, dove le spese per le chiamate API possono essere sostanziali.
- Migliore scalabilità: La memorizzazione nella cache delle risposte degli LLM può migliorare la scalabilità della tua applicazione riducendo il carico sul servizio LLM. La memorizzazione nella cache aiuta a evitare colli di bottiglia e garantisce che l'applicazione possa gestire un numero crescente di richieste.
- Personalizzazione: Una cache semantica può essere personalizzata per archiviare le risposte in base a requisiti specifici, come il tipo di input, il formato di output o la lunghezza della risposta. Questo può aiutare a ottimizzare la cache e renderla più efficiente.
- Riduzione della latenza di rete: Una cache semantica situata più vicino all'utente riduce il tempo necessario per recuperare i dati dal servizio LLM. Riducendo la latenza di rete, puoi migliorare l'esperienza utente complessiva.
Creare una cache semantica per archiviare le risposte degli LLM può offrire diversi vantaggi, tra cui prestazioni migliorate, spese ridotte, migliore scalabilità, personalizzazione e riduzione della latenza di rete.
Che cos'è GPTCache?
Durante la creazione dell'applicazione demo di ChatGPT, OSS Chat, abbiamo notato che le prestazioni iniziavano a degradare e le tariffe del servizio aumentavano man mano che la testavamo. Questo ci ha fatto capire che avevamo bisogno di un meccanismo di cache per contribuire a contrastare il degrado delle prestazioni e l'aumento dei costi. Quando abbiamo iniziato a costruire questo livello di cache, ci siamo resi conto che poteva essere utile alla comunità, quindi abbiamo deciso di renderlo open-source come GPTCache.
GPTCache è uno strumento open-source progettato per migliorare l'efficienza e la velocità delle applicazioni basate su GPT implementando una cache per archiviare le risposte generate dai modelli linguistici. GPTCache consente agli utenti di personalizzare la cache in base alle proprie esigenze, comprese opzioni per funzioni di embedding, funzioni di valutazione della similarità, posizione di archiviazione ed eliminazione. Inoltre, GPTCache attualmente supporta l'interfaccia OpenAI ChatGPT e l'interfaccia LangChain.
Embedding supportati
GPTCache offre anche una gamma di opzioni per estrarre embedding dalle richieste per la ricerca per similarità. Inoltre, lo strumento offre un'interfaccia generica che supporta più API di embedding, consentendo agli utenti di scegliere quella che meglio si adatta alle loro esigenze. L'elenco delle API di embedding supportate include:
- API di embedding OpenAI
- ONNX con il modello GPTCache/paraphrase-albert-onnx
- API di embedding Hugging Face
- API di embedding Cohere
- API di embedding fastText
- API di embedding SentenceTransformers
Queste opzioni offrono agli utenti una gamma di scelte per le funzioni di embedding, che possono influire sull'accuratezza e sull'efficienza della funzionalità di ricerca di similarità in GPTCache. GPTCache mira a fornire flessibilità e a soddisfare una gamma più ampia di casi d'uso supportando più API.
Archiviazione della cache
GPTCache fornisce supporto per l'archiviazione delle risposte memorizzate nella cache in una varietà di sistemi di gestione di database. Lo strumento supporta diversi database popolari, tra cui:
- SQLite
- PostgreSQL
- MySQL
- MariaDB
- SQL Server
- Oracle
Il supporto di database popolari significa che gli utenti possono scegliere il database più adatto alle loro esigenze, in base a prestazioni, scalabilità e costo. Inoltre, GPTCache offre un'interfaccia universalmente accessibile per estendere il modulo, consentendo agli utenti di aggiungere supporto per diversi sistemi di database se necessario.
Opzioni di Vector Store
GPTCache supporta un modulo Vector Store, che aiuta a trovare le K richieste più simili in base agli embedding estratti dalla richiesta di input. Questa funzionalità può aiutare a valutare la similarità tra le richieste. GPTCache fornisce un'interfaccia intuitiva che supporta vari vector store, tra cui Milvus, Zilliz Cloud e FAISS.
Queste opzioni offrono agli utenti una gamma di scelte per i vector store, che possono influire sull'efficienza e sull'accuratezza della funzionalità di ricerca di similarità in GPTCache. GPTCache mira a fornire flessibilità e a soddisfare una gamma più ampia di casi d'uso supportando più vector store. Prevediamo inoltre di supportare altri database vettoriali nel prossimo futuro.
Gestione della politica di eliminazione
Cache Manager in GPTCache controlla le operazioni sia dei moduli Cache Storage sia Vector Store. Quando la cache diventa piena, una politica di sostituzione determina quali dati eliminare per fare spazio a nuovi dati. GPTCache attualmente supporta due opzioni di base:
- Politica di eliminazione LRU (Least Recently Used)
- Politica di eliminazione FIFO (First In, First Out)
Entrambe sono politiche di eliminazione standard utilizzate nei sistemi di caching.
Valutatore di similarità
Il modulo Similarity Evaluator in GPTCache raccoglie dati da Cache Storage e Vector Store. Utilizza varie strategie per determinare la similarità tra la richiesta di input e le richieste dal Vector Store. La similarità determina se una richiesta corrisponde alla cache. GPTCache fornisce un'interfaccia standardizzata per integrare varie strategie di similarità e una raccolta di implementazioni. Queste diverse strategie di similarità consentono a GPTCache di offrire flessibilità nel determinare le corrispondenze della cache in base ad altri casi d'uso ed esigenze.
In sintesi
GPTCache è un progetto volto a ottimizzare l'uso dei modelli linguistici nelle applicazioni basate su GPT riducendo la necessità di generare ripetutamente risposte da zero e utilizzando invece una risposta memorizzata nella cache quando applicabile. GPTCache è un progetto open-source, quindi dagli un'occhiata di persona. Ci piacerebbe ricevere il tuo feedback oppure puoi persino aiutare a contribuire al progetto!
Scopri di più
Continua a leggere

Introducing Zilliz Cloud Global Cluster: Region-Level Resilience for Mission-Critical AI
Zilliz Cloud Global Cluster delivers multi-region resilience, automatic failover, and fast global AI search with built-in security and compliance.

DeepSeek-OCR Explained: Optical Compression for Scalable Long-Context and RAG Systems
Discover how DeepSeek-OCR uses visual tokens and Contexts Optical Compression to boost long-context LLM efficiency and reshape RAG performance.

8 Latest RAG Advancements Every Developer Should Know
Explore eight advanced RAG variants that can solve real problems you might be facing: slow retrieval, poor context understanding, multimodal data handling, and resource optimization.



