Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Mélange de profondeurs (MoD)

Découvrez comment Mixture of Depths (MoD) optimise l'efficacité de l'IA en acheminant dynamiquement les jetons. Découvrez comment cette technique réduit les FLOP dans Ultralytics et les LLM.

Dans les architectures d'apprentissage profond, l'efficacité computationnelle est primordiale, en particulier lors du traitement de longues séquences ou d' entrées à haute résolution. Une nouvelle approche alloue dynamiquement les ressources de calcul en permettant au réseau de décider quelles parties de l'entrée nécessitent un traitement complet et lesquelles peuvent contourner certaines couches en toute sécurité. Cette stratégie de routage dynamique réduit la complexité computationnelle globale sans sacrifier la puissance prédictive ou la précision du modèle.

Comprendre le concept

Le mélange de profondeurs (MoD) est une technique architecturale principalement appliquée aux architectures Transformer, dans lesquelles le modèle apprend à ignorer de manière dynamique le calcul de tokens spécifiques à différents niveaux. Les transformateurs traditionnels traitent chaque token à chaque niveau, qu'il s'agisse d'une information cruciale ou d'un contenu de remplissage. En revanche, un modèle MoD utilise un mécanisme de routage pour évaluer les tokens et leur attribuer une note. Seuls les tokens ayant obtenu les meilleurs scores, dans la limite d'une capacité prédéfinie, sont soumis à des blocs de calcul lourds, tels que des mécanismes d'attention ou des couches denses à propagation directe . Les tokens restants contournent le bloc via des connexions résiduelles, créant ainsi un « mélange de profondeurs » où différents tokens sont soumis à des niveaux de profondeur de traitement variables.

Cette méthode, popularisée par les récentes recherches de DeepMind et largement documentée dans le référentiel arXiv, réduit considérablement le nombre total d'opérations en virgule flottante (FLOP) nécessaires pendant l' apprentissage et l'inférence.

Différenciation par rapport à la méthode Mixture of Experts (MoE)

Il est facile de confondre ce concept avec celui de Mixture of Experts (MoE). Bien que les deux utilisent des mécanismes de routage, ils résolvent des problèmes différents :

  • Le MoE achemine les jetons vers différents sous-réseaux (experts) au sein d'une couche. La profondeur de calcul reste la même pour tous les jetons, mais le nombre de paramètres du modèle augmente.
  • Le MoD achemine les jetons soit vers le bloc de calcul, soit vers une connexion de saut. Le nombre de paramètres reste strictement constant, mais la profondeur de calcul diminue pour les jetons moins importants, ce qui améliore directement la latence d'inférence.

Applications concrètes

La capacité à budgétiser dynamiquement les calculs rend cette technique très précieuse dans de nombreux domaines de la vision par ordinateur et du traitement du langage naturel.

  1. Optimisation contextuelle dans les modèles linguistiques : les grands modèles linguistiques (LLM) modernes développés par des organisations telles que OpenAI et Anthropic Anthropic traitent des fenêtres contextuelles massives. En utilisant un routage dynamique en profondeur , ces modèles peuvent ignorer les mots de remplissage structurels ou répétitifs, réservant ainsi les calculs approfondis aux étapes de raisonnement complexes et à l'extraction factuelle.
  2. Vision IA haute résolution : dans les systèmes de vision avancés tels que le modèle Ultralytics , le traitement d'images volumineuses pour la détection d'objets et la segmentation d'images nécessite une mémoire considérable. Le routage en profondeur permet au réseau de contourner l'extraction de caractéristiques sur des arrière-plans uniformes (tels que des ciels vides ou des murs blancs ), concentrant ainsi la puissance de calcul sur les objets complexes au premier plan. Cela est crucial pour le déploiement de modèles sur du matériel d'IA en périphérie aux ressources limitées, optimisé par des bibliothèques CUDA .

Exemple de mise en œuvre

Vous trouverez ci-dessous un PyTorch conceptuel illustrant comment un mécanisme de routage de base peut ignorer le calcul d'une partie des jetons d'entrée, simulant ainsi un comportement de routage en profondeur.

import torch
import torch.nn as nn


class MixtureOfDepthsBlock(nn.Module):
    def __init__(self, d_model, capacity_factor=0.5):
        super().__init__()
        self.capacity_factor = capacity_factor
        self.router = nn.Linear(d_model, 1)
        self.heavy_compute = nn.Sequential(nn.Linear(d_model, d_model * 4), nn.GELU(), nn.Linear(d_model * 4, d_model))

    def forward(self, x):
        # x shape: (batch_size, seq_len, d_model)
        seq_len = x.size(1)
        capacity = int(seq_len * self.capacity_factor)

        # 1. Compute routing scores
        scores = self.router(x).squeeze(-1)  # Shape: (batch_size, seq_len)

        # 2. Identify top-k tokens to process
        topk_indices = torch.topk(scores, capacity, dim=1).indices

        # 3. Create an output tensor mirroring the input (residual baseline)
        output = x.clone()

        # 4. Apply heavy computation only to the selected tokens
        for b in range(x.size(0)):
            selected_tokens = x[b, topk_indices[b]]
            processed_tokens = self.heavy_compute(selected_tokens)
            output[b, topk_indices[b]] += processed_tokens

        return output


# Example usage
dummy_input = torch.randn(2, 64, 128)  # Batch=2, Seq=64, Dim=128
mod_block = MixtureOfDepthsBlock(d_model=128, capacity_factor=0.5)
output = mod_block(dummy_input)
print(f"Output shape: {output.shape}")  # Expect (2, 64, 128)

En tirant parti de frameworks tels que PyTorch ou TensorFlow, les développeurs peuvent intégrer ces blocs d'optimisation de modèles personnalisés. De plus, des outils tels que la Ultralytics aident les équipes à gérer les données d'entraînement nécessaires pour former avec précision ces routeurs, tout en s'intégrant de manière transparente aux écosystèmes d'entreprise tels que Google AI.

Boostez votre énergie avec Ultralytics YOLO

Bénéficiez d'une vision IA avancée pour vos projets. Trouvez la licence adaptée à vos objectifs dès aujourd'hui.

Explorer les options de licence