Finch: Compressione della Cache Chiave-Valore Guidata da Prompt
Finch: Prompt-guided Key-Value Cache Compression
July 31, 2024
Autori: Giulio Corallo, Paolo Papotti
cs.AI
Abstract
Le recenti applicazioni dei modelli linguistici di grandi dimensioni, come la Generazione Aumentata dal Recupero (Retrieval-Augmented Generation) e i chatbot, hanno portato a una maggiore necessità di elaborare contesti di input più lunghi. Tuttavia, questa esigenza è ostacolata da limitazioni intrinseche. Dal punto di vista architetturale, i modelli sono vincolati da una finestra di contesto definita durante l'addestramento. Inoltre, l'elaborazione di testi estesi richiede una notevole quantità di memoria GPU. Proponiamo un approccio innovativo, denominato Finch, per comprimere il contesto di input sfruttando i pesi pre-addestrati del meccanismo di self-attention. Dato un prompt e un testo lungo, Finch identifica iterativamente le coppie Chiave (K) e Valore (V) più rilevanti su porzioni del testo condizionate dal prompt. Solo queste coppie vengono memorizzate nella cache KV, che, all'interno dello spazio limitato dalla finestra di contesto, contiene alla fine una versione compressa del testo lungo. La nostra proposta consente ai modelli di elaborare input di grandi dimensioni anche con un elevato rapporto di compressione (fino a 93x) preservando l'integrità semantica senza la necessità di un ulteriore addestramento.
English
Recent large language model applications, such as Retrieval-Augmented
Generation and chatbots, have led to an increased need to process longer input
contexts. However, this requirement is hampered by inherent limitations.
Architecturally, models are constrained by a context window defined during
training. Additionally, processing extensive texts requires substantial GPU
memory. We propose a novel approach, Finch, to compress the input context by
leveraging the pre-trained model weights of the self-attention. Given a prompt
and a long text, Finch iteratively identifies the most relevant Key (K) and
Value (V) pairs over chunks of the text conditioned on the prompt. Only such
pairs are stored in the KV cache, which, within the space constrained by the
context window, ultimately contains a compressed version of the long text. Our
proposal enables models to consume large inputs even with high compression (up
to 93x) while preserving semantic integrity without the need for fine-tuning.