12 points par xguru 2025-03-02 | 1 commentaires | Partager sur WhatsApp
  • À la fin de la semaine de publication open source, DeepSeek a créé la surprise en dévoilant, comme one more thing, une vue d’ensemble complète du système et jusqu’aux coûts d’exploitation

Vue d’ensemble du système d’inférence DeepSeek-V3/R1

Principes de conception du système

  • L’objectif d’optimisation du système d’inférence DeepSeek-V3/R1 est d’obtenir un débit plus élevé et une latence plus faible
  • Pour cela, le système est optimisé en appliquant le cross-node Expert Parallelism (EP).
    • Augmentation du débit : l’EP étend la taille des batchs afin d’améliorer l’efficacité des opérations matricielles sur GPU et d’augmenter le débit.
    • Réduction de la latence : en répartissant les experts sur plusieurs GPU, le système réduit la charge d’accès mémoire de chaque GPU, ce qui diminue la latence.
  • Cependant, l’EP augmente la complexité du système :
    • Communication inter-nœuds nécessaire : il faut superposer communication et calcul pour éviter les goulots d’étranglement.
    • Utilisation de plusieurs nœuds : il faut appliquer le Data Parallelism (DP), avec un équilibrage de charge entre les groupes DP.

Expert Parallelism (EP) inter-nœuds à grande échelle

  • Le modèle DeepSeek-V3/R1 n’active que 8 experts sur 256 à chaque couche, ce qui rend l’augmentation de la taille des batchs indispensable
  • Différences de parallélisme entre les étapes Prefill et Decode :
    • Étape Prefill : EP32, DP32 (4 nœuds, chaque GPU traite 9 experts)
    • Étape Decode : EP144, DP144 (18 nœuds, chaque GPU traite 2 experts)

Superposition calcul-communication (Computation-Communication Overlapping)

  • Comme l’EP augmente le coût des communications inter-nœuds, DeepSeek le réduit avec une stratégie de recouvrement par double batch.
    • Étape Prefill : deux micro-batchs sont exécutés en alternance pour masquer la communication d’un batch derrière le calcul de l’autre.
    • Étape Decode : la couche d’attention est divisée en deux étapes et utilise un pipeline en 5 étapes afin de maximiser la superposition calcul-communication.

Mise en œuvre d’un équilibrage de charge optimal

  • Afin d’éviter les déséquilibres entre GPU et de maximiser l’utilisation des ressources, DeepSeek applique trois techniques d’équilibrage de charge.
    1. Load balancer Prefill
    • Problème : le nombre de requêtes et les différences de longueur de séquence créent un déséquilibre dans la charge de calcul core-attention et les transferts de données.
    • Objectifs :
      • Maintenir l’équilibre de la charge de calcul core-attention entre GPU.
      • Uniformiser le nombre de tokens d’entrée par GPU.
    1. Load balancer Decode
    • Problème : les différences d’utilisation de KVCache entraînent une charge de calcul différente selon les GPU.
    • Objectifs :
      • Maintenir l’équilibre de l’utilisation de KVCache entre GPU.
      • Uniformiser le nombre de requêtes par GPU.
    1. Load balancer Expert-Parallel
    • Problème : la forte charge sur certains experts crée un déséquilibre de calcul entre GPU.
    • Objectif :
      • Maintenir l’équilibre de la charge de calcul des experts sur chaque GPU.

Statistiques du système d’inférence en ligne de DeepSeek

  • Le service d’inférence DeepSeek-V3/R1 fonctionne sur des GPU H800 et conserve la même précision de calcul qu’à l’entraînement
    • FP8 : calcul matriciel et transfert de données
    • BF16 : opérations MLA critiques et transferts combinés
  • Stratégie d’exploitation en période de pointe et de nuit
    • La charge de service est élevée en journée et diminue la nuit
    • Heures de pointe : tous les nœuds sont utilisés pour exécuter le service d’inférence
    • Heures creuses nocturnes : une partie des nœuds est réaffectée à la recherche et à l’entraînement afin d’utiliser les ressources plus efficacement
  • Statistiques d’exploitation sur 24 heures (UTC+8, 2025-02-27 12:00 PM ~ 2025-02-28 12:00 PM)
    • Total des tokens d’entrée : 608B (dont 342B, soit 56,3 %, en hit de cache KV)
    • Total des tokens de sortie : 168B (vitesse moyenne de sortie de 20~22 tokens/s)
    • Longueur moyenne de KVCache : 4 989 tokens par token de sortie
    • Débit par nœud H800 :
      • Étape Prefill : 73.7k tokens/s (hit de cache inclus)
      • Étape Decode : 14.8k tokens/s

Analyse des coûts d’exploitation et des revenus : V3 & R1 sur une journée, de 02/27/2025 12:00 PM à 02/28/2025 12:00 PM en UTC+8

  • Utilisation GPU : 278 nœuds au pic, 226.75 nœuds en moyenne (chaque nœud comprend 8 GPU H800)
  • Coût de location GPU : $2/heure par GPU H800 → coût total d’exploitation sur une journée : $87,072
  • Revenu théorique journalier si tous les tokens étaient facturés : $562,027 → marge de 545 %
    • (Prix des tokens d’entrée/sortie de R1 : $0.14M (hit de cache), $0.55M (cache manqué), $2.19M)
  • Cependant, le revenu réel est plus faible :
    • La tarification de DeepSeek-V3 est bien plus basse que celle de R1
    • Seule une partie du service est monétisée (l’usage via le web et l’app est proposé gratuitement)
    • Des remises automatiques sont appliquées la nuit

Dernière révélation, façon one more thing, parmi les 5 projets open source publiés sous DeepSeek Open Infra

1 commentaires

 
sppappi 2025-03-03

Il se bloque après trois questions...