Améliorez l'efficacité de l'IA grâce à la mise en cache des invites ! Découvrez comment réduire la latence, diminuer les coûts et faire évoluer les applications d'IA grâce à cette technique puissante.
La mise en cache des invites est une technique d'optimisation spécialisée utilisée dans le déploiement de grands modèles de langage (LLM) pour réduire considérablement la latence de l'inférence et les d'inférence et les coûts de calcul. Dans le contexte de l'IA générative, le traitement d'une invite implique la conversion du texte en représentations numériques et le calcul des relations entre chaque jeton à l'aide d'un mécanisme d'attention. Lorsqu'une partie substantielle d'une invite, telle qu'une longue instruction système ou un ensemble d'exemples, reste statique à travers de multiples requêtes, la mise en cache de l'invite permet au système de stocker les états mathématiques intermédiaires (en particulier, l'état de la permet au système de stocker les états mathématiques intermédiaires (en particulier les paires clé-valeur) de ce texte statique. statique. Au lieu de recalculer ces états à chaque nouvelle requête, le moteur d'inférence les récupère en mémoire. moteur d'inférence les récupère en mémoire, permettant au modèle de concentrer sa puissance de traitement uniquement sur les nouvelles parties dynamiques de l'entrée.
Le mécanisme de base de la mise en cache des invites repose sur la gestion efficace de la fenêtre contextuelle. de la fenêtre de contexte. Lorsqu'un LLM traite une entrée, il génère un "KV Cache" (Key-Value Cache) l'entrée, il génère un "KV Cache" (Key-Value Cache) représentant la compréhension du modèle du texte jusqu'à ce point. jusqu'à ce point. La mise en cache de l'invite traite le segment initial de l'invite (le préfixe) comme un actif réutilisable.
La mise en cache rapide transforme la façon dont les développeurs construisent et font évoluer les applications d'apprentissage automatique. les applications d'apprentissage automatique (ML), en particulier celles qui impliquent un traitement de texte lourd.
Bien que la mise en cache de l'invite soit interne aux serveurs d'inférence LLM, la compréhension de la structure des données aide à clarifier le concept. Le "cache" stocke essentiellement des tenseurs (tableaux multidimensionnels) représentant les états d'attention.
L'extrait Python suivant, qui utilise torch démontre la forme et le concept d'un tensor cache clé-valeur,
qui est ce qui est stocké et réutilisé pendant la mise en cache rapide :
import torch
# Simulate a KV Cache tensor for a transformer model
# Shape: (Batch_Size, Num_Heads, Sequence_Length, Head_Dim)
batch_size, num_heads, seq_len, head_dim = 1, 32, 1024, 128
# Create a random tensor representing the pre-computed state of a long prompt
kv_cache_state = torch.randn(batch_size, num_heads, seq_len, head_dim)
print(f"Cached state shape: {kv_cache_state.shape}")
print(f"Number of cached parameters: {kv_cache_state.numel()}")
# In practice, this tensor is passed to the model's forward() method
# to skip processing the first 1024 tokens.
Il est important de différencier la mise en cache rapide des autres termes du glossaire d'Ultralytics afin d'appliquer la bonne stratégie d'optimisation. Ultralytics pour appliquer la bonne stratégie d'optimisation.
Alors que la mise en cache des messages est propre au traitement du langage naturel (NLP), la mise en cache des messages est une pratique courante. traitement du langage naturel (NLP), les principes d'efficacité sont universels. Dans le domaine de la vision par ordinateur (VA), des modèles tels que YOLO11 sont optimisés sur le plan architectural pour la vitesse, ce qui garantit que les tâches de détection d'objets atteignent des taux de d'images sans avoir besoin du même type de cache d'état que celui utilisé dans les modèles de langage autorégressifs. Cependant, au fur et à mesure que les les modèles multimodaux évoluent pour traiter la vidéo et le vidéo et du texte, la mise en cache des jetons visuels devient un domaine de recherche émergent décrit dans des articles sur arXiv.