LLM 训练全景:Pre-train、SFT、RLHF、DPO 与蒸馏
LLM è®ç»å ¨æ¯ï¼Pre-trainãSFTãRLHFãDPO ä¸è¸é¦
ltl 2026-08-14 25 é 读25åéåæåå¸äº quant67.comï¼è½¬è½½è¯·ä¿çåºå¤ã
ä¸ã为ä»ä¹è¦æè®ç»å½ä½ä¸æ¡"æµæ°´çº¿"è䏿¯ä¸ä¸ªè®ç»èæ¬
å¾å¤åå¦ç¬¬ä¸æ¬¡è¯» torchrun --nproc_per_node=8 train.py çæ¶åï¼ä¼äº§çä¸ç§éè§ï¼å¤§æ¨¡åè®ç»=å 大 batchãå 大模åãå å¤§æ°æ®ãè·å 个æãçå®ä¸çéå®å
¨ä¸æ¯è¿æ ·ãä¸ä¸ªè§æ¨¡å LLM 项ç®çè®ç»æ æ´å䏿¡ç¼æ²¹åæµæ°´çº¿ï¼
- 䏿¸¸æ¯æ°æ®å·¥ç¨ï¼æåãæ¸ æ´ãå»éãåç±»ãé æ¯ãæå ãæ tokenizer ç tokensã
- 䏿¸¸æ¯é¢è®ç»ï¼Pre-trainï¼ï¼å åå¼ GPU è·å å天ï¼è¾åºä¸ä¸ª base 模å checkpointã
- 忥ä¸è®ï¼Mid-train / Continued-PTï¼ï¼å¨ base 䏿³¨å ¥æ°å¦ã代ç ãæ¨çãé¿ä¸ä¸æç"强åå£å³"çæ°æ®ã
- 䏿¸¸æ¯SFTï¼Supervised Fine-tuningï¼ï¼ææ¨¡åä»"è¡¥å ¨ææ¬"è°æ"è½å¬ææä»¤"ã
- åç»è¿å¯¹é½ï¼Alignmentï¼ï¼RLHFãDPOãGRPOãRLAIF çï¼æ"ä¼å¬æ"åæ"æç¨ãæ 害ãè¯å®"ã
- æè·¯è¿æè¸é¦ï¼Distillationï¼ï¼ä»å¤§æ¨¡åè¸åºå°æ¨¡åï¼ä»æ¨ç模åè¸åºéæ¨ç模åã
è¿ä¸ç¯ä¸å»é» 3D å¹¶è¡çç»èï¼é£æ¯ç¬¬ 06 ç¯ï¼ï¼ä¹ä¸å±å¼ RLHF çå ·ä½ç®æ³ï¼ç¬¬ 09 ç¯ï¼ï¼èæ¯å¸®ä½ 建ç«ä¸å¼ æ´ä½å°å¾ï¼ç¥éè®ç»éæ¯ä¸ªç¯èå¨å¹²ä»ä¹ãå¡ç¹å¨åªãä¸ç主æµé忝ä»ä¹ãå¦æä½ æ¯å¢ééæ°å å ¥çè®ç»å·¥ç¨å¸ï¼è¯»å®è¿ä¸ç¯ï¼è³å°å¨é¡¹ç®ä¾ä¼éè½æ¥å¾ä¸å¤§å®¶çé»è¯ã
äºãåé¶æ®µå·¥ç¨æ ï¼ä» Pre-train å° Alignment
2.1 æ»è§
ç°ä»£å¤§æ¨¡åï¼ä»¥ 2024â2025 å¹´ DeepSeek-V3ãQwen2.5ãLLaMA-3.1ãKimi K1.5 çå ¬å¼æ«é²ä¸ºåèï¼å ¸åè®ç»æ æ¯å段ï¼
flowchart TB
RAW["åå§ææ¬ / 代ç / 夿¨¡æ"] --> PT["Pre-trainï¼æ° T ~ åå T tokensï¼causal LM lossï¼å å天"]
PT -->|base model| MID["Mid-train / Continued-PTï¼æ°ç¾ B ~ æ° T tokensï¼æ°å¦ / 代ç / æ¨çå æï¼é¿ä¸ä¸ææ©å±"]
MID -->|enhanced base| SFT["SFTï¼æ°åä¸ ~ æ°ç¾ä¸ instruction pairsï¼å¦æ ¼å¼ + å¦è¡ä¸º"]
SFT -->|instruct model| ALIGN["Alignmentï¼åå¥½æ°æ®ï¼RLHF / DPO / GRPO / RLAIF / KTO"]
ALIGN -->|aligned model| DISTILL["Distillationï¼æè·¯ï¼ï¼teacher â studentï¼æ¨çè¸é¦ï¼o1 / R1 èå¼ï¼"]
ä¸åå ¬å¸å¨è¿å段éæå ¥çç®åå æ¯å·®å«å¾å¤§ãç²ç¥è§å¾ï¼
- Pre-train åæ 90%+ ç GPU-hourã
- Mid-train 5% å·¦å³ï¼ä½å¯¹ä¸æ¸¸è½åä¸éè³å ³éè¦ã
- SFT é常ä¸å° 1%ã
- Alignment çç®åä¸é«ï¼ä½å·¥ç¨å¤æåº¦æé«ï¼éè¦ reward modelãPPO actor/criticãonline rolloutãæ°æ®åé¦éç¯ï¼ã
2.2 Pre-trainï¼è®©æ¨¡å"è§è¿ä¸ç"
é¢è®ç»é¶æ®µç®æ 徿´ç´ ï¼ç»å®ä¸æ®µææ¬åç¼ï¼é¢æµä¸ä¸ä¸ª tokenï¼causal LMï¼ãLoss æ¯æ å交åçµã
å·¥ç¨ä¸çæ ¸å¿ææä¸æ¯ç®æ³ï¼èæ¯ï¼
- æ°æ®å¤ä¸å¤ãå¹²ä¸å¹²åï¼ä¸æ¬¡ 13T tokens çé¢è®ç»ï¼æ°æ®åºéä¸è½®ï¼æå¤±çæ¯å åä¸ç¾éã
- è®ç»ç¨³ä¸ç¨³ï¼loss spikeãNaNãgrad norm çç¸ï¼éè¦ checkpoint + åæ» + è·³ batchã
- ååè½ä¸è½ææ»¡ï¼3D å¹¶è¡ + éä¿¡éå + FP8ï¼MFUï¼Model FLOPs Utilizationï¼ä» 30% æ å° 50%+ã
- æ éè½ä¸è½å®¹å¿ï¼åå¡è®ç»å å天ï¼åå¡ MTBF å åå°æ¶ï¼æå³çæ¯å¤©é½æå¡æã
2.3 Mid-train / Continued-PTï¼æ"éæ"æå"ç¡¬æ ¸"
Mid-train æ¯ 2024 年以åè¶æ¥è¶æ ååçé¶æ®µãå¨ base å¿«è®å®æ¶ï¼è°æ´æ°æ®é æ¯ï¼æ¾èå ææ°å¦ã代ç ãSTEMãæ¨çç±»æ°æ®ï¼åæ¶å¾å¾æä¸ä¸æé¿åº¦ä» 4K/8K æ©å° 32K/128K/1Mã
- DeepSeek-V3 å¨åæé¶æ®µæä¸ä¸æä» 4K æ©å° 32K åå° 128Kï¼é å YaRN ç±»æ¹æ³ã
- Qwen2.5 å¨ Continued-PT é¶æ®µä½¿ç¨äºæ´å¤§æ¯ä¾ç代ç /æ°å¦æ°æ®ï¼base 模å MATH/HumanEval åæ°å¤§å¹ ä¸åã
- LLaMA-3 ä¹æç±»ä¼¼ç "annealing" é¶æ®µï¼éä½å¦ä¹ çãæ¢æ°æ®é æ¯ãå·é«è´¨éæ°æ®ã
è¿ä¸é¶æ®µçå·¥ç¨æä¹æ¯ï¼å¨ä¸éæ°è±ä¸éé¢è®ç»é±çåæä¸ï¼ç¨ 5%~10% çé¢å¤ç®åï¼æ¿å°æ¾èçè½åè·åã
2.4 SFTï¼ææ¨¡å"å¬äººè¯"
SFT ç¨æä»¤-åç对ï¼instruction pairsï¼åçç£å¦ä¹ ï¼loss ä» å¨ response é¨å计ç®ï¼prompt mask æï¼ãå ¸åè§æ¨¡ï¼
- æ©å¹´ Alpaca / Vicunaï¼å ä¸~å å䏿¡ï¼
- å½ä¸å¤´é¨å¼æºæ¨¡åï¼å ç¾ä¸æ¡ï¼ä¸å¤è½®ãå¤ä»»å¡ãå¤é¢åã
SFT çå·¥ç¨éç¹ï¼
- æ°æ®è´¨é >> æ°æ®æ°éï¼ä¸æ¡ GPT-4 çæçé«è´¨éçæ¡ï¼èè¿åæ¡äººå·¥ç³æ´»ã
- å¤è½®å¯¹è¯æ¼æ¥ï¼loss mask åªæå¨ assistant turn ä¸ï¼system/user turn ä¸ç® lossã
- é¿æ ·æ¬æå ï¼packingï¼ï¼æå¤æ¡çæ ·æ¬æ¼å°ä¸ä¸ªåºåéï¼ä½ç¨ attention mask é离ï¼ä»¥æ¦¨å¹²æ¾åå©ç¨çã
2.5 Alignmentï¼è®©æ¨¡å"对å¾ä¸äºº"
对é½é¶æ®µæä¸å ç®æ³ï¼å·¥ç¨ä¸å¸¸è§ï¼
- RLHFï¼PPOï¼ï¼ç»å ¸ä¸ä»¶å¥ââSFT 模åãreward modelãPPO actor+criticã夿ãåæ¾åãå¯¹è¶ åææï¼ä½ä¸éæé«ã
- DPOï¼Direct Preference Optimizationï¼ï¼ä¸ç¨ RLï¼ç´æ¥å¨å好对
(chosen, rejected)ä¸åå¯¹æ¯æå¤±ãè®ç»ç¨³å®ãææ¬ä½ï¼æ¯å¼æºç¤¾åºä¸»åã - GRPOï¼Group Relative Policy Optimizationï¼ï¼DeepSeek æåºï¼å»æ criticï¼ç¨ä¸ç» rollout çç¸å¯¹ reward åä¼å¿ä¼°è®¡ï¼å¨æ¨ç模åè®ç»ï¼R1ï¼ä¸å¤§æ¾å¼å½©ã
- RLAIFï¼ç¨æ´å¼ºç LLM å rewardï¼æ¿ä»£äººå·¥æ 注ï¼ä¾¿å®ä½æåå·®ã
- KTOãIPOãSimPOãORPOï¼DPO åä½ï¼åå®¶å¨ç¨³å®æ§ä¸æ§è½ä¸å¾®è°ã
第 09 ç¯ä¼å±å¼ RLHF æµæ°´çº¿ï¼è¿éåªéè®°ä½ï¼Alignment çç¡¬ä»¶éæ±å°äº pretrainï¼ä½å·¥ç¨é¾è·¯æé¿ââå®éç¯è¿æ¥æ°æ®ã模åãè¯æµãç°åº¦ä¸çº¿ä¸åé¦ã
2.6 è¸é¦ï¼æè·¯çéè¦ç»ä»¶
è¸é¦æä¸¤ç±»ï¼
- è½åè¸é¦ï¼å¤§æ¨¡åçæååºï¼å°æ¨¡å模仿ãå ¸åä¾åæ¯ DeepSeek-R1 æ 671B MoE çæ¨çè½åè¸å° 7B/14B/32B ç Qwen/LLaMA ç¨ å¯æ¨¡åã
- è¡ä¸ºè¸é¦ï¼è®©"æ¨ç模å"ææèé¾ï¼CoTï¼è¸ç»"éæ¨çæ¨¡å"ï¼å¾å°ææ¬å¯æ§ç production 模åã
å·¥ç¨ä¸ï¼è¸é¦é常å¤ç¨ SFT ç代ç è·¯å¾ï¼åºå«æ¯æ°æ®æ¥æºä»"人工/GPT-4"åæ"teacher model å¨çº¿çæ"ã
2.7 åé¶æ®µçç®å / æ°æ® / å·¥ç¨å¤æåº¦éæ¥
| é¶æ®µ | å ¸å tokens | ç®åå æ¯ | 主è¦ç¶é¢ | å ¸å wall-clock |
|---|---|---|---|---|
| Pre-train | æ° T ~ 15T | 90%+ | 3D å¹¶è¡ + æ éå®¹å¿ | å å¨ ~ å 个æ |
| Mid-train | æ°ç¾ B ~ 2T | 3%~8% | æ°æ®é æ¯ + ä¸ä¸ææ©å± | å 天 ~ å å¨ |
| SFT | 10M ~ 1B | <1% | æ°æ®è´¨é + packing | å å°æ¶ ~ å 天 |
| Alignment | 100M ~ æ° Bï¼å« rolloutï¼ | 1%~5% | rollout åå + reward ç¨³å®æ§ | å 天 ~ å å¨ |
| Distillation | 10B ~ æ°ç¾ B | è§è¸é¦æ·±åº¦ | teacher æ¨çåå | å 天 |
è¿å¼ 表çæä¹å¨äºé¢ç®è§åï¼å¦æèæ¿é®"æç»ä½ 1000 å¼ H100 两个æï¼è½ä¸è½è®ä¸ç模å"ï¼ä½ è³å°ç¥éæ¶é´ä¸»è¦è±å¨åªï¼æ¹åªä¸ªé¶æ®µè½è ¾åºç©ºé´åå®éªã
ä¸ãæ°æ®å·¥ç¨ï¼è®ç»æè´¥çä¸é
3.1 æ°æ®æºçæ
- Common Crawlï¼äºèç½æåçåå§ HTMLï¼æ° PBï¼è乱差ä½"é大管饱"ï¼æ¯ææé¢è®ç»çåºç³ã
- C4ï¼Colossal Clean Crawled Corpusï¼ï¼Google T5 æ¸ æ´è¿ç Common Crawl åéã
- RedPajamaï¼å¼æºç¤¾åºå¤ç° LLaMA-1 æ°æ®é æ¹ç 1.2T tokens æ°æ®éã
- The Pileï¼EleutherAI åºåï¼825GBï¼å¤æ¥æºï¼ä¹¦ç±ã代ç ã论æãStack Exchange çï¼ã
- 书ç±ï¼Books3ï¼å·²å çæäºè®®è¢«ä¸æ¶ï¼ãProject GutenbergãAnna's Archive çï¼äºè®®æç»åå¨ã
- 代ç ï¼The Stackï¼Hugging Face + ServiceNowï¼ï¼v2 æ 900+ è¯è¨ãè¿ 70TBãGitHub æ°æ®æ¯ä»£ç è½åæ ¸å¿ã
- å¤è¯ç§ï¼CC-100ãmC4ãOSCARï¼ä¸æä¸é¡¹æ WuDaoCorporaãSkyPile-150BãMAP-CC çã
- 妿¯/é®çï¼arXivãPubMedãStack ExchangeãWikipediaã
- åææ°æ®ï¼2024 å¹´ä¹å强å¿å´èµ·ââç¨ GPT-4 / Claude / DeepSeek çæçé«è´¨é QAãæ°å¦ãä»£ç æ¯ QwenãPhiãDeepSeek çå ¬å¼æ¿è®¤ä½¿ç¨çèµæºã
å½å å ¬å¼æ°æ®éï¼
- WuDaoCorporaï¼æºæºï¼ä¸æ 5TBã
- SkyPile-150Bï¼æä»ä¸ç»´ã
- MAP-CCï¼å¼æºä¸æè¯æèçã
- CCI / CCI3ï¼æºæº+䏿µ· AI Lab ç䏿äºèç½æ¸ æ´éã
3.2 å»éï¼MinHash ä¸ SimHash
å»é对 loss 䏿³åçå½±å被åå¤éªè¯ãLLaMAãRefinedWebãDolma 齿æ¿è¿å»éåè¿äºé æ¹ã
ä¸¤å¤§ç±»ææ¯ï¼
- MinHash + LSHï¼å¯¹æ¯ä¸ªææ¡£ç¨ shingles â MinHash ç¾å â LSH åæ¡¶æ¾è¿ä¼¼éå¤ãLLaMAãRedPajamaãDolma é½ç¨å®ãéå¼ä¸è¬è®¾ Jaccard ⥠0.8ã
- SimHashï¼Google ç½é¡µå»éç»å ¸ï¼ç¾åçãé度快ï¼ä½å¬åç¥ä½äº MinHashã
# datasketch å MinHash LSH çæå°ç¤ºä¾
from datasketch import MinHash, MinHashLSH
def minhash(text, num_perm=128):
m = MinHash(num_perm=num_perm)
for shingle in (text[i:i+5] for i in range(len(text)-4)):
m.update(shingle.encode("utf-8"))
return m
lsh = MinHashLSH(threshold=0.8, num_perm=128)
for doc_id, text in docs:
lsh.insert(doc_id, minhash(text))
# æ¥è¯¢è¿ä¼¼éå¤
dups = lsh.query(minhash(new_text))
ç产éä¸è¬ä¸ä¼ç´æ¥ç¨ datasketchï¼èæ¯ Spark/Ray + GPU å éçæµæ°´çº¿ï¼å¦ NVIDIA NeMo CuratorãDataComp-LM å·¥å ·é¾ï¼ã
3.3 è´¨éè¿æ»¤ä¸æ¯æ§è¿æ»¤
å ¸åæµæ°´çº¿å±æ¬¡ï¼ä»ç²å°ç»ï¼ï¼
- è¯è¨è¯å«ï¼fastTextãCLD3ã
- å¯åå¼è§åï¼è¡é¿åº¦ãæ ç¹æ¯ä¾ãéå¤çãHTML æ®çãå ³é®è¯é»ååï¼Gopher rulesãC4 rules é½å¼æºï¼ã
- åç±»å¨è¿æ»¤ï¼FastText è®ç»çè´¨éåç±»å¨ï¼ä»¥ Wikipediaã书ç±ä¸ºæ£æ ·æ¬ï¼CC ä¸ºè´æ ·æ¬ï¼ï¼æ perplexity filterï¼ç¨å° LM è¿æ»¤ï¼ã
- æ¯æ§/NSFW è¿æ»¤ï¼Perspective APIãèªç åç±»å¨ï¼æ§æ´åã仿¨è¨è®ºãPII æåã
- PII è±æï¼é®ç®±ãææºå·ã身份è¯å·ãä¿¡ç¨å¡å·ç¨æ£å + NER å¹é æ¿æ¢ã
- è¿ä¼¼å»éï¼ä¸èç MinHash/SimHashã
- åºå污æè¿æ»¤ï¼decontaminationï¼ï¼æ«æè®ç»é鿝妿··å ¥äº MMLUãGSM8KãHumanEval çè¯æµé¢ç®ï¼å¿ é¡»æ¸ é¤ï¼å¦åè¯æµåæ¯"å·æ¥ç"ã
3.4 æ°æ®é æ¯ï¼å å®¶å ¬å¼é æ¹
| 模å | æ«é² / æ¨æµçé æ¯ï¼æè¦ï¼ |
|---|---|
| LLaMA-1 | CC 67%ãC4 15%ãGitHub 4.5%ãWikipedia 4.5%ãBooks 4.5%ãarXiv 2.5%ãStack Exchange 2% |
| LLaMA-3 | æªå ¬å¼å ·ä½æ¯ä¾ï¼ä½æ«é²"代ç å æ¯æ¾èæé«ãå¤è¯ç§ 5%"ãæ»é 15T tokens |
| DeepSeek-V3 | 14.8T tokensï¼ä¸è±åè¯ä¸ºä¸»ï¼ä»£ç /æ°å¦æ¯éé«äº V2ï¼FP8 è®ç» |
| Qwen2.5 | 18T tokensï¼å¼ºå代ç ãæ°å¦ãå¤è¯ç§ï¼é¿ææ¬é¶æ®µ 1M ä¸ä¸æ |
| Mistral / Mixtral | æªå ¬å¼ |
| Phi-3 | 强è°"textbook quality"åææ°æ® + ç²¾éç½é¡µ |
Mid-train çé æ¯å忝è½åçªè·³çå ³é®ï¼æä»£ç +æ°å¦+æ¨çä» 20% æå° 40%+ï¼STEM åºå线æ§ä¸æ¶¨ï¼ä½ä¼çºç²ä¸äºéè¯é®çä¸çåå¸ã
3.5 æ°æ®æå ä¸ tokens 计æ°
é¢è®ç»åï¼æ°æ®è¦è¢«"æå "æåºå®é¿åº¦çåºåï¼å¦ 4096 æ 8192ï¼ã两ç§åæ³ï¼
- Document concatï¼å¤ç¯ææ¡£ç¨
<eos>æ¼æ¥ååçãè®ç»æçé«ï¼ä½è·¨ææ¡£ç attention å¯è½å¼å ¥åªå£°ã - In-sample packing with attn maskï¼æ¼æ¥ä½ç¨ block-diagonal attention mask éç¦»ææ¡£ï¼ä¿è¯å æä½é¿å è·¨ææ¡£æ±¡æãç°ä»£æ¡æ¶ï¼Megatron-LMãDeepSpeedãAxolotlï¼åºæ¬é½æ¯æã
3.6 æ°æ®è´¨éè¯ä¼°çå 个å®ç¨ç»´åº¦
å ç token æ°ä¸å¤ï¼ä¸é¢å 个维度æ¯å¤´é¨å¢éå®é å¨ç¯çï¼
- ææ tokensï¼effective tokensï¼ï¼å»é + è¿æ»¤åçå tokensï¼ä¸æ¯åå§æåéã
- è¯è¨/é¢ååå¸ï¼CC 天ç¶åè±æåæ°é»ï¼å»æè¡¥ä¸æã代ç ãæ°å¦ãSTEMãé¿ææ¬ã
- ææ¡£é¿åº¦åå¸ï¼è¿çï¼< 128 tokensï¼åè¿é¿ï¼> 64Kï¼é½è¦ç¹å«å¤çã
- perplexity åå¸ï¼ç¨ä¸ä¸ªå° LM æåï¼å餿é«ï¼ä¹±ç ï¼åæä½ï¼é夿¨¡æ¿ï¼ã
- éå¤ n-gram çï¼æ´ä½ 6-gram éå¤ç < æé弿¯å¸¸è§åå ¥æ¡ä»¶ã
- æ¯æ§ / åè§è¯ååå¸ï¼é²æ¢åç» alignment éè¦è±å¾å¤§åæ°"æ´"ã
- åææ°æ®å æ¯ï¼2024 å¹´åä¸ä¸ªæ°çæ§ç¹ï¼è¿é«ä¼æ¾å¤§æ¨¡åèªèº«çå¹»è§ã
æè¿äºææ åææ¯æ¹æ°æ®ç"data card"ï¼ä¸è®ç» ckpt ä¸èµ·å½æ¡£ï¼æ¯å¯å®¡è®¡è®ç»æµç¨çåºç¡ã
åãTokenizerï¼ç»å¸¸è¢«ä½ä¼°çå ³é®ç»ä»¶
4.1 主æµç®æ³
- BPEï¼Byte Pair Encodingï¼ï¼GPT-2ãLLaMAãMistralãQwenãDeepSeek é½å¨ç¨ãä»åè/å符åºåï¼è´ªå¿åå¹¶é¢çæé«ç pairã
- WordPieceï¼BERT ç³»åç»å ¸ï¼å BPE 类似ä½åå¹¶å忝似ç¶èéé¢çã
- SentencePieceï¼Google çå®ç°ï¼æ¯æ BPE ä¸ Unigramï¼ç´æ¥ååå§åèæµï¼æ éé¢åè¯ï¼ï¼å¯¹å¤è¯ç§å好ã
- Unigram LMï¼SentencePiece çå¦ä¸æ¨¡å¼ï¼LLaMA tokenizer ä¹åä¹ç¨è¿ã
- Tiktokenï¼OpenAI ç髿§è½ BPE å®ç°ï¼Rustï¼ï¼è¢« GPT-3.5/4/4o 使ç¨ã
4.2 è¯è¡¨å¤§å°çæè¡¡
| è¯è¡¨ | ä¼å¿ | å£å¿ |
|---|---|---|
| å°ï¼32Kï¼LLaMA-1/2ï¼ | embedding å°ï¼å¦ä¹ å å | 䏿ã代ç åç¢ï¼åºååé¿ |
| ä¸ï¼64K~128Kï¼LLaMA-3ãQwen2ãDeepSeek-V3ï¼ | å¤è¯ç§å好ï¼åºåç | embedding æ¾åå大 |
| 大ï¼200K+ï¼GPT-4oï¼ | æè´å¤è¯ç§ä¸ç¬¦å·è¦ç | embedding åæ°æ´æ¶¨ |
åºåé¿åº¦ä¸è¯è¡¨çå ³ç³»æ¯ä¹æ³å ³ç³»ï¼è¯è¡¨ç¿»åï¼å¹³å tokens æ°æ¾èéä½ï¼è®ç»åæ¨çååç´æ¥åçãDeepSeek-V3 ç tokenizer è¯è¡¨æ©å° 128Kï¼æ ¸å¿å¨æºä¹ä¸å°±æ¯æä¸æå缩çæä¸å»ã
4.3 ä¸æä¸ Unicode çå
- BPE è¦åºäºåèï¼byte-level BPEï¼ï¼èé Unicode å符ï¼å¦å emojiãç½è§åä¼ OOVãGPT-2 以å齿¯ byte-levelã
- 䏿é¢åè¯ï¼SentencePiece ä¸éè¦ï¼Tiktoken ç¨æ£åååï¼ä¼æä¸æåæååæå+符å·ï¼å¯¹ä¸ææ¨¡åå¹¶ä¸çæ³ã
- ç»å emojiãZWJ åºåï¼æµè¯ tokenizer ä¸å®è¦è¦çã
- æ°åå¤çï¼LLaMA-1 ç tokenizer ææ°ååç¬ææ digitï¼å¯¹æ°å¦æ¨çæ´å好ï¼GPT-4 ç Tiktoken å¨ o200k è¯è¡¨éä¹è°æ´äºæ°åæåã
# ç¨ tokenizers åºè®ç»ä¸ä¸ª byte-level BPE çæå°éª¨æ¶
from tokenizers import Tokenizer, models, trainers, pre_tokenizers, decoders
tok = Tokenizer(models.BPE(unk_token="<unk>"))
tok.pre_tokenizer = pre_tokenizers.ByteLevel(add_prefix_space=False)
tok.decoder = decoders.ByteLevel()
trainer = trainers.BpeTrainer(
vocab_size=128_000,
special_tokens=["<|endoftext|>", "<|im_start|>", "<|im_end|>"],
initial_alphabet=pre_tokenizers.ByteLevel.alphabet(),
)
tok.train(files=["corpus/*.txt"], trainer=trainer)
tok.save("tokenizer.json")
äºãè®ç»ç®æ ï¼ä¸æ¢ Causal LM
5.1 Causal LM
ä¸»æµ decoder-only 模åç lossï¼
L=â1Tâtlogâ¡P(xtâ£x<t)L = -\frac{1}{T} \sum_{t} \log P(x_t \mid x_{<t})L=âT1âtââlogP(xtââ£x<tâ)å®ç°ä¸å°±æ¯æ input_ids å³ç§»ä¸ä½ä½ä¸º labelsï¼ç¨äº¤åçµã
5.2 Masked LM
BERT ç³»åï¼15% éæº mask 颿µå tokenãç°å¨å¾å°ç¨äºå¤§æ¨¡åé¢è®ç»ï¼ä½å¨ embedding 模åãæ£ç´¢æ¨¡åãç¼ç å¨ä¸ä»ç¶æ¯ä¸»åï¼BGEãE5ãGTE çï¼ã
5.3 MoE è·¯ç±æå¤±
MoEï¼Mixture of Expertsï¼æ¨¡åé¤äºä¸» lossï¼è¿æè´è½½åè¡¡æå¤±ï¼load balancing lossï¼årouter z-lossãDeepSeek-V3 å¨è¿ä¸åæåºäº Auxiliary-Loss-Free Load Balancingï¼ä¸åé é¢å¤ loss å¼ºæ¨ expert åè¡¡ï¼èæ¯å¨ gating æ¶å¯¹æ¯ä¸ª expert å ä¸ä¸ªå¨æ biasï¼è¿è¡æ¶æ ¹æ®å®é è´è½½è°æ´ãè¿é¿å äºè¾ å© loss 对主 loss çæ°å¨ï¼æ¯ V3 è®ç»ç¨³å®çä¸ä¸ªéè¦åå ã
5.4 Multi-Token Predictionï¼MTPï¼
DeepSeek-V3 è¿å¼å ¥äº MTPï¼æ¯ä¸æ¥ä¸ä» 颿µä¸ä¸ä¸ª tokenï¼è¿é¢æµæªæ¥ k 个 tokenãè¿ç»äºä¸é好å¤ï¼
- è®ç»ä¿¡å·æ´ç¨ å¯ï¼æ°æ®å©ç¨çæé«ï¼
- æ¨çæ¶å¯ä»¥ä½ä¸º**æ¨æµè§£ç ï¼speculative decodingï¼**ç draftï¼æåè§£ç ååï¼
- 对é¿è·ç¦»ä¾èµæè½»å¾®æ£åä½ç¨ã
MTP ç lossï¼
Ltotal=LCE(t+1)+λ1LCE(t+2)+λ2LCE(t+3)+â¯L_{\text{total}} = L_{\text{CE}}(t+1) + \lambda_1 L_{\text{CE}}(t+2) + \lambda_2 L_{\text{CE}}(t+3) + \cdotsLtotalâ=LCEâ(t+1)+λ1âLCEâ(t+2)+λ2âLCEâ(t+3)+â¯ç¬¬ 15 ç¯ä¼è¯¦ç»è®²æ¨æµè§£ç ä¸ MTP çæ¨çä¾§åºç¨ã
5.5 å ç§è®ç»ç®æ çç»å
ç°ä»£ frontier 模åç loss å¾å°åªæä¸é¡¹ãä¸ä¸ªå ¸åç DeepSeek-V3 飿 ¼ lossï¼
L=LCE(next)â主 causal LM+λmtpâkLCE(next+k)âMulti-Token Prediction+λz(logsumexpâ¡(logits))2ârouter z-lossï¼MoEï¼L = \underbrace{L_{\text{CE}}(\text{next})}_{\text{主 causal LM}} + \underbrace{\lambda_{\text{mtp}} \sum_k L_{\text{CE}}(\text{next}+k)}_{\text{Multi-Token Prediction}} + \underbrace{\lambda_z \big(\operatorname{logsumexp}(\text{logits})\big)^2}_{\text{router z-lossï¼MoEï¼}}L=主 causal LMLCEâ(next)ââ+Multi-Token PredictionλmtpâkââLCEâ(next+k)ââ+router z-lossï¼MoEï¼Î»zâ(logsumexp(logits))2ââå ¶ä¸è´è½½åè¡¡èµ° aux-loss-free æ¹æ¡ï¼gating bias å¨æè°æ´ï¼ï¼ä¸è¿ lossã对 LLaMA-3 è¿æ ·çç¨ å¯æ¨¡ååç®åå¾å¤ï¼å ä¹åªæä¸» CE lossãå¤é¡¹ loss ä¹é´çæé λ æ¯å·¥ç¨çå¦ï¼ä¸è¬ä¼å¨å°è§æ¨¡ï¼1B~7Bï¼ä¸æ«ä¸æ¬¡ï¼ç¶å scale up 沿ç¨ã
å ãä¼åå¨ä¸å¦ä¹ çè°åº¦
6.1 Adam / AdamWï¼èå°ä»å¨
大模åè®ç»äºå®æ 忝 AdamWï¼Adam + decoupled weight decayãåå ï¼
- èªéåºäºé¶å¨é对ä¸ååæ°éçº§é²æ£ï¼
- decoupled weight decay é¿å åå¨éæ··æ·ï¼æ³åæ´å¥½ã
ä»£ä»·æ¯æ¾å 2xï¼æ¯åæ°é¤äº FP32 master weight å¤ï¼è¿æ mãv ä¸¤ä¸ªç¶æã
å ¸åè¶ åï¼æ²¿ç¨ GPT-3/LLaMA é æ¹ï¼ï¼
AdamW(lr=peak_lr, betas=(0.9, 0.95), eps=1e-8, weight_decay=0.1)
beta2=0.95ï¼èéé»è®¤ 0.999ï¼æ¯å¤§æ¨¡åå®è·µçå
±è¯ï¼éä½äºé¶å¨éçæ¯æ§å¯ä»¥é¿å
é¿è®ç»ä¸çåæåæ£ã
6.2 Lionï¼æ´çæ¾åçé»é©¬
Google 2023 å¹´æåºç Lion ä¼åå¨åªä¿çå¨é mmmï¼ç¨ sign-based æ´æ°ï¼
update=signâ¡(β1m+(1âβ1)g)\text{update} = \operatorname{sign}\big(\beta_1 m + (1 - \beta_1) g\big)update=sign(β1âm+(1âβ1â)g)æ¾åæ¯ AdamW çä¸åï¼å¨ ViTãè¯è¨æ¨¡åä¸è¡¨ç°æ¥è¿ææ´å¥½ãä½å¯¹å¦ä¹ çå weight decay çè°åçªå£æ´çªï¼ç¤¾åºéç¨çä¸å¦ AdamWã
6.3 Muonï¼2024 çæ°ç§
Muonï¼Keller Jordan çï¼åºäº**ç©éµæ£äº¤åï¼Newton-Schulz è¿ä»£ï¼**对梯度åé¢å¤çï¼åæ½å å¨éæ´æ°ãå¨ nanoGPT-speedrun 社åºå·æ¦ï¼Kimi K2 å¨å ¬å¼ææ¯æ¥åä¸æç¡®ä½¿ç¨ Muon ä½ä¸ºé¢è®ç»ä¼åå¨ï¼è¿æ¯ Muon å¨å¤§è§æ¨¡ç产éçéè¦è书ã
å·¥ç¨ä¸ï¼Muon åªéå 2D åæ°ç©éµï¼å ¨è¿æ¥å±ãattention æå½±ï¼ï¼å¯¹ embeddingãLayerNormã1D bias ä»ç¨ AdamWãè¿ç§"æ··åä¼åå¨"åæ³ï¼
muon_params, adamw_params = [], []
for n, p in model.named_parameters():
if p.ndim == 2 and "embed" not in n and "lm_head" not in n:
muon_params.append(p)
else:
adamw_params.append(p)
opt_muon = Muon(muon_params, lr=0.02, momentum=0.95)
opt_adam = torch.optim.AdamW(adamw_params, lr=3e-4)
6.4 å¦ä¹ çè°åº¦
主æµä¸¤ç§ï¼
- Warmup + Cosine Decayï¼å 1%~3% æ¥ warmup å°å³°å¼ï¼ç¶å cosine éå° 10% å³°å¼ãGPT-3ãLLaMAãQwen çé½ç¨å®ã
- WSDï¼Warmup-Stable-Decayï¼ï¼warmup â é¿æ¶é´æå® â æåçè¡°åãMiniCPMãDeepSeek çç¨è¿ï¼å¥½å¤æ¯"decay åå¯ä»¥å½ä½ mid-train ç base"ï¼ç»§ç»è®ç»æ annealing 齿¹ä¾¿ã
flowchart LR
subgraph COS["Cosine æ¹æ¡"]
C1["warmup åå°å³°å¼"] --> C2["cosine è¡°å"] --> C3["éå°çº¦ 10% å³°å¼"]
end
subgraph WSD["WSD æ¹æ¡"]
W1["warmup åå°å³°å¼"] --> W2["stableï¼é¿æ¶é´æå®"] --> W3["æåçè¡°å"]
end
6.5 WSD 为ä»ä¹éåç°ä»£è®ç»
WSD çä¸ä¸ªéæ§å¥½å¤æ¯"stable é¶æ®µç checkpoint å¯ä»¥å½ base"ãä½ å¯ä»¥ï¼
- å¨ stable é¶æ®µæ«å°¾å ckptï¼ä½ä¸º continued-PT / mid-train çèµ·ç¹ï¼
- ä¸åæ¹åç mid-trainï¼ä»£ç 强å / æ°å¦å¼ºå / å¤è¯å¼ºåï¼åºäºåä¸ stable ckpt 忝å®éªï¼
- æç» decay é¶æ®µå¯ä»¥é对ä¸åä¸å¡å夿¬¡ç¬ç« decayï¼ç¨ä¸åçæ°æ®é æ¯ï¼ï¼å½¢æå¤ä¸ªçº¿ä¸æ¨¡åã
cosine scheduler åè¦æ±ä½ å¨è®ç»å¼å§æ¶å°±å³å®å¥½æ»æ¥æ°ï¼ä¸éæ¹æ¥æ°ä¼ç ´åå 使§è´¨ï¼åæ¯å®éªææ¬é«ãè¿ä¹æ¯ä¸ºä»ä¹ MiniCPMãDeepSeek ä¹åè¶æ¥è¶å¤å¢éåå° WSDã
ä¸ã精度ï¼FP32 â BF16 â FP8 â FP6/FP4
精度æ¼åç´æ¥å³å®è®ç»ææ¬ï¼
| 精度 | å ¸å硬件 | 代表 | 夿³¨ |
|---|---|---|---|
| FP32 | ææ GPU | 2017 以å | ç¨³ï¼æ ¢ |
| FP16 æ··å精度 | Volta 以å | GPT-3ãæ©æ LLaMA | é loss scalingï¼å¨æèå´å° |
| BF16 æ··å精度 | A100/H100 | LLaMA-2/3ãQwenãGPT-4 è®ç»ä¸»æµ | 卿èå´å¤§ = FP32ï¼ç²¾åº¦ç¥ä½ |
| FP8 | H100 Hopper | DeepSeek-V3 å ¨æµç¨ FP8ãLlama-3 é¨å FP8 | E4M3 / E5M2 ä¸¤ç§æ ¼å¼ |
| FP6 / FP4 | B200 Blackwell | 2025 å¹´èµ· | æ¨ç主导ï¼è®ç»æ¢ç´¢ä¸ |
7.1 æ··å精度çåºæ¬ç»æ
åå¼ éç精度åå·¥ï¼
- forward / backward 计ç®ç¨ BF16ï¼æ FP8ï¼ï¼
- 梯度 all-reduce ç¨ BF16ï¼
- ä¼åå¨ç¶æï¼mmmãvvvï¼ç¨ FP32ï¼
- master weight ç¨ FP32ã
æ¯ä¸æ¥çæµç¨æ¯ï¼FP32 master weight å cast æ BF16 æéåä¸ forwardï¼ååå¾å° BF16 æ¢¯åº¦ï¼æåå¨ FP32 ä¸åä¼å卿´æ°åå masterã
7.2 FP8 è®ç»çå·¥ç¨è¦ç¹
DeepSeek-V3 æ¯ç¬¬ä¸ä¸ªå¨å®æ´é¢è®ç»éæ GEMMãéä¿¡ãæ¿æ´»ãæ¢¯åº¦ 大é¢ç§¯åå° FP8 çå ¬å¼æ¡ä¾ãå ³é®æå·§ï¼
- æ¯ block / æ¯ tile 卿 scalingï¼ç²ç²åº¦ per-tensor scaling èå´å¤ªå°ï¼per-token æ per-128-elements scaling æ´ç¨³ã
- éæ©æ§åéï¼å¯¹ LayerNormãsoftmaxãä¼åå¨ state ä¿ç BF16/FP32ã
- éä¿¡ä¹ç¨ FP8ï¼all-to-allãall-reduce ç带宽ååååã
FP8 è®ç»çå·¥ç¨é¾ç¹ä¸æ¯"è½ä¸è½è·èµ·æ¥"ï¼èæ¯"è½ä¸è½å ¨ç¨æ spike è·å® 14T tokens"ã
7.3 FP8 çä¸¤ç§æ ¼å¼ï¼E4M3 vs E5M2
FP8 æä¸¤ä¸ª IEEE è¿ä¼¼åä½ï¼
- E4M3ï¼4 ä½ææ° + 3 ä½å°¾æ°ï¼ç²¾åº¦é«ã卿èå´å°ï¼ç¨äºååæ¿æ´»åæéã
- E5M2ï¼5 ä½ææ° + 2 ä½å°¾æ°ï¼èå´å¤§ã精度ä½ï¼ç¨äºå忢¯åº¦ï¼æ¢¯åº¦ç卿èå´æ´å¹¿ï¼ã
NVIDIA Transformer EngineãMicrosoft MS-AMPãDeepSeek èªç FP8 kernel 齿¯åºäºè¿å¥åå·¥ãå·¥ç¨ä¸æå®¹æè¸©ç忝å¿äºç» gradient ç¨ E5M2ï¼å¯¼è´å°æ¢¯åº¦è¢« flush å° 0ï¼è®ç»åæ loss ä¸åä¸éã
7.4 精度éåçå³çæ
flowchart TB
Q1{"è®ç»ç®æ æ¯ base é¢è®ç»ï¼"}
Q1 -->|æ¯| Q2{"æ H100+ å FP8 å·¥ç¨è½åï¼"}
Q1 -->|"å¦ï¼SFT / RLHFï¼"| A3["BF16 å³å¯ï¼FP8 æ¶çå°é£é©å¤§"]
Q2 -->|æ| A1["FP8ï¼DeepSeek 飿 ¼ï¼ï¼ç 30%+ ææ¬"]
Q2 -->|æ | A2["BF16ï¼ç¨³å¦¥é¦é"]
SFT/RLHF é¶æ®µæ ·æ¬éå°ãè¿ä»£å¿«ï¼FP8 带æ¥çååæ¶çæéï¼åè debug ææ¬é«ï¼ä¸è¬ä¸å»ºè®®ã
å «ãæ¹å¤§å°ãå¦ä¹ çä¸è®ç»ç¨³å®æ§
8.1 æ¹å¤§å° scaling
大 batch ç好夿¯é信代价被æèï¼å夿¯ææå¦ä¹ çå大ï¼å®¹æåæ£ã
- 线æ§ç¼©æ¾å¾ï¼batch ç¿»åï¼lr ç¿»åï¼Goyal 2017ï¼ImageNetï¼ã
- å¹³æ¹æ ¹ç¼©æ¾å¾ï¼ç论æ´ç¨³ï¼ä½ LLM 社åºå¤æ°ä»æ²¿ç¨çº¿æ§ï¼åªæ¯ç»è¶³ warmupã
- Critical batch sizeï¼Kaplan ç论æç»åº"è¶ è¿æä¸ª batchï¼æ¶çéåçè³è´é¢"ç临çç¹ã大模åç临ç batch å¨å ç¾ä¸å°å åä¸ tokens 级å«ã
LLaMA-3ãDeepSeek-V3 çå ¨å± batch 常è§äº 4M~16M tokensã
8.2 æå¤± spike çå·¥ç¨å¤ç
é¿è®ç»ä¸å¯é¿å ä¼éå° loss spikeãå¤çææ®µï¼
- 梯度è£åªï¼grad norm clipï¼ï¼clip å° 1.0 æ¯äºå®æ åã
- skip batchï¼éå° NaN/Infï¼ä¸¢å¼å½å batchï¼åæ» optimizer ç¶æå°ä¸ä¸æ¥ã
- checkpoint + åæ»ï¼å¦æ spike ä¸å¯æ¢å¤ï¼ä»ä¹åç checkpoint è½½åï¼è·³è¿é®é¢æ°æ®åºæ®µã
- æ°æ®æç论ï¼spike 80% çåå æ¯æ°æ®ï¼é¿éå¤ãä¹±ç ãéè¯¯æ æ³¨ï¼ï¼åºå çæ°æ®ã
- embedding å½ä¸å / weight decay å¾®è°ï¼é¨å spike ç± embedding çç¸è§¦åã
- çæ§ z-lossãrouter entropyï¼MoE 模åä¸é¡¹ã
8.3 䏿®µå¼çæ¥å¿ç"æ å SOP"
åè®¾ä½ å夿¶å°åè¦ï¼grad_norm > 20, loss increased by 1.5ãæ åææ¥ï¼
- çæè¿ 200 step ç loss / grad_norm / lr æ²çº¿ï¼ç¡®è®¤ä¸æ¯ scheduler é¶æ®µæ§ååã
- dump å½å batch ç input_idsï¼å tokenize çå 容ï¼ç»è®¡ token çµãéå¤ n-gramã
- æ£æ¥ NCCL / IB æ¯å¦æ retransmitãæ¯å¦æå¡ã
- å¦æåªæ¯ç¬æ¶ spike ä¸åç» recoverï¼ä¸å¨ï¼è¶ è¿ 3 个 batch 没 recoverï¼ä»æè¿ä¸ä¸ª ckpt rollbackï¼è·³è¿è¿æ®µ data shardsã
- è®°å½äºä»¶ï¼æ¶é´ãstepãå½±å tokensãæªæ½ãç»è®ºï¼è¿äºæ åºã
头é¨å¢éçè®ç»äºæ åºå¨è¾å ç¾é¡µââè¿æ¯æå¼é±çå·¥ç¨èµäº§ã
ä¹ã3D å¹¶è¡çç»åçç¥ï¼æ¦è§ï¼
详ç»å 容å¨ç¬¬ 06ã07 ç¯ãè¿éåªç»ä¸å¼ é记表ï¼
| å¹¶è¡æ¹å¼ | åä»ä¹ | éä¿¡ | 使¶ç¨ |
|---|---|---|---|
| DPï¼Data Parallelï¼ | å batch | all-reduce grad | æ°¸è¿ç¨ |
| TPï¼Tensor Parallelï¼ | å weight ç©éµ | all-reduce activation | åå±å¤ªå¤§è£ ä¸ä¸å塿¶ |
| PPï¼Pipeline Parallelï¼ | å layer | P2P send/recv | 模å屿°å¾å¤ãæºé´å¸¦å®½ä¸å¤æ¶ |
| SPï¼Sequence Parallelï¼ | å seq | all-gather / reduce-scatter | é¿ä¸ä¸æè®ç» |
| EPï¼Expert Parallelï¼ | å MoE experts | all-to-all | MoE ä¸ç¨ |
| ZeROï¼1/2/3ï¼ | å optimizer / grad / param | reduce-scatter + all-gather | DP çæ¾åä¼å |
å亿-ä¸äº¿è§æ¨¡çå ¸åç»åï¼ä»¥ DeepSeek-V3 / Qwen2.5-72B / LLaMA-3-405B 为åèï¼ï¼
- TP = 8ï¼åæºå ï¼NVLink 带宽足ï¼
- PP = 8 ~ 16ï¼è·¨æºï¼å®¹å¿ IB 带宽ï¼
- EP = 8 ~ 64ï¼MoE ä¸ç¨ï¼
- DP / ZeROï¼å©ä¸ç GPU æ°é½åç» DP 维度
- SPï¼é¿ä¸ä¸ææ¶æå¼
9.1 䏿¡æ´ç´ çéåç»éª
- å塿¾åå¡ä¸ä¸ä¸å± â å¼ TPã
- åæºï¼8 å¡ NVLinkï¼å¡ä¸ä¸ä¸æ´ä»½æ¨¡å â å¼ PP æ ZeRO-3ã
- æºé´ IB å¸¦å®½ç´§å¼ ãPP bubble ä¸å¯æ¥å â ä¼å ZeRO + è¾å¤§ micro-batchã
- åºåè¶ è¿ 32K â æå¼ SP / context parallelã
- MoE 模å â EP å äºå ¶ä»ç»´åº¦èèï¼all-to-all æ¯æè´µçéä¿¡ã
9.2 å¹¶è¡ç»´åº¦éæ©å¯¹éä¿¡éçç´è§
宿§ä¸ï¼
- TP éä¿¡é = O(batch à seq à hidden)ï¼æ¯ä¸å±é½æï¼ææè·¨æºã
- PP éä¿¡é = O(batch à seq à hidden)ï¼åªæç¸é» stageï¼ä¸æè·¨æºä½æ bubbleã
- DP/ZeRO éä¿¡é = O(params)ï¼æ¯æ¥ä¸æ¬¡ï¼å¸¦å®½ææãå»¶è¿ä¸ææã
- EP éä¿¡é = O(batch à seq à hidden à topk)ï¼æ¯å±ä¸¤æ¬¡ all-to-allï¼å¯¹å¯¹ç§°å¸¦å®½å crossbar ææã
æä»¥"TP æ¾å¨ NVLink åå ï¼DP/ZeRO æ¾å¨ IB/RoCE è·¨æºåä¸"æ¯é»éæ³åã
åãScaling Lawsï¼è±é±æä¹è±æåç®
10.1 Kaplan 2020
OpenAI ç Kaplan ç人ç»åºäºç¬¬ä¸ä¸ªç³»ç»ç scaling lawï¼loss æ¯æ¨¡ååæ° Nãæ°æ®é Dãç®å C çå¹å¾å½æ°ãç»è®ºé¼è人å¿ââä½å®ä½ä¼°äºæ°æ®çä½ç¨ã
10.2 Chinchillaï¼Hoffmann 2022ï¼
DeepMind éæ°åå®éªååç°ï¼Kaplan å¯¹æ°æ®å模åçæä¼æ¯ä¾éäºãæä¼æ¯ä¾å¤§çº¦æ¯ï¼
Dââ20ND^* \approx 20 NDââ20N峿¯ä¸ªåæ°é ~20 tokensãGPT-3ï¼175B åæ°ã300B tokensï¼è¢«ä¸¥é"undertrained"ï¼è Chinchillaï¼70B åæ°ã1.4T tokensï¼å¨åçç®åä¸æææ´å¥½ã
è¿ä¹åï¼å¼æºç¤¾åº"å°è夿°æ®"æä¸ºå ±è¯ï¼LLaMA-1 ç¨ 7B/13B/33B/65B + 1T~1.4T tokensï¼LLaMA-3 å¹²èæ 8B/70B è®å° 15T tokensââè¿è¶ Chinchilla æä¼ï¼å 为æ¨çæ¶ä»£ï¼æ¨çææ¬ >> è®ç»ææ¬ï¼ææ´å¤è®ç»ç®åç ¸è¿å»æ¢æ¥æ¨çä¾§ä¾¿å®æ¯åç®çã
10.3 æ¨çæ¶ scalingï¼o1 èå¼ï¼
2024 å¹´ OpenAI o1 å¸¦æ¥æ°èå¼ï¼æ¨çæ¶ç®å乿¯ scaling ç»´åº¦ãæ¨¡åå¯ä»¥å¨æ¨çæ¶çæé¿ CoTãåæãåæº¯ï¼ç¨æ´å¤ tokens æ¢æ´é«æ£ç¡®çãDeepSeek-R1ãKimi K1.5ãQwen QwQ é½è·è¿äºè¿æ¡è·¯çº¿ã
对è®ç»åºç¡è®¾æ½çå½±åï¼
- RL é¶æ®µéè¦å¤§è§æ¨¡ online rolloutï¼æ¨çé群åè®ç»é群边ç忍¡ç³ã
- é¿ CoT è®ç»æ ·æ¬å¨è¾å ä¸ tokensï¼å¯¹é¿ä¸ä¸æè®ç»åå大ã
- å¥å±å»ºæ¨¡åæ"å¯éªè¯çæ¡ï¼æ°å¦ã代ç ï¼ä¼å "çæ°èå¼ã
10.4 ä¸ä»£ scaling çå¯¹ç §
| èå¼ | ä |
|---|
Aitishiku.com