ChatPaper.aiChatPaper

Prédiction KV pour une amélioration du temps jusqu'au premier jeton

KV Prediction for Improved Time to First Token

October 10, 2024
Auteurs: Maxwell Horton, Qingqing Cao, Chenfan Sun, Yanzi Jin, Sachin Mehta, Mohammad Rastegari, Moin Nabi
cs.AI

Résumé

L'inférence avec les modèles de langage basés sur les transformers commence par une étape de traitement de l'invite. Dans cette étape, le modèle génère le premier jeton de sortie et stocke le cache KV nécessaire pour les futures étapes de génération. Cette étape de traitement de l'invite peut être coûteuse en termes de calcul, prenant 10 secondes ou plus pour les modèles à un milliard de paramètres sur des appareils périphériques lorsque les longueurs des invites ou les tailles des lots augmentent. Cela dégrade l'expérience utilisateur en introduisant une latence significative dans les sorties du modèle. Pour réduire le temps passé à produire le premier jeton de sortie (connu sous le nom de "temps jusqu'au premier jeton", ou TTFT) d'un modèle pré-entraîné, nous introduisons une nouvelle méthode appelée Prédiction KV. Dans notre méthode, un petit modèle auxiliaire est utilisé pour traiter l'invite et produire une approximation du cache KV utilisé par un modèle de base. Ce cache KV approximé est ensuite utilisé avec le modèle de base pour une génération autorégressive sans avoir besoin d'interroger à nouveau le modèle auxiliaire. Nous démontrons que notre méthode produit un compromis efficacité-précision optimal de Pareto par rapport aux références. Sur TriviaQA, nous démontrons des améliorations de précision relatives dans une fourchette de 15 % à 50 % sur une gamme de budgets de FLOPs TTFT. Nous démontrons également des améliorations de précision allant jusqu'à 30 % sur la complétion de code Python HumanEval à des budgets FLOPs TTFT fixes. De plus, nous évaluons les modèles sur un processeur Apple M2 Pro et démontrons que notre amélioration en FLOPs se traduit par une accélération du TTFT sur le matériel. Nous mettons notre code à disposition sur https://github.com/apple/corenet/tree/main/projects/kv-prediction.
English
Inference with transformer-based language models begins with a prompt processing step. In this step, the model generates the first output token and stores the KV cache needed for future generation steps. This prompt processing step can be computationally expensive, taking 10s of seconds or more for billion-parameter models on edge devices when prompt lengths or batch sizes rise. This degrades user experience by introducing significant latency into the model's outputs. To reduce the time spent producing the first output (known as the ``time to first token'', or TTFT) of a pretrained model, we introduce a novel method called KV Prediction. In our method, a small auxiliary model is used to process the prompt and produce an approximation of the KV cache used by a base model. This approximated KV cache is then used with the base model for autoregressive generation without the need to query the auxiliary model again. We demonstrate that our method produces a pareto-optimal efficiency-accuracy trade-off when compared to baselines. On TriviaQA, we demonstrate relative accuracy improvements in the range of 15%-50% across a range of TTFT FLOPs budgets. We also demonstrate accuracy improvements of up to 30% on HumanEval python code completion at fixed TTFT FLOPs budgets. Additionally, we benchmark models on an Apple M2 Pro CPU and demonstrate that our improvement in FLOPs translates to a TTFT speedup on hardware. We release our code at https://github.com/apple/corenet/tree/main/projects/kv-prediction .

Summary

AI-Generated Summary

PDF122November 16, 2024