راهرو معماری DeepSeek-V3
Type: Learn
Languages: Python (stdlib, parameter calculator)
Prerequisites: Phase 10 · 14 (open-model walkthroughs), Phase 10 · 17 (NSA), Phase 10 · 18 (MTP), Phase 10 · 19 (DualPipe)
Time: ~75 minutes
اهداف یادگیری
- پیکربندی DeepSeek-V3 را از بالا تا پایین بخوانید و هر زمینه را از نظر شش دکمه GPT-2 و چهار اضافه خاص DeepSeek توضیح دهید.
- تعداد پارامترهای کل (671B) ، تعداد پارامترهای فعال (37B) و اجزای کمک کننده به هر یک را حاصل کنید.
- نقش KV cache MLA را در 128k زمینه محاسبه کنید و با مقایسه با آنچه یک مدل تراکم فعال با GQA می تواند پرداخت کند، مقایسه کنید.
- چهار نوآوری خاص DeepSeek (MLA، MTP، رویت بدون ضرر دستی، DualPipe) را بیان کنید و نام بخش معماری/پرداخت آموزش هر یک را مشخص کنید.
مشکل
DeepSeek-V3 اولین مدل باز مرزی است که معماری آن با خانواده Llama متفاوت است. Llama 3 405B "GPT-2 با شش دکمه چرخیده" است. DeepSeek-V3 GPT-2 با تمام شش دکمه و چهار دکمه بیشتر است. خواندن پیکربندی Llama 3 یک گرمایش برای خواندن پیکربندی DeepSeek است، اما ساختار عمیق شکل بلاک توجه، منطق رویت، هدف زمان آموزش به اندازه کافی متفاوت است که شما نیاز به یک راه رفتن جداگانه دارید.
پاداش یادگیری آن: انتشار باز DeepSeek-V3 تغییر کرد که "قدرت مرزی" در مدل های باز چه معنی دارد. معماری طرح بسیاری از دوره های آموزشی 2026 است که کپی می کنند. درک آن است شرط میز برای هر نقش که به آموزش LLM مرزی یا نتیجه گیری مربوط می شود.
مفهوم
هسته غیر متغیر، دوباره
DeepSeek-V3 هنوز هم خودکشی است. هنوز هم بلوک های دیکودر را جمع می کند. هر بلوک هنوز هم توجه به همراه MLP به همراه دو RMSNorms دارد. هنوز هم در MLP از SwiGLU استفاده می کند. هنوز هم از RoPE استفاده می کند. پیش از استاندارد. گنجانده شده با وزن. همان خط پایه هر Llama یا Mistral.
موانع: MLA به جای GQA
از مرحله 10 · 14 می دانید که GQA KV cache را با تقسیم K و V در گروه های Q heads کاهش می دهد. توجه مختص متعدد (MLA) بیشتر می رود: K و V به یک نمایش مختص کم رتبه مشترک (تعداد) فشرده می شوند.kv_lora_rankدر KV cache تنها پوشیده شده است معمولا 512 شناور در هر توکن در هر لایه، نه 8 x 128 = 1024 شناور.
در زمینه 128k، DeepSeek-V3 با MLA (یک متمایز مشترک)c^{KV}هر توکن در هر لایه؛ K و V هر دو از این پنهان از طریق طرح های بالا است که می تواند جذب شود به ماتمول بعدی):
kv_cache = num_layers * kv_lora_rank * max_seq_len * bytes_per_element
= 61 * 512 * 131072 * 2
= 7.6 GBیک خط پایه GQA فرضی (شکل Llama 3 70B، 8 KV سر، سر کم 128) می تواند:
kv_cache = 2 * 61 * 8 * 128 * 131072 * 2
= 30.5 GBMLA 4 برابر کوچکتر از یک حافظه حافظه GQA سبک Llama-3-70B در زمینه 128k است.
مبادله: MLA یک مرحله تخفیف را در هر محاسبات توجه (در هر سر) اضافه می کند. محاسبات اضافی در مقایسه با عرض باند ذخیره شده کوچک است. برنده خالص برای نتیجه گیری زمینه طولانی است.
مسیر: تعادل بار بدون ضرر کمک کننده
روترهای MoE تصمیم می گیرند که کدام کارشناسان top-k هر توکن را پردازش می کنند. یک روتر ساده کار بیش از حد را روی چند متخصص متمرکز می کند و دیگران را بیکار می گذارد. راه حل استاندارد: یک اصطلاح ضایعات دستی اضافه کنید که عدم تعادل بار را مجازات می کند. این کار می کند اما عملکرد کار اصلی را کمی کاهش می دهد.
DeepSeek-V3 یک طرح بدون ضرر دستی را معرفی می کند. اصطلاحات تعصب هر متخصص به ثبت های روتر اضافه می شود، که در طول آموزش با یک قانون ساده تنظیم می شود: اگر متخصص eبیش از حد بارگذاری شده، کاهشbias_eاگر کمتر بار داشته باشد، افزایش دهید. مدت زمان اضافی از دست دادن نیست. آموزش تمیز باقی می ماند. بار متخصص متعادل باقی می ماند.
تاثیر بر ضرر اصلی: هیچ اندازه گیری ای. تاثیر بر معماری MoE: تمیز کننده، هیچ پارامتر اضافی از دست دادن برای تنظیم.
MTP: آموزش کثافت + draft رایگان
از مرحله 10 · 18 می دانید که DeepSeek-V3 ماژول D=1 MTP را اضافه می کند که دو موقعیت توکن را پیش بینی می کند. در نتیجه، ماژول آموزش دیده به عنوان یک طرح رمزگذاری حدس زده با پذیرش 80٪ + دوباره استفاده می شود. در آموزش، هر حالت پنهان در اهداف D+1 = 2 نظارت می شود، که سیگنال باریک تری را فراهم می کند.
پارامترها: 14B بالای 671B اصلی. هزینه های عمومی: 2.1%.
آموزش: دوپایپ
از مرحله 10 · 19 می دانید که DualPipe یک لوله دو جهت است که قطعات پیش و عقب با ارتباطات همه به همه از طریق گره عبور را همپوش می کند. در مقیاس 2,048-H800 DeepSeek-V3 ، تقریبا 245k GPU- ساعت را که 1F1B به سبب حباب لوله از دست داده است ، بازیابی می کند.
تنظیم، زمینه به زمینه
این پیکربندی DeepSeek-V3 است (به سادگی):
hidden_size: 7168
intermediate_size: 18432 (dense MLP hidden size, used on first few layers)
moe_intermediate_size: 2048 (expert MLP hidden size)
num_hidden_layers: 61
first_k_dense_layers: 3 (first 3 layers use dense MLP)
num_attention_heads: 128
num_key_value_heads: 128 (formally equal to num_heads under MLA, but
the real compression is in kv_lora_rank)
kv_lora_rank: 512 (MLA latent dimension)
num_experts: 256 (MoE expert count per block)
num_experts_per_tok: 8 (top-8 routing)
shared_experts: 1 (always-on shared expert per block)
max_position_embeddings: 163840
rope_theta: 10000.0
vocab_size: 129280
mtp_module: 1 (1 MTP module at depth 1)بهش فکر کن
hidden_size=7168: ابعاد ادغامnum_hidden_layers=61: عمق کل بلوکfirst_k_dense_layers=3: سه بلوک اول از یک MLP ضخیم اندازه 18432 استفاده می کنند. 58 بلوک باقیمانده از MoE استفاده می کنند.num_attention_heads=128: 128 سر سوالkv_lora_rank=512: K و V به این ابعاد پنهان فشرده شده و هر سر فشرده شده است.num_experts=256, num_experts_per_tok=8: هر بلوک MoE دارای 256 متخصص است، مسیرها در بالای 8 هستند.shared_experts=1: در بالای ۲۵۶ متخصص روت شده، یک متخصص همیشه در هر توکن مشارکت می کند. آن را به عنوان یک "پرده کثیف" که تضمین می کند هر توکن چیزی قابل اعتماد را دریافت می کند، تصور کنید.moe_intermediate_size=2048: اندازه پنهان MLP هر متخصص. کوچکتر از MLP کثافت به دلیل وجود دارد 256 آنها.
حسابداری پارامتر
حساب کامل در سالcode/main.pyعنوانش:
- ادغام:
vocab hidden = 129280 7168 = ~0.93B. . - اولین سه بلوک کثافت: توجه با MLA (~144M در هر بلوک) + MLP کثافت (~260M در هر بلوک) + نورمال. حدود 1.2B کل.
- 58 بلوک MoE: توجه با MLA (~144M) + 256 متخصص هر یک (30M هر) + 1 متخصص مشترک (30M) + استاندارد. کل ~7.95B در هر بلوک، از جمله همه کارشناسان. 461B کل برای 58 بلوک MoE.
- ماژول MTP: 14B
کل: ~476B برای معماری اصلی + 14B MTP + به طور مشخص شماره 671B منتشر شده برای پارامترهای ساختاری اضافی (تنسورهای تعصب، قطعات خاص متخصص، مقیاس تخصصی مشترک، و غیره) حسابداری است که ما در ماشین حساب در حدود 3-5% از منتشر شده است.
پارامترهای فعال در هر سمت:
- توجه: 144M در هر لایه * 61 = 8.8B (همه لایه ها آتش می زنند).
- MLP فعال: اولین 3 لایه کثافت (3 260M = 780M) ، 58 لایه MoE فعال با 8 مسیر + 1 مشترک + رویت Overhead. هر لایه فعال MLP: ~260M. کل: 3 260M + 58 * 260M = ~15.9B.
- گنجانده شدن + استاندارد: 1.2B.
- کل فعال: تقریبا 26B هسته + 14B MTP (تدربت شده اما همیشه در نتیجه گیری اجرا نمی شود) ≈ 37B.
نسبت 671B / 37B
نسبت کمکی 18x (پارام فعال 5.5% از کل) DeepSeek-V3 کمترین مدل MoE مرزی است که وزنهای باز را ارسال کرده است. Mixtral 8x7B در نسبت 13/47 (28%) بسیار تراکمتر است. Llama 4 Maverick در نسبت 17B/400B (4.25%) قابل مقایسه است. شرط DeepSeek: در مقیاس مرزی، کارشناسان بیشتری با نسبت فعال سازی پایین تر کیفیت بهتری را در هر FLOP فعال تولید می کنند.
جایی که DeepSeek-V3 میخواد
| Model | Total | Active | Ratio | Attention | Novel ideas |
|---|---|---|---|---|---|
| Llama 3 70B | 70B | 70B | 100% | GQA 64/8 | — |
| Llama 4 Maverick | 400B | 17B | 4.25% | GQA | — |
| Mixtral 8x22B | 141B | 39B | 27% | GQA | — |
| DeepSeek V3 | 671B | 37B | 5.5% | MLA 512 | MLA + MTP + aux-free + DualPipe |
| Qwen 2.5 72B | 72B | 72B | 100% | GQA 64/8 | YaRN extension |
دنباله: R1، V4
DeepSeek-R1 (2025) یک راه اندازی آموزشی استدلال در ستون فقرات V3 است. R1 از همان معماری استفاده می کند. آنچه تغییر کرد، نسخه پس از آموزش (RL در مقیاس بزرگ در وظایف قابل تأیید) است، نه معماری قبل از آموزش.
انتظار می رود که DeepSeek-V4 (اگر عرضه شود) MLA + MoE + MTP را حفظ کند و DSA (DeepSeek Sparse Attention) را اضافه کند، جانشین NSA از مرحله 10 · 17.
ازش استفاده کن
code/main.pyاین ماشین حساب پارامتر تخصصی برای شکل DeepSeek-V3 است. آن را اجرا کنید، تولید آن را با اعداد کاغذ مقایسه کنید و آن را در انواع فرضی (256 متخصص در مقابل 512, top-8 در مقابل top-16, MLA رتبه 512 در مقابل 1024) استفاده کنید.
چه چیزی رو باید ببینیم:
- تعداد پارامترهای کل در مقابل 671B منتشر شده
- تعداد پارامتر فعال در مقابل 37B منتشر شده
- KV cache در 128k زمینه MLA در مقابل GQA مقایسه.
- به طور مرتب به طور مرتب به طور مرتب به طور مرتب به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور کلی به طور به طور کلی به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به به به به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به طور به به طور به طور به طور به
-باده
این درس به ما کمک می کندoutputs/skill-deepseek-v3-reader.md. در نظر گرفتن یک مدل خانواده DeepSeek (V3 ، R1 یا هر نوع آینده ای) ، آن یک خواندن معماری قطعه به قطعه را تولید می کند که نام هر زمینه از پیکربندی را می دهد ، تعداد پارامترها را به لحاظ قطعه می گیرد و مشخص می کند که از چهار نوآوری خاص DeepSeek که مدل استفاده می کند.
تمرینات
- فرار کن
code/main.py. تخمین مجموع پارامتر ماشین حساب را با 671B منتشر شده مقایسه کنید و مشخص کنید که دلتا از کجا آمده است. بخش 2 مقاله جزئیات کامل را دارد.
- تنظیمات را تغییر دهید تا از رتبه MLA 256 به جای 512 استفاده کنید. اندازه حافظه کش KV را در زمینه 128k محاسبه کنید. چه درصد کاهش را می خرید و به چه هزینه ای برای بیانگرایی در هر سر؟
- مقایسه مسیر DeepSeek-V3 (256 متخصص، برتر-8) به یک فرضی (512 متخصص، برتر-8) . پارامترهای کل رشد می کنند؛ پارامترهای فعال یکسان باقی می مانند. ظرفیت تخصصی اضافی در تئوری چه چیزی را می خرید و در نتیجه هزینه اش چه خواهد بود؟
- بخش 2.1 گزارش فنی DeepSeek-V3 را بخوانید (arXiv:2412.19437) در مورد MLA. در سه جمله توضیح دهید که چرا می توان ماتریس های تخفیف K و V را برای بهره وری زمان نتیجه گیری " جذب " کرد.
- DeepSeek-V3 برای اکثر عملیات از آموزش FP8 استفاده می کند. ذخیره حافظه FP8 در مقابل BF16 برای ذخیره وزن 671B را محاسبه کنید. این چگونه با بودجه آموزش 14.8T-token متقابل است؟
اصطلاحات کلیدی
| Term | What people say | What it actually means |
|---|---|---|
| MLA | "Multi-Head Latent Attention" | Compress K and V into a shared low-rank latent (kv_lora_rank, typically 512), decompress per head on-the-fly; KV cache stores only the latent |
| kv_lora_rank | "MLA compression dim" | The size of the shared latent for K and V; DeepSeek-V3 uses 512 |
| First k dense layers | "Early layers stay dense" | The first few MoE-model layers skip the MoE router and run a dense MLP for stability |
| num_experts_per_tok | "Top-k routing" | How many routed experts fire per token; DeepSeek-V3 uses 8 |
| Shared experts | "Always-on experts" | Experts that process every token regardless of routing; DeepSeek-V3 uses 1 |
| Auxiliary-loss-free routing | "Bias-adjusted load balance" | Per-expert bias terms adjusted during training to keep expert load balanced without adding a loss term |
| MTP module | "Extra prediction head" | Transformer block predicting t+2 from h^(1) and E(t+1); denser training, free speculative-decoding draft |
| DualPipe | "Bidirectional pipeline" | Training schedule that overlaps forward/backward compute with cross-node all-to-all |
| Active parameter ratio | "Sparsity" | active_params / total_params; DeepSeek-V3 hits 5.5% |
| FP8 training | "8-bit training" | Training storage and many compute ops in FP8; roughly halves memory vs BF16 at a small quality cost |
خواندن بیشتر
- DeepSeek-AI — DeepSeek-V3 Technical Report (arXiv:2412.19437) مستند کامل معماری، آموزش و نتایج
- DeepSeek-V3 model card on Hugging Face فایل های پیکربندی و یادداشت های پیاده سازی
- DeepSeek-V2 paper (arXiv:2405.04434) پیشگام که MLA را معرفی کرد
- DeepSeek-R1 paper (arXiv:2501.12948) جانشین آموزش استدلال در معماری V3
- Native Sparse Attention (arXiv:2502.11089) جهت آینده توجه خانواده DeepSeek
- DualPipe repository برنامه آموزشی
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.