🐳DeepSeek-V3-0324 : comment exécuter localement
Comment exécuter DeepSeek-V3-0324 localement en utilisant nos quantifications dynamiques qui récupèrent la précision
Veuillez consulter https://docs.unsloth.ai/basics/deepseek-r1-0528-how-to-run-locally (mise à jour du 28 mai 2025) pour apprendre à exécuter DeepSeek plus rapidement et plus efficacement !
DeepSeek remet ça ! Après avoir publié V3, R1 Zero et R1 en décembre 2024 et janvier 2025, DeepSeek a mis à jour ses checkpoints / modèles pour V3, et a publié une mise à jour de mars !
Selon DeepSeek, MMLU-Pro a bondi de +5,3 % à 81,2 %. GPQA +9,3 points %. AIME + 19,8 % et LiveCodeBench + 10,0 % ! Ils ont fourni un graphique montrant comment ils se comparaient au checkpoint V3 précédent et à d'autres modèles comme GPT 4.5 et Claude Sonnet 3.7. Mais comment exécuter localement un modèle de 671 milliards de paramètres ?
L'upload original de DeepSeek V3 est en float8, ce qui prend 715 Go. L'utilisation de Q4_K_M divise par deux la taille du fichier pour atteindre environ 404 Go, et notre quantification dynamique à 1,78 bit tient dans environ 151 Go. Nous suggérons d'utiliser notre quantification à 2,7 bits pour équilibrer taille et précision ! Celle à 2,4 bits fonctionne également très bien !
⚙️ Paramètres officiels recommandés
Selon DeepSeek, voici les paramètres recommandés pour l'inférence :
Température de 0,3 (Peut-être 0,0 pour le code car vu ici)
Min_P de 0,00 (facultatif, mais 0,01 fonctionne bien, la valeur par défaut de llama.cpp est 0,1)
Modèle de chat :
<|User|>Créez un jeu Flappy Bird simple et jouable en Python. Placez le jeu final dans une section Markdown.<|Assistant|>Un jeton BOS de
<|begin▁of▁sentence|>est ajouté automatiquement lors de la tokenisation (ne l'ajoutez PAS manuellement !)DeepSeek a également mentionné utiliser un prompt système (facultatif) - il est en chinois :
该助手为DeepSeek Chat,由深度求索公司创造。\n今天是3月24日,星期一。ce qui se traduit par :L'assistant est DeepSeek Chat, créé par DeepSeek.\nAujourd'hui, nous sommes lundi 24 mars.Pour la quantification du cache KV, utilisez 8 bits, PAS 4 bits - nous avons constaté qu'elle donne des résultats nettement moins bons.
📖 Tutoriel : Comment exécuter DeepSeek-V3 dans llama.cpp
Obtenez la dernière version
llama.cppsur GitHub ici. Vous pouvez également suivre les instructions de compilation ci-dessous. Changez-DGGML_CUDA=ONen-DGGML_CUDA=OFFsi vous n’avez pas de GPU ou si vous souhaitez simplement une inférence CPU. Pour les appareils Apple Mac / Metal, définissez-DGGML_CUDA=OFFpuis continuez comme d'habitude - la prise en charge de Metal est activée par défaut.
REMARQUE : l'utilisation de -DGGML_CUDA=ON pour les GPU peut prendre 5 minutes à compiler. Le CPU ne prend qu'1 minute à compiler. Les binaires précompilés de llama.cpp pourraient vous intéresser.
Téléchargez le modèle via (après avoir installé
pip install huggingface_hub hf_transfer). Vous pouvez choisirUD-IQ1_S(quantification dynamique 1,78 bit) ou d’autres versions quantifiées commeQ4_K_M. Je recommande d'utiliser notre quantification dynamique à 2,7 bitsUD-Q2_K_XLpour équilibrer taille et précision. Plus de versions sur : https://huggingface.co/unsloth/DeepSeek-V3-0324-GGUF
Exécutez le test Flappy Bird d'Unsloth comme décrit dans notre quantification dynamique 1,58 bit pour DeepSeek R1.
Modifier
--threads 32pour le nombre de threads CPU,--ctx-size 16384pour la longueur du contexte,--n-gpu-layers 2pour le déchargement GPU, selon le nombre de couches. Essayez de l’ajuster si votre GPU manque de mémoire. Supprimez-le aussi si vous n'avez qu'une inférence CPU.
Si nous exécutons ce qui précède, nous obtenons 2 résultats très différents. Version standard 2 bits : Cliquez pour voir le résultat (avertissement de crise !) Version dynamique 2 bits : Voir le résultat ci-dessous :

2 bits standard. Échec avec l'arrière-plan, échec avec la collision

Comme DeepSeek-R1, V3 comporte 61 couches. Par exemple, avec un GPU de 24 Go ou de 80 Go, vous pouvez vous attendre à décharger après arrondi à l'inférieur (réduisez de 1 si cela dépasse la mémoire) :
1.73bit
173 Go
5
25
56
2.22bit
183 Go
4
22
49
2.51bit
212 Go
2
19
32
Exécution sur Mac / appareils Apple
Pour les appareils Apple Metal, faites attention à --n-gpu-layers. Si vous constatez que la machine manque de mémoire, réduisez cette valeur. Pour une machine de 128 Go de mémoire unifiée, vous devriez pouvoir décharger environ 59 couches.
🎱 Test de l'heptagone
Nous testons également nos quantifications dynamiques via r/Localllama qui teste le modèle sur la création d’un moteur physique de base pour simuler des balles tournant dans une forme d’heptagone fermée en mouvement.


2 bits non dynamique. Échec - AVERTISSEMENT DE CRISE encore !

2 bits dynamique. Résout réellement correctement le puzzle de l'heptagone !!

Float8 d'origine
La quantification dynamique 2,7 bits, qui ne fait que 230 Go, parvient en fait à résoudre le puzzle de l'heptagone ! La sortie complète pour les 3 versions (y compris le fp8 complet) est ci-dessous :
🕵️ Résultats supplémentaires et conseils
Nous constatons que l'utilisation d'une quantification plus faible du cache KV (4 bits) semble dégrader la qualité de génération d'après des tests empiriques - davantage de tests sont nécessaires, mais nous suggérons d'utiliser
q8_0la quantification du cache. L'objectif de la quantification est de prendre en charge des longueurs de contexte plus longues, car le cache KV utilise une quantité non négligeable de mémoire.Nous avons trouvé que le
down_projdans ce modèle est extrêmement sensible à la quantification. Nous avons dû refaire certaines de nos quantifications dynamiques qui utilisaient 2 bits pourdown_projet nous utilisons désormais 3 bits comme minimum pour toutes ces matrices.L'utilisation de
llama.cppdu backend Flash Attention de donne effectivement des vitesses de décodage un peu plus rapides. Utilisez-DGGML_CUDA_FA_ALL_QUANTS=ONlors de la compilation. Notez qu'il est également préférable de définir votre architecture CUDA comme indiqué dans https://developer.nvidia.com/cuda-gpus afin de réduire les temps de compilation, puis de la définir via-DCMAKE_CUDA_ARCHITECTURES="80"L'utilisation d'un
min_p=0.01est probablement suffisante.llama.cpppar défaut à 0.1, ce qui n'est probablement pas nécessaire. Puisqu'une température de 0.3 est de toute façon utilisée, il est très peu probable que nous échantillonnions des jetons à faible probabilité, donc supprimer les jetons très improbables est une bonne idée. DeepSeek recommande une température de 0.0 pour les tâches de codage.
Mis à jour
Ce contenu vous a-t-il été utile ?

