pathcosmos commited on
Commit
ef6210a
ยท
verified ยท
1 Parent(s): d135462

docs: add training hardware specs (8x B200, EPYC 9365, software stack)

Browse files
Files changed (1) hide show
  1. README.md +57 -2
README.md CHANGED
@@ -34,6 +34,48 @@ llama.cpp/GGUF ์ถ”๋ก  ์‹œ ์ค„๋ฐ”๊ฟˆ(`\n`) ๋“ฑ ๋ฏธ๋“ฑ๋ก ๋ฌธ์ž๋กœ ์ธํ•œ ํฌ๋ž˜
34
  - ์ž„๋ฒ ๋”ฉ: 64,000 โ†’ 64,256 ๋ฆฌ์‚ฌ์ด์ฆˆ, ์ƒˆ ํ† ํฐ ์ดˆ๊ธฐํ™”
35
  - GGUF ๋ณ€ํ™˜ยทOllama ๋ฐฐํฌ ์‹œ ๋‰ด๋ผ์ธ ํฌํ•จ ์ž…๋ ฅ ์ •์ƒ ์ฒ˜๋ฆฌ ํ™•์ธ
36
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  ## ORPO ํ‰๊ฐ€ ์š”์•ฝ (๋™์ผ ์ฒดํฌํฌ์ธํŠธ ๊ธฐ์ค€)
38
 
39
  - **ํ‰๊ฐ€ ์ผ์‹œ**: 2026-03-09
@@ -60,8 +102,21 @@ llama.cpp/GGUF ์ถ”๋ก  ์‹œ ์ค„๋ฐ”๊ฟˆ(`\n`) ๋“ฑ ๋ฏธ๋“ฑ๋ก ๋ฌธ์ž๋กœ ์ธํ•œ ํฌ๋ž˜
60
  ## ์‚ฌ์šฉ
61
 
62
  - **Transformers**: ์ด ์ฒดํฌํฌ์ธํŠธ๋ฅผ ๊ทธ๋Œ€๋กœ `from_pretrained(...)` ๋กœ ๋กœ๋“œ ๊ฐ€๋Šฅ.
63
- - **GGUF**: `scripts/fix_tokenizer_byte_fallback.py` ์ ์šฉ ํ›„ `convert_hf_to_gguf.py` โ†’ `llama-quantize` ๋กœ ๋ณ€ํ™˜ํ•œ v2 ํŒŒ์ดํ”„๋ผ์ธ ์‚ฌ์šฉ ๊ถŒ์žฅ.
64
- ์ด๋ฏธ ๋ณ€ํ™˜๋œ Q4_K_M GGUF๋Š” Ollama์—์„œ `frankenstallm-3b-v2` ๋กœ ๋ฐฐํฌ ๊ฐ€๋Šฅ.
 
 
 
 
 
 
 
 
 
 
 
 
 
65
 
66
  ## ๋ผ์ด์„ ์Šค
67
 
 
34
  - ์ž„๋ฒ ๋”ฉ: 64,000 โ†’ 64,256 ๋ฆฌ์‚ฌ์ด์ฆˆ, ์ƒˆ ํ† ํฐ ์ดˆ๊ธฐํ™”
35
  - GGUF ๋ณ€ํ™˜ยทOllama ๋ฐฐํฌ ์‹œ ๋‰ด๋ผ์ธ ํฌํ•จ ์ž…๋ ฅ ์ •์ƒ ์ฒ˜๋ฆฌ ํ™•์ธ
36
 
37
+ ## ํ•™์Šต ํ™˜๊ฒฝ (Training Hardware)
38
+
39
+ ### GPU
40
+
41
+ | ํ•ญ๋ชฉ | ์‚ฌ์–‘ |
42
+ |------|------|
43
+ | **GPU** | 8ร— NVIDIA B200 |
44
+ | **VRAM (per GPU)** | 183 GB HBM3e |
45
+ | **Total VRAM** | ~1,466 GB (~1.47 TB) |
46
+ | **FP8 Tensor Core** | 2,250 TFLOPS/GPU (์ด 18,000 TFLOPS) |
47
+ | **BF16 Tensor Core** | 1,125 TFLOPS/GPU |
48
+ | **HBM3e Bandwidth** | ~7.67 TB/s per GPU |
49
+ | **Interconnect** | NVLink 5.0 (NV18, 900 GB/s bidirectional) |
50
+ | **Topology** | NVSwitch โ€” ๋ชจ๋“  GPUโ†”GPU ๋‹จ์ผ ํ™‰ all-to-all mesh |
51
+ | **SMs per GPU** | 148 |
52
+ | **L2 Cache per GPU** | 126.5 MB |
53
+
54
+ ### CPU & Memory
55
+
56
+ | ํ•ญ๋ชฉ | ์‚ฌ์–‘ |
57
+ |------|------|
58
+ | **CPU** | 2ร— AMD EPYC 9365 (Turin / Zen 5) |
59
+ | **Physical Cores** | 72 (36์ฝ”์–ด ร— 2์†Œ์ผ“) |
60
+ | **L3 Cache** | 384 MB (12 CCX ร— 32 MB) |
61
+ | **System RAM** | 2.21 TB DDR5 (NUMA 2๋…ธ๋“œ ร— ~1.1 TB) |
62
+ | **GPUโ†”NUMA ๋งคํ•‘** | GPU 0โ€“3 โ†’ NUMA node 0 / GPU 4โ€“7 โ†’ NUMA node 1 |
63
+
64
+ ### ์†Œํ”„ํŠธ์›จ์–ด ์Šคํƒ
65
+
66
+ | ํŒจํ‚ค์ง€ | ๋ฒ„์ „ |
67
+ |--------|------|
68
+ | **CUDA** | 13.1 |
69
+ | **Driver** | 580.95.05 |
70
+ | **PyTorch** | 2.10.0a0+b4e4ee81d3 (NVIDIA nv25.12 ์ปค์Šคํ…€ ๋นŒ๋“œ, B200 ์ตœ์ ํ™”) |
71
+ | **Transformer Engine** | 2.10.0 |
72
+ | **FlashAttention** | 2.7.4.post1+25.12 |
73
+ | **NCCL** | 2.28.9 |
74
+ | **Triton** | 3.5.1 |
75
+ | **TRL** | ORPO fine-tuning |
76
+
77
+ > **์ฐธ๊ณ **: PyTorch๋Š” NVIDIA B200 ์ตœ์ ํ™” ์ปค์Šคํ…€ ๋นŒ๋“œ(`nv25.12`)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. FP8 ๋„ค์ดํ‹ฐ๋ธŒ ์—ฐ์‚ฐ(`torch.float8_e4m3fn`) ์ง€์› ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค.
78
+
79
  ## ORPO ํ‰๊ฐ€ ์š”์•ฝ (๋™์ผ ์ฒดํฌํฌ์ธํŠธ ๊ธฐ์ค€)
80
 
81
  - **ํ‰๊ฐ€ ์ผ์‹œ**: 2026-03-09
 
102
  ## ์‚ฌ์šฉ
103
 
104
  - **Transformers**: ์ด ์ฒดํฌํฌ์ธํŠธ๋ฅผ ๊ทธ๋Œ€๋กœ `from_pretrained(...)` ๋กœ ๋กœ๋“œ ๊ฐ€๋Šฅ.
105
+ - **GGUF / Ollama**:
106
+ ```bash
107
+ # Q4_K_M (๊ถŒ์žฅ, 757MB)
108
+ ollama create frankenstallm-3b-v2:Q4_K_M -f gguf/Modelfile.3b-v2-Q4_K_M
109
+ ollama run frankenstallm-3b-v2:Q4_K_M
110
+
111
+ # Q8_0 (๊ณ ํ’ˆ์งˆ, 1.2GB)
112
+ ollama create frankenstallm-3b-v2:Q8_0 -f gguf/Modelfile.3b-v2-Q8_0
113
+ ollama run frankenstallm-3b-v2:Q8_0
114
+
115
+ # f16 (์ตœ๊ณ ํ’ˆ์งˆ, 2.3GB)
116
+ ollama create frankenstallm-3b-v2:f16 -f gguf/Modelfile.3b-v2-f16
117
+ ollama run frankenstallm-3b-v2:f16
118
+ ```
119
+ Modelfile์— ๊ฒ€์ฆ๋œ ์ƒ˜ํ”Œ๋ง ํŒŒ๋ผ๋ฏธํ„ฐ(`temperature=0.7, repeat_penalty=1.2`)๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
120
 
121
  ## ๋ผ์ด์„ ์Šค
122