Pourquoi DeepSeek V3 bouleverse le monde de l’IA : le point de vue d’un développeur
L’un des objectifs finaux de tous les grands modèles de langage (LLMs) que nous utilisons de nos jours est d’être capables de comprendre et d’effectuer toute tâche intellectuelle qu’un être humain peut accomplir. Ce concept est couramment appelé intelligence artificielle générale (AGI). La course vers l’AGI a déclenché des développements rapides dans de nombreux LLMs de développeurs d’IA de premier plan mondial, tels qu’OpenAI, Meta, Google, Anthropic et Qwen.
Récemment, de nouveaux LLMs développés par DeepSeek ont suscité un engouement massif au sein de la communauté de l’IA en raison de la combinaison de leurs performances et de leur coût opérationnel. Par exemple, il est affirmé que le modèle DeepSeek R1 offre des performances similaires au modèle de raisonnement le plus avancé d’OpenAI à ce jour, le modèle o1, avec seulement une fraction du coût d’entraînement. Parallèlement, les performances du modèle DeepSeek V3 sont comparables à celles de GPT-4o et ne représentent qu’une fraction du coût d’entraînement. Contrairement à OpenAI, DeepSeek a décidé de rendre ses modèles entièrement open source, permettant à toute la communauté de l’IA d’accéder aux poids des modèles de DeepSeek. Cela accélérera encore davantage le processus vers l’AGI.
Cet article abordera plusieurs caractéristiques innovantes du modèle DeepSeek, en particulier DeepSeek V3, qui rendent les performances de ce LLM comparables aux derniers modèles à l’état de l’art, à source fermée, disponibles. Alors, sans plus attendre, explorons la première caractéristique innovante clé.
Première caractéristique : Attention latente multi-têtes
À la base, DeepSeek V3 adopte toujours l’architecture classique des Transformers. Il se compose d’un très grand nombre de blocs Transformer, où chaque bloc contient plusieurs couches importantes : des couches de normalisation, d’attention et feed-forward, comme vous pouvez le voir dans la visualisation suivante :
Visualisation d’un seul bloc Transformer.
Dans cette section, nous allons nous concentrer uniquement sur la couche d’attention, car c’est là que se trouve l’attention latente multi-têtes (MLA) du modèle DeepSeek V3.
En résumé, une couche d’attention attend en entrée la représentation d’embedding d’un jeton à une position particulière. La première étape de la couche d’attention consiste à projeter cet embedding d’entrée en vecteurs de requête, de clé et de valeur à l’aide de trois matrices de poids apprises. La couche utilisera ensuite ces valeurs pour estimer le contexte de ce jeton particulier par rapport aux jetons précédents, un processus couramment appelé mécanisme d’attention.
Cependant, la manière dont le mécanisme d’attention est calculé présente un inconvénient majeur. Comme vous le savez peut-être déjà, les LLMs génèrent un jeton à la fois dans une séquence, et un nouveau jeton dépend toujours des jetons générés précédemment. Par conséquent, pour estimer le contexte d’un nouveau jeton, l’attention des jetons précédents doit être recalculée. Par exemple, la génération du jeton numéro 50 nécessite à chaque fois le recalcul de l’attention des jetons 1 à 49. Cela entraîne un processus de génération de jetons très lent pendant l’inférence.
Gestion du cache KV dans vLLM. Source.
Pour résoudre ce problème, une approche appelée cache KV est normalement mise en œuvre dans les LLMs afin d’accélérer le processus de génération de jetons. Comme son nom l’indique, avec le cache KV, la clé et la valeur d’un nouveau jeton sont stockées dans un cache au cours de chaque processus de génération. Par conséquent, lors du calcul de l’attention d’un nouveau jeton, nous utilisons la clé et la valeur mises en cache des jetons précédents au lieu de tout recalculer depuis le début. Cela accélère efficacement le processus de génération de jetons.
DeepSeek V3 utilise également le cache KV dans sa couche d’attention. En fait, il pousse encore plus loin cette approche avec l’introduction de MLA. En substance, MLA compresse la dimension de l’embedding d’entrée en une représentation de faible rang en supprimant les éléments redondants. Grâce à cette compression, la taille des vecteurs key, value et query devient encore plus petite, optimisant ainsi la mémoire pour le cache KV et accélérant le processus de génération de tokens.
Architecture de DeepSeek V3 dans un seul bloc Transformer. Source.
Comme vous pouvez le voir dans la figure ci-dessus, l’approche compresse conjointement key et value en une représentation de faible rang. Cette version compressée du vecteur key-value peut ensuite être mise en cache de manière similaire au cache KV normal.
Pendant ce temps, la query est compressée indépendamment. Une fois compressée, la représentation de faible rang du vecteur query est ensuite traitée par deux pipelines différents : l’un est projeté directement avec une couche pour le ramener à sa représentation de haute dimension, et l’autre est traité par une approche appelée Rotary Positional Embedding (RoPE). La méthode RoPE est importante pour introduire l’information positionnelle du nouveau token dans une séquence. Les sorties de ces deux pipelines sont ensuite concaténées en une entrée finale pour la couche d’attention multi-têtes.
Le vecteur key-value compressé conjointement subit également un processus similaire à celui du vecteur query. Cependant, l’entrée pour RoPE du vecteur key provient de l’embedding d’entrée original plutôt que du vecteur key-value compressé.
Fonctionnalité deux : DeepSeek MoE
Une autre approche fascinante mise en œuvre dans DeepSeek V3 est l’approche Mixture of Experts (MoE). Comme vous pouvez le voir sur l’image ci-dessus, cette méthode est mise en œuvre dans DeepSeek V3 en remplacement du réseau feed-forward original dans le bloc Transformers.
Utilisons un exemple pour comprendre facilement ce que fait MoE. Imaginez que nous étudions dans une université avec de nombreux professeurs, chacun expert dans une matière différente (mathématiques, physique, littérature). Lorsque nous voulons poser une question sur le calcul différentiel, nous serons dirigés vers le professeur de mathématiques. De même, si nous voulons poser une question sur la physique quantique, nous serons dirigés vers le professeur de physique.
MoE fonctionne de manière similaire. Il se compose de nombreux modèles, chacun ayant sa propre expertise pour résoudre un problème particulier.
Pendant la phase d’entraînement, chaque modèle reçoit des données différentes provenant d’un domaine particulier, de sorte qu’ils deviennent experts dans la résolution de tâches issues de ce domaine. Ensuite, pendant l’inférence, au lieu de s’appuyer sur un seul modèle massif pour gérer tous les domaines d’un problème, MoE attribuera la requête aux modèles experts les plus compétents. Cette approche rend l’inférence plus rapide et plus efficace, car seul un petit nombre de modèles experts sera activé pendant la prédiction, en fonction de la tâche.
MoE dans DeepSeek V3. Source.
Un élément important dans une approche MoE est le réseau de gating. Ce réseau a deux responsabilités principales : analyser la requête d’entrée, puis l’acheminer vers les modèles experts les plus appropriés. Cependant, un problème courant concernant l’entraînement MoE est celui de l’équilibrage de charge, où le réseau de gating continue d’acheminer toutes les données d’entraînement vers un modèle spécifique au lieu de les distribuer à d’autres modèles.
La mise en œuvre d’une perte auxiliaire aide à forcer le réseau de gating à apprendre à distribuer les données d’entraînement à différents modèles. Le problème est qu’il a été démontré que s’appuyer uniquement sur la perte auxiliaire dégrade les performances du modèle après l’entraînement.
Pour introduire un compromis entre l’équilibrage de charge et les performances du modèle, DeepSeek V3 a mis en œuvre une stratégie d’équilibrage de charge sans perte auxiliaire. Cette stratégie introduit un terme de biais pour chaque modèle expert, qui sera ajusté dynamiquement en fonction de la charge de routage de l’expert correspondant. Cela garantit qu’aucun modèle expert ne soit surchargé ou sous-utilisé.
De plus, comme vous pouvez le voir dans la visualisation ci-dessus, DeepSeek V3 a conçu certains experts comme des « experts partagés », et ces experts sont toujours actifs pour diverses tâches. Cette implémentation contribue à améliorer la capacité du modèle à généraliser à différents domaines de tâches.
Cette fonctionnalité MoE est la recette secrète qui explique la polyvalence de DeepSeek V3. Comme vous le verrez dans la section suivante, DeepSeek V3 est très performant dans diverses tâches relevant de différents domaines, tels que les mathématiques, le codage, le langage, etc. En fait, ce modèle est actuellement le modèle de base open-source le plus puissant dans plusieurs domaines.
Fonctionnalité trois : prédictions multi-tokens
Les LLM courants prédisent un token à chaque étape de décodage, mais DeepSeek V3 fonctionne différemment, en particulier lors de sa phase d’entraînement. DeepSeek V3 met en œuvre ce que l’on appelle les prédictions multi-tokens (MTP) pendant l’entraînement, ce qui permet au modèle de prédire plusieurs tokens futurs à chaque étape de décodage.
Bien que cela ajoute des couches de complexité, l’approche MTP est importante pour améliorer les performances du modèle dans différentes tâches. Comme vous pouvez l’imaginer, en examinant les tokens futurs possibles plusieurs étapes à l’avance en une seule étape de décodage, le modèle est capable d’apprendre la meilleure solution possible pour toute tâche donnée.
Visualisation de l’approche MTP dans DeepSeek V3. Source.
Pour mettre en œuvre MTP, DeepSeek V3 adopte plus d’un modèle, chacun constitué d’un ensemble de couches Transformer. Un modèle agit comme modèle principal, tandis que les autres agissent comme modules MTP. Bien que cela ne soit pas clairement défini, le modèle MTP est généralement de taille plus petite que le modèle principal (la taille totale du modèle DeepSeek V3 sur HuggingFace est de 685B, avec 671B provenant du modèle principal et 14B du module MTP).
Pendant la phase d’entraînement, le modèle principal et les modules MTP prennent tous deux leur entrée depuis la même couche d’embedding. Cependant, l’implémentation doit toujours être effectuée de manière séquentielle, c’est-à-dire que le modèle principal doit passer en premier en prédisant le token une étape à l’avance, puis le premier module MTP prédira le token deux étapes à l’avance. Ce processus se poursuit en fonction du nombre de modules MTP. Après avoir prédit les tokens, le modèle principal et les modules MTP utiliseront la même tête de sortie.
Nous pouvons être totalement flexibles avec le module MTP pendant la phase d’inférence. Par exemple, nous pouvons supprimer complètement le module MTP et n’utiliser que le modèle principal pendant l’inférence, comme les LLM courants. Nous pouvons également utiliser le module MTP pour mettre en œuvre une approche de décodage spéculatif afin d’accélérer potentiellement encore davantage le processus de génération.
Coût et performances de DeepSeek V3 par rapport à d’autres modèles
Toutes les fonctionnalités innovantes mentionnées ci-dessus ont permis d’entraîner le modèle DeepSeek V3 à un coût bien inférieur à celui de ses concurrents à code source fermé.
DeepSeek V3 a été entraîné sur un cluster avec 2 048 GPU NVIDIA H800. La phase de pré-entraînement du modèle DeepSeek V3 a coûté environ 5,328 M, portant le total à 5,576 M](https://www.wired.com/story/openai-ceo-sam-altman-the-age-of-giant-ai-models-is-already-over/).
DeepSeek V3 a également montré des performances supérieures à celles d’autres LLM open-source et à code source fermé tels que Qwen2.5 72B, Llama 3.1 405B, Claude 3.5 Sonnet et ChatGPT 4o sur différents benchmarks, comme vous pouvez le voir dans la figure ci-dessous :
Comparaison entre DeepSeek-V3 et d’autres modèles de chat de pointe. Source.
Les performances de DeepSeek V3 se sont révélées supérieures à celles d’autres modèles de pointe dans diverses tâches, telles que le codage, les mathématiques et le chinois. Ses performances dans les tâches en anglais ont montré des résultats comparables à ceux de Claude 3.5 Sonnet sur plusieurs benchmarks.
De plus, les performances de DeepSeek V3 ont été comparées à celles d’autres LLM sur des tâches de génération ouvertes en utilisant GPT-4-Turbo-1106 comme juge et le taux de victoire contrôlé par la longueur comme métrique. En conséquence, DeepSeek V3 a démontré les meilleures performances par rapport aux autres sur les benchmarks Arena-Hard et AlpacaEval 2.0.
Comparaison entre DeepSeek-V3 et d’autres modèles de chat de pointe sur les benchmarks AlpacaEval 2.0 et Arena-Hard. Source.
Les performances supérieures de DeepSeek V3 sur les benchmarks Arena-Hard et AlpacaEval 2.0 démontrent sa capacité et sa robustesse à traiter de longues invites complexes ainsi que des tâches d’écriture et des scénarios simples de questions-réponses.
Comment les développeurs peuvent tirer parti de DeepSeek V3
Outre ses performances, un autre attrait majeur du modèle DeepSeek V3 est sa nature open source. DeepSeek a décidé de publier le modèle V3 en open source sous licence MIT, ce qui signifie que les développeurs peuvent accéder gratuitement à ses poids et l’utiliser à leurs propres fins, même pour un usage commercial.
Nous pouvons l’utiliser pour divers cas d’usage GenAI, des recommandations personnalisées et de la génération de contenu aux assistants virtuels, chatbots internes, résumés de documents, et bien plus encore. Ces cas d’usage nous permettent également de combiner la puissance de DeepSeek V3 avec Milvus, une base de données vectorielle open source, afin de stocker des milliards d’embeddings contextuels.
Au moment de la rédaction de cet article, DeepSeek V3 n’a pas encore été intégré à Hugging Face. Cependant, on peut s’attendre à ce qu’il le soit très bientôt afin que vous puissiez utiliser et exécuter le modèle localement de manière simple. En attendant l’intégration officielle à Hugging Face, vous pouvez exécuter DeepSeek V3 de plusieurs façons.
Le moyen le plus simple d’essayer DeepSeek V3 est d’utiliser la plateforme de chat officielle de DeepSeek. Il vous suffit de vous inscrire et de commencer à discuter avec le modèle.
Si vous souhaitez l’exécuter localement sur votre machine, vous devez d’abord cloner le dépôt officiel DeepSeek V3 avec la commande suivante :
git clone <https://github.com/deepseek-ai/DeepSeek-V3.git>
Ensuite, allez dans le dossier inference et installez toutes les dépendances requises en exécutant les commandes suivantes :
cd DeepSeek-V3/inference
pip install -r requirements.txt
Ensuite, vous devez télécharger les poids du modèle. Deux poids de modèle sont disponibles sur HuggingFace : la version de base (uniquement après la phase de pré-entraînement) et la version chat (après la phase de post-entraînement). Téléchargez la version du modèle que vous préférez, puis placez les poids dans le dossier /path/to/DeepSeek-V3.
Vous pouvez maintenant convertir les poids du modèle HuggingFace dans un format spécifique avec la commande suivante :
python convert.py --hf-ckpt-path /path/to/DeepSeek-V3 --save-path /path/to/DeepSeek-V3-Demo --n-experts 256 --model-parallel 16
Et enfin, vous pouvez exécuter cette commande pour commencer à discuter avec DeepSeek V3 :
torchrun --nnodes 2 --nproc-per-node 8 generate.py --node-rank $RANK --master-addr $ADDR --ckpt-path /path/to/DeepSeek-V3-Demo --config configs/config_671B.json --interactive --temperature 0.7 --max-new-tokens 200
Une autre façon de démarrer rapidement avec DeepSeek V3 consiste à passer par plusieurs frameworks de serving optimisés pour les LLM, tels que vLLM, SGLang, LMDeploy, et TensorRT-LLM.
Perspectives d’avenir après DeepSeek V3
L’introduction de DeepSeek V3 peut être considérée comme une avancée significative à de nombreux égards. De nombreuses innovations mises en œuvre lors de la phase d’entraînement de DeepSeek V3, telles que MLA, MoE, MTP et l’entraînement en précision mixte avec quantification FP8, nous ont ouvert une voie pour développer un LLM qui soit non seulement performant et efficace, mais aussi nettement moins coûteux à entraîner.
La mise en œuvre de MLA, MoE et MTP contribue à accélérer le processus de génération de tokens pendant l’inférence de différentes manières :
MLA nous permet d’économiser la mémoire du cache KV et d’accélérer la génération de tokens en compressant la dimension des représentations d’entrée dans leur représentation de bas rang.
MoE accélère le processus de génération de tokens et améliore la scalabilité du modèle en n’activant que certains experts pendant l’inférence, selon la tâche. Au lieu d’activer l’ensemble des 671B paramètres pendant l’inférence, le modèle n’en activera qu’une petite fraction (environ 37B).
MTP peut être réutilisé pendant l’inférence afin de faciliter une approche de décodage spéculatif. Avec cette approche, la prédiction du token suivant peut partir de tokens futurs possibles prédits par les modules MTP au lieu de le prédire à partir de zéro.
Le fait que DeepSeek ait choisi de publier DeepSeek V3 en open source sous licence MIT nous encourage également, nous, la communauté mondiale de l’IA, à contribuer, expérimenter et construire à partir de sa technologie. Cela nous place, à son tour, tous dans la boucle pour une innovation plus rapide vers l’objectif d’atteindre une AGI qui nous profite à tous.
Bien que ses performances soient déjà supérieures à celles d’autres LLMs à l’état de l’art, les recherches suggèrent que les performances de DeepSeek V3 pourront être encore améliorées à l’avenir.
Auparavant, l’équipe DeepSeek a mené des recherches sur la distillation de la capacité de raisonnement de son modèle le plus puissant, DeepSeek R1, vers le modèle DeepSeek V2.5. Si vous ne connaissez pas ce concept, la distillation désigne le processus de transfert des connaissances d’un modèle plus grand et plus performant vers un modèle plus petit.
DeepSeek V2.5 a montré des améliorations significatives sur les benchmarks LiveCodeBench et MATH-500 lorsqu’il a été présenté avec des données de distillation supplémentaires issues du modèle R1, bien que cela se soit également accompagné d’un inconvénient évident : une augmentation de la longueur moyenne des réponses.
La contribution de la distillation de DeepSeek-R1 sur DeepSeek V2.5. Source.
Néanmoins, cette recherche montre que la même technique de distillation des connaissances pourra également être appliquée à DeepSeek V3 à l’avenir afin d’optimiser davantage ses performances dans divers domaines de données.
Conclusion
DeepSeek V3 représente une avancée majeure dans le domaine de l’IA open source. Il offre des performances comparables à celles des principaux modèles fermés, pour une fraction seulement des coûts d’entraînement. Ses fonctionnalités innovantes, notamment Multi-Head Latent Attention (MLA), Mixture of Experts (MoE) et Multi-Token Predictions (MTP), contribuent à la fois à l’efficacité et à la précision pendant les phases d’entraînement et d’inférence. De plus, sa nature open source sous licence MIT permet à la communauté de l’IA de s’appuyer sur ses avancées, accélérant ainsi les progrès vers l’AGI.
À l’avenir, l’impact de DeepSeek V3 pourrait être encore plus puissant. L’application potentielle de techniques de distillation des connaissances, comme exploré précédemment par DeepSeek R1 et DeepSeek V2.5, laisse entrevoir une marge d’optimisation supplémentaire et d’améliorations de l’efficacité. Nous pouvons dire que DeepSeek V3 établit une nouvelle référence pour la recherche en IA rentable et haute performance.
Continuer à lire

How to Improve Retrieval Quality for Japanese Text with Sudachi, Milvus/Zilliz, and AWS Bedrock
Learn how Sudachi normalization and Milvus/Zilliz hybrid search improve Japanese RAG accuracy with BM25 + vector fusion, AWS Bedrock embeddings, and practical code examples.

Vector Databases vs. Document Databases
Use a vector database for similarity search and AI-powered applications; use a document database for flexible schema and JSON-like data storage.

What is the K-Nearest Neighbors (KNN) Algorithm in Machine Learning?
KNN is a supervised machine learning technique and algorithm for classification and regression. This post is the ultimate guide to KNN.


