🐳DeepSeek-V3-0324 : Comment exécuter localement

Comment exécuter DeepSeek-V3-0324 localement en utilisant nos quantifications dynamiques qui recuperent la précision

circle-info

Veuillez consulter https://docs.unsloth.ai/basics/deepseek-r1-0528-how-to-run-locallyarrow-up-right (Mise à jour du 28 mai 2025) pour apprendre comment exécuter DeepSeek plus rapidement et plus efficacement !

DeepSeek est de retour ! Après la sortie de 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 augmenté de +5,3% pour atteindre 81,2%. GPQA +9,3 points. AIME +19,8% et LiveCodeBench +10,0% ! Ils ont fourni un graphique montrant comment ils se comparent au checkpoint V3 précédent et à d'autres modèles comme GPT 4.5 et Claude Sonnet 3.7. Mais comment exécuter un modèle de 671 milliards de paramètres localement ?

Bits MoE
Type
Taille sur disque
Précision
Lien
Détails

1,78 bit

IQ1_S

173 Go

Ok

2,06/1,56 bit

1,93 bit

IQ1_M

183 Go

Correct

2.5/2.06/1.56

2,42 bit

IQ2_XXS

203 Go

Suggéré

2,5/2,06 bit

2,71 bit

Q2_K_XL

231 Go

Suggéré

3,5/2,5 bit

3,5 bit

Q3_K_XL

320 Go

Super

4,5/3,5 bit

4,5 bit

Q4_K_XL

406 Go

Meilleur

5,5/4,5 bit

circle-check

⚙️ Paramètres recommandés officiels

Selon DeepSeekarrow-up-right, voici les paramètres recommandés pour l'inférence :

  • Température de 0,3 (Peut-être 0,0 pour le codage comme vu iciarrow-up-right)

  • Min_P de 0,00 (optionnel, mais 0,01 fonctionne bien, la valeur par défaut de llama.cpp est 0,1)

  • Modèle de chat : <|User|>Créer un simple jeu jouable Flappy Bird en Python. Placez le jeu final à l'intérieur d'une section markdown.<|Assistant|>

  • Un token BOS de <|begin▁of▁sentence|> est ajouté automatiquement lors de la tokenisation (ne l'ajoutez PAS manuellement !)

  • DeepSeek a mentionné l'utilisation d'un prompt système également (optionnel) - il est en chinois : 该助手为DeepSeek Chat,由深度求索公司创造。\n今天是3月24日,星期一。 ce qui se traduit par : L'assistant est DeepSeek Chat, créé par DeepSeek.\nAujourd'hui, c'est lundi 24 mars.

  • Pour la quantification du cache KV, utilisez 8bit, PAS 4bit - nous avons constaté que c'est sensiblement pire en 4bit.

📖 Tutoriel : Comment exécuter DeepSeek-V3 dans llama.cpp

  1. Obtenez le dernier llama.cpp sur GitHub iciarrow-up-right. Vous pouvez suivre les instructions de compilation ci-dessous également. Changez -DGGML_CUDA=ON en -DGGML_CUDA=OFF si vous n'avez pas de GPU ou si vous voulez simplement une inférence CPU.

circle-exclamation
  1. Téléchargez le modèle via (après avoir installé pip install huggingface_hub hf_transfer ). Vous pouvez choisir UD-IQ1_S(quant dynamique 1,78bit) ou d'autres versions quantifiées comme Q4_K_M . Je recommande d'utiliser notre quantification dynamique à 2,7 bits UD-Q2_K_XL pour équilibrer taille et précision. Plus de versions sur : https://huggingface.co/unsloth/DeepSeek-V3-0324-GGUFarrow-up-right

  1. Exécutez le test Flappy Bird d'Unsloth comme décrit dans notre quantification dynamique 1,58 bit pour DeepSeek R1.

  2. éditer --threads 32 pour le nombre de threads CPU, --ctx-size 16384 pour la longueur de contexte, --n-gpu-layers 2 pour le déchargement GPU sur le nombre de couches. Essayez de l'ajuster si votre GPU manque de mémoire. Supprimez-le également si vous n'avez qu'une inférence CPU.

chevron-rightSi 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 anti-épilepsie !) Version dynamique 2 bits : Voir le résultat ci-dessous :hashtag

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

2 bits dynamique. Réussit à créer un jeu jouable.
  1. Comme DeepSeek-R1, V3 a 61 couches. Par exemple, avec un GPU 24 Go ou 80 Go, vous pouvez vous attendre à décharger après arrondi vers le bas (réduire de 1 si cela dépasse la mémoire) :

Quant
Taille du fichier
GPU 24 Go
GPU 80 Go
2xGPU 80 Go

1,73 bit

173 Go

5

25

56

2,22 bit

183 Go

4

22

49

2,51 bit

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-le. Pour une machine avec 128 Go de mémoire unifiée, vous devriez pouvoir décharger environ 59 couches.

🎱 Test Heptagone

Nous testons également nos quantifications dynamiques via r/Localllamaarrow-up-right qui teste le modèle sur la création d'un moteur physique de base pour simuler des balles tournant dans une forme heptagonale fermée en rotation.

L'objectif est de faire tourner l'heptagone, et les balles dans l'heptagone doivent bouger.
Cover

2 bits non dynamique. Échoue - AVERTISSEMENT EPILEPTIQUE encore !

Cover

2 bits dynamique. Résout en fait correctement le puzzle de l'heptagone !!

La quantification dynamique 2,7 bits, qui ne fait que 230 Go, parvient en réalité à résoudre le puzzle de l'heptagone ! La sortie complète pour les 3 versions (y compris le fp8 complet) est ci-dessous :

chevron-rightCode heptagone 2 bits dynamiquehashtag
chevron-rightCode heptagone 2 bits non dynamiquehashtag
chevron-rightCode heptagone Float8hashtag

🕵️ Constatations et conseils supplémentaires

  1. Nous constatons qu'utiliser une quantification du cache KV plus basse (4 bits) semble dégrader la qualité de génération selon des tests empiriques - davantage de tests doivent être effectués, mais nous suggérons d'utiliser q8_0 la quantification du cache. L'objectif de la quantification est de supporter des longueurs de contexte plus longues puisque le cache KV utilise pas mal de mémoire.

  2. Nous avons trouvé le down_proj dans ce modèle extrêmement sensible à la quantification. Nous avons dû refaire certaines de nos quantifications dynamiques qui utilisaient 2 bits pour down_proj et maintenant nous utilisons 3 bits comme minimum pour toutes ces matrices.

  3. L'utilisation de llama.cpp le backend Flash Attention de 's aboutit effectivement à des vitesses de décodage quelque peu plus rapides. Utiliser -DGGML_CUDA_FA_ALL_QUANTS=ON lors 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-gpusarrow-up-right pour réduire les temps de compilation, puis de la définir via -DCMAKE_CUDA_ARCHITECTURES="80"

  4. Utiliser un min_p=0.01est probablement suffisant. llama.cpppar défaut à 0.1, ce qui n'est probablement pas nécessaire. Puisqu'une température de 0.3 est utilisée de toute façon, il est très peu probable que nous échantillonnions des tokens de faible probabilité, donc supprimer les tokens 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 ?