Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Décodage spéculatif

Découvrez comment le décodage spéculatif accélère l'inférence IA de 2 à 3 fois. Apprenez comment cette technique optimise les LLM et Ultralytics pour un rendement plus rapide et plus efficace.

Le décodage spéculatif est une technique d'optimisation avancée utilisée principalement dans les grands modèles linguistiques (LLM) et d'autres tâches de génération séquentielle afin d'accélérer considérablement l'inférence sans compromettre la qualité du résultat. Dans la génération autorégressive traditionnelle , un modèle produit un token à la fois, chaque étape attendant que la précédente soit terminée. Ce processus peut être lent, en particulier sur du matériel puissant où la bande passante mémoire, plutôt que la vitesse de calcul, devient souvent le goulot d'étranglement. Le décodage spéculatif résout ce problème en utilisant un modèle « brouillon » plus petit et plus rapide pour prédire en parallèle une séquence de futurs tokens, qui sont ensuite vérifiés en un seul passage par le modèle « cible » plus grand et plus précis. Si le brouillon est correct, le système accepte plusieurs tokens à la fois, ce qui lui permet de progresser efficacement dans le processus de génération.

Comment fonctionne le décodage spéculatif

Le mécanisme central repose sur l'observation que de nombreux tokens dans une séquence, tels que les mots fonctionnels comme « le », « et » ou les compléments évidents, sont faciles à prédire et ne nécessitent pas toute la puissance de calcul d'un modèle massif. En transférant ces prédictions faciles vers un modèle proxy léger, le système réduit le nombre de fois où le modèle lourd doit être invoqué.

Lorsque le modèle cible examine la séquence provisoire, il utilise une étape de vérification parallèle. Les GPU étant hautement optimisés pour le traitement par lots, la vérification simultanée de cinq jetons provisoires prend à peu près autant de temps que la génération d'un seul jeton. Si le modèle cible approuve la version provisoire, ces jetons sont finalisés. S'il n'est pas d'accord à un moment donné, la séquence est tronquée, le jeton correct est inséré et le processus se répète. Cette méthode garantit que le résultat final est mathématiquement identique à ce que le modèle cible aurait produit seul, ce qui préserve la précision tout en doublant ou triplant la vitesse dans de nombreux scénarios.

Applications concrètes

Cette technique transforme la manière dont les industries déploient l'IA générative, en particulier lorsque la latence est critique.

  • Complétion de code en temps réel : dans les environnements de développement intégrés (IDE), les assistants de codage IA doivent fournir des suggestions instantanément, au fur et à mesure que le développeur tape. Le décodage spéculatif permet à ces assistants de rédiger des lignes entières de code à l'aide d'un petit modèle, tandis qu'un grand modèle de base vérifie la syntaxe et la logique en arrière-plan. Il en résulte une expérience utilisateur fluide et rapide, qui donne l'impression de taper en temps réel plutôt que d'attendre une réponse du serveur.
  • Chatbots interactifs sur les appareils périphériques : l'exécution de LLM puissants sur les smartphones ou les ordinateurs portables est difficile en raison des ressources matérielles limitées. En utilisant le décodage spéculatif, un appareil peut exécuter localement un petit modèle quantifié pour rédiger des réponses, tout en interrogeant occasionnellement un modèle plus grand (basé sur le cloud ou un modèle local plus lourd ) à des fins de vérification. Cette approche hybride permet des interactions de haute qualité avec l'assistant virtuel avec un décalage minimal , rendant l'IA de pointe plus viable pour les tâches complexes.

Relation avec d'autres concepts

Il est important de distinguer le décodage spéculatif des stratégies d'optimisation similaires.

  • Quantification du modèle: bien que la quantification réduise la précision des poids du modèle (par exemple, de FP16 à INT8) afin d'économiser de la mémoire et d'accélérer le calcul, elle modifie de manière permanente le modèle et peut légèrement dégrader les performances. À l'inverse, le décodage spéculatif ne modifie pas les poids du modèle cible et garantit la même distribution de sortie.
  • Distillation des connaissances: Cela consiste à former un modèle étudiant plus petit pour imiter un modèle enseignant plus grand. Le modèle étudiant remplace entièrement le modèle enseignant. Dans le décodage spéculatif, le petit modèle (rédacteur) et le grand modèle (vérificateur) travaillent en tandem pendant l'inférence, plutôt que l'un remplaçant l' autre.

Exemple de mise en œuvre

Bien que le décodage spéculatif soit souvent intégré aux cadres de service, le concept de vérification des prédictions est fondamental pour une IA efficace. Vous trouverez ci-dessous un exemple conceptuel utilisant PyTorch illustrer comment un modèle plus grand pourrait noter ou vérifier une séquence d'entrées candidates, de manière similaire à l'étape de vérification dans le décodage spéculatif.

import torch


def verify_candidate_sequence(model, input_ids, candidate_ids):
    """Simulates the verification step where a target model checks candidate tokens."""
    # Concatenate input with candidates for parallel processing
    full_sequence = torch.cat([input_ids, candidate_ids], dim=1)

    with torch.no_grad():
        logits = model(full_sequence)  # Single forward pass for all tokens

    # Get the model's actual predictions (greedy decoding for simplicity)
    predictions = torch.argmax(logits, dim=-1)

    # In a real scenario, we check if predictions match candidate_ids
    return predictions


# Example tensor setup (conceptual)
# input_ids = torch.tensor([[101, 2054, 2003]])
# candidate_ids = torch.tensor([[1037, 3024]])
# verify_candidate_sequence(my_model, input_ids, candidate_ids)

Impact sur le développement futur de l'IA

À mesure que les modèles continuent de croître en taille, l'écart entre la capacité de calcul et la bande passante mémoire, souvent appelé « mur de la mémoire », se creuse. Le décodage spéculatif contribue à combler cet écart en maximisant l'intensité arithmétique de chaque accès mémoire. Cette efficacité est cruciale pour le déploiement durable de l'IA générative à grande échelle, réduisant à la fois la consommation d'énergie et les coûts opérationnels.

Les chercheurs explorent actuellement des moyens d'appliquer des principes spéculatifs similaires aux tâches de vision par ordinateur. Par exemple, dans la génération vidéo, un modèle léger pourrait esquisser des images futures qui seraient ensuite affinées par un modèle de diffusion haute fidélité. À mesure que des frameworks tels que PyTorch et TensorFlow intègrent nativement ces optimisations, les développeurs peuvent s'attendre à une latence d'inférence plus rapide sur une plus large gamme de modalités, du texte aux données visuelles complexes traitées par des architectures avancées telles que Ultralytics .

Pour ceux qui gèrent le cycle de vie de ces modèles, l'utilisation d'outils tels que Ultralytics garantit la robustesse des ensembles de données sous-jacents et des pipelines d'entraînement , fournissant ainsi une base solide pour les techniques d'inférence avancées. Que vous travailliez avec des modèles linguistiques de grande envergure ou des techniques de pointe en matière de détection d'objets, l'optimisation du pipeline d'inférence reste une étape clé pour passer du prototype à la production.

Rejoindre la communauté Ultralytics

Rejoignez le futur de l'IA. Connectez-vous, collaborez et évoluez avec des innovateurs mondiaux.

Rejoindre maintenant