Publié le

Comment faire évoluer l'inférence LLM avec KV-Caching

Auteurs

"Lorsque vous utilisez ChatGPT ou Claude, pourquoi le premier token met-il plus de temps à apparaître que le second ? C'est grâce à la mise en cache KV ! C'est assez impressionnant quand on pense au nombre de petites astuces d'optimisation destinées à améliorer la latence de service des services de génération de texte !

Un LLM génère du texte en prédisant de manière itérative le prochain jeton et en l'ajoutant aux jetons générés précédemment et à l'invite d'origine. En règle générale, les LLM causals sont formés pour prédire le mot suivant dans la séquence. Cela signifie que chaque jeton d'entrée correspond à un état caché résultant dans le transformateur, qui à son tour correspond à un vecteur de prédiction pour le jeton suivant. Le vecteur de prédiction a autant de prédictions qu'il y a de jetons dans le dictionnaire, et le jeton suivant peut être prédit en trouvant avidement la prédiction avec la probabilité la plus élevée. Cela signifie que lorsque nous décodons un jeton spécifique, il nous suffit de calculer son état caché correspondant et d'éliminer les autres.

Cet état caché requis correspond au dernier jeton de la séquence d'entrée. Pour calculer cet état caché, dans chacune des couches d'auto-attention, nous avons besoin de toutes les clés et valeurs de toute la séquence d'entrée mais uniquement de la requête pour le dernier jeton de cette séquence. Nous générons les attentions pour le dernier token en prenant le Softmax du produit scalaire entre la Requête et toutes les Clés :

attentions pour le dernier jeton = Softmax (Requête x toutes les clés)

Et nous obtenons l'état caché résultant en prenant la moyenne pondérée de toutes les valeurs données par les attentions :

état caché = toutes les valeurs x attentions

Nous pouvons tirer quelques conclusions. Premièrement, il n'est pas nécessaire de calculer les attentions autres que celles correspondant au dernier jeton. Cela signifie que pendant le processus de décodage, la complexité temporelle à chaque itération est linéaire en nombre de jetons d'entrée (~O(N)), même avec un mécanisme d'attention vanille. Deuxièmement, les clés et les valeurs restent les mêmes pour chacun des jetons pour toutes les itérations. Cela signifie que nous n'avons pas besoin de les recalculer à chaque itération. C'est de là que vient l'idée de la mise en cache KV !

Le processus de décodage peut être divisé en 2 phases : la phase d'initialisation et la phase de génération. Dans la phase d'initialisation, toutes les clés et valeurs correspondant à tous les jetons de l'invite de saisie doivent être créées. Cela prend presque autant de temps que la phase suivante. Nous pouvons ensuite stocker toutes les clés et valeurs de toutes les couches d'attention dans le cache KV. Dans la phase de génération, il suffit de générer la clé, la requête et la valeur correspondant au dernier jeton de la séquence d'entrée. Nous pouvons ensuite extraire les clés et valeurs stockées du cache pour calculer les états cachés requis. En fin de compte, nous mettons à jour le cache avec la dernière clé et valeur calculées correspondant à ce dernier jeton.

Ce processus de mise en cache KV réduit considérablement la latence associée à la génération de texte !"

Veuillez noter que la version française est assistée par Ai, des erreurs mineures peuvent donc exister. Comment faire évoluer l'inférence LLM avec KV-Caching

Auteur

AiUTOMATING PEOPLE, ABN ASIA a été fondée par des personnes ayant des racines profondes dans le milieu académique, avec une expérience professionnelle aux États-Unis, aux Pays-Bas, en Hongrie, au Japon, en Corée du Sud, à Singapour et au Vietnam. ABN ASIA est l'endroit où l'académie et la technologie rencontrent l'opportunité. Avec nos solutions de pointe et nos services de développement logiciel compétents, nous aidons les entreprises à se développer et à s'imposer sur la scène mondiale. Notre engagement : Plus vite. Mieux. Plus fiable. Dans la plupart des cas : moins cher également.

N'hésitez pas à nous contacter chaque fois que vous avez besoin de services informatiques, de conseils en matière de numérique, de solutions logicielles prêtes à l'emploi, ou si vous souhaitez nous envoyer des demandes de propositions (RFP). Vous pouvez nous contacter à l'adresse [email protected]. Nous sommes prêts à vous aider avec tous vos besoins technologiques.

ABNAsia.org

© ABN ASIA

AbnAsia.org Software