Incontra GPTCache una libreria per lo sviluppo di una cache semantica per le query di LLM.

Incontra GPTCache, una libreria per la cache semantica delle query di LLM.

ChatGPT e i grandi modelli di linguaggio (LLM) sono estremamente flessibili, permettendo la creazione di numerosi programmi. Tuttavia, i costi associati alle chiamate API di LLM possono diventare significativi quando l’applicazione guadagna popolarità e sperimenta un aumento del traffico. Nel processare molte query, i servizi LLM possono anche avere tempi di attesa lunghi.

Per affrontare questa difficoltà, i ricercatori hanno sviluppato GPTCache, un progetto volto a creare una cache semantica per memorizzare le risposte di LLM. Un programma GPTCache open-source può rendere i LLM più veloci memorizzando in cache le loro risposte di output. Quando la risposta è stata richiesta in precedenza e è già memorizzata in cache, ciò può ridurre drasticamente il tempo necessario per ottenerla.

GPTCache è flessibile e semplice, rendendolo ideale per qualsiasi applicazione. È compatibile con molti modelli di apprendimento del linguaggio (LLM), come il ChatGPT di OpenAI.

Come funziona?

Per funzionare, GPTCache memorizza in cache le risposte finali di LLM. La cache è un buffer di memoria utilizzato per recuperare rapidamente le informazioni utilizzate di recente. Quando viene effettuata una nuova richiesta a LLM, GPTCache inizialmente controlla nella cache per determinare se la risposta richiesta è già memorizzata. Se la risposta può essere trovata nella cache, verrà restituita immediatamente. Se la risposta non è già presente, LLM genererà la risposta e la aggiungerà alla cache.

L’architettura modulare di GPTCache semplifica l’implementazione di soluzioni di caching semantiche personalizzate. Gli utenti possono personalizzare la loro esperienza con ciascun modulo selezionando diverse impostazioni.

L’Adattatore LLM unifica le API e i protocolli di richiesta utilizzati da vari modelli di LLM standardizzandoli sull’API di OpenAI. Poiché l’Adattatore LLM può passare tra modelli di LLM senza richiedere una riscrittura del codice o familiarità con una nuova API, semplifica i test e le sperimentazioni.

Il Generatore di Embedding crea embedding utilizzando il modello richiesto per eseguire una ricerca di similarità. L’API di embedding di OpenAI può essere utilizzata con i modelli supportati. Questi includono ONNX utilizzando il modello GPTCache/paraphrase-albert-onnx, l’API di embedding di Hugging Face, l’API di embedding di Cohere, l’API di embedding di fastText e l’API di embedding di SentenceTransformers.

Nella Memoria Cache, le risposte dai LLM come ChatGPT vengono conservate fino a quando possono essere recuperate. Quando si determina se due entità sono semanticamente simili, le risposte memorizzate vengono recuperate e inviate alla parte richiedente. GPTCache è compatibile con diversi sistemi di gestione di database. Gli utenti possono scegliere il database che meglio soddisfa i loro requisiti in termini di prestazioni, scalabilità e costo dei database supportati più comunemente.

Scelte per il Vettore di Archiviazione: GPTCache include un modulo di Vettore di Archiviazione, che utilizza embedding derivati dalla richiesta originale per identificare le K richieste più simili. Questa funzionalità può essere utilizzata per determinare quanto due richieste siano simili. Inoltre, GPTCache supporta molti vettori di archiviazione, come Milvus, Zilliz Cloud e FAISS, e presenta un’interfaccia semplice per lavorare con essi. Gli utenti dispongono di diverse opzioni di vettori di archiviazione, ognuna delle quali può influire sulle prestazioni della ricerca di similarità di GPTCache. Con il suo supporto a vari vettori di archiviazione, GPTCache promette di essere adattabile e di soddisfare le esigenze di una vasta gamma di casi d’uso.

Il Gestore della Cache di GPTCache gestisce le politiche di rimozione per i componenti Memoria Cache e Vettore di Archiviazione. Per fare spazio a nuovi dati, una politica di sostituzione decide quale vecchi dati rimuovere dalla cache quando si riempie.

Le informazioni per il Valutatore di Similarità provengono sia dalla sezione Memoria Cache che dalla sezione Vettore di Archiviazione di GPTCache. Confronta la richiesta di input con le richieste nel Vettore di Archiviazione utilizzando diversi approcci. Se una richiesta viene servita dalla cache o meno dipende dal grado di similarità. GPTCache offre un’interfaccia unificata per metodi simili e una libreria di implementazioni disponibili. La capacità di GPTCache di determinare corrispondenze nella cache utilizzando diversi algoritmi di similarità consente di adattarsi a una vasta gamma di casi d’uso e requisiti degli utenti.

Caratteristiche e vantaggi

  • Miglioramento della reattività e della velocità grazie a una diminuzione della latenza delle query di LLM resa possibile da GPTCache.
  • Risparmio dei costi – grazie alla struttura di prezzo basata su token e richieste comune a molti servizi LLM. GPTCache può ridurre il costo del servizio limitando il numero di chiamate API necessarie.
  • Scalabilità aumentata grazie alla capacità di GPTCache di alleggerire il lavoro dal servizio LLM. Man mano che il numero di richieste che ricevi aumenta, ciò può aiutarti a continuare a operare con massima efficienza.
  • I costi associati alla creazione di un’applicazione LLM possono essere mantenuti minimi con l’aiuto di GPTCache. Memorizzare nella cache i dati generati o simulati in LLM ti consente di testare la tua app senza effettuare richieste API al servizio LLM.

GPTCache può essere utilizzato in combinazione con la tua applicazione scelta, LLM (ChatGPT), il sistema di memorizzazione cache (SQLite, PostgreSQL, MySQL, MariaDB, SQL Server o Oracle) e il sistema di memorizzazione vettoriale (FAISS, Milvus, Ziliz Cloud). L’obiettivo del progetto GPTCache è quello di utilizzare in modo efficiente i modelli di linguaggio nelle applicazioni basate su GPT, riutilizzando le risposte generate in precedenza ogni volta che è possibile anziché partire da zero ogni volta.