|
Download docs/MIGRATION-3GPU.md from backseollgi/Cerberus: direct link, hf CLI and curl.
- Browser
- Download file 8.26 kB
-
https://huggingface.co/backseollgi/Cerberus/resolve/main/docs/MIGRATION-3GPU.md
- Command line
-
hf download hf://backseollgi/Cerberus/docs/MIGRATION-3GPU.md
-
curl -L -o MIGRATION-3GPU.md https://huggingface.co/backseollgi/Cerberus/resolve/main/docs/MIGRATION-3GPU.md
8.26 kB
| # ์ปจํ ์ด๋ ์ด์ โ GPU 3์ฅ ํ๊ฒฝ์์ ์ด์ด๊ฐ๊ธฐ | |
| ์ด ๋ฌธ์ ํ๋๋ก ์ฌ๊ฐ ๊ฐ๋ฅํ๋๋ก ์ด๋ค. ์์๋๋ก ๋ฐ๋ผ๊ฐ๋ฉด ๋๋ค. | |
| --- | |
| ## 0. ๋จผ์ ์์์ผ ํ ๊ฒ | |
| **`/home/work/seoik` ๋ง ์๊ตฌ๋ค.** `$HOME`(=`/home/work`) ์ ๋๋จธ์ง๋ ์ปจํ ์ด๋๋ฅผ ๋ด๋ฆฌ๋ฉด | |
| ์ฌ๋ผ์ง๋ค โ `~/.claude` ํฌํจ. | |
| ์๊ตฌ ๋ณผ๋ฅจ์ ์ด๋ฏธ ๋ค ์๋ค. | |
| | ์์ฐ | ํฌ๊ธฐ | ์ํ | | |
| |---|---|---| | |
| | `seoik/hawk` (์ฝ๋ยท๋ ผ๋ฌธ) | 13G | git ๋๊ธฐํ ์๋ฃ | | |
| | `seoik/runs` (์ฒดํฌํฌ์ธํธ) | 369G | v1ยทv2 ์ ๋ถ ๋ณด์กด | | |
| | `seoik/miniconda3` (conda ํ๊ฒฝ) | 11G | **์ฌ์ค์น ๋ถํ์** | | |
| | `seoik/hawk_anomaly` (Stage-2 ๋ฐ์ดํฐ) | 121G | ๊ทธ๋๋ก | | |
| | `seoik/session_archive` | 22M | ๋ํ ๊ธฐ๋ก | | |
| --- | |
| ## 1. ์ปจํ ์ด๋ ๋ด๋ฆฌ๊ธฐ **์ **์ ํ ์ผ | |
| ```bash | |
| cd $CERBERUS_ROOT/hawk | |
| # (a) ๋ฏธ์ปค๋ฐ ํ์ธ โ 0 ์ด์ด์ผ ํ๋ค | |
| git status --porcelain | wc -l | |
| # (b) ์๊ฒฉ๊ณผ ๋๊ธฐํ ํ์ธ โ 0 ์ด์ด์ผ ํ๋ค | |
| git fetch -q "https://$(cat ../.github_token)@github.com/jungseoik/hawk.git" main | |
| git rev-list --count HEAD ^FETCH_HEAD | |
| # (c) ์ธ์ ๊ธฐ๋ก ์์นด์ด๋ธ (์ปจํ ์ด๋์ ํจ๊ป ์ฌ๋ผ์ง๋ค) | |
| D=$CERBERUS_ROOT/session_archive/$(date +%Y%m%d) | |
| mkdir -p "$D" | |
| cp -r ~/.claude/projects/-home-work-seoik "$D"/ 2>/dev/null | |
| cp ~/.claude/history.jsonl "$D"/ 2>/dev/null | |
| # (d) ํ์ต ์ ์ง โ ์ฒดํฌํฌ์ธํธ๋ epoch ๋ง๋ค ์ ์ฅ๋๋ฏ๋ก ์งํ๋ถ์ ์์ง ์๋๋ค | |
| pkill -f "run_ablation_v[2]"; pkill -f "train[.]py --cfg-path" | |
| ``` | |
| ์ฒดํฌํฌ์ธํธ๊ฐ epoch ๋จ์๋ก ์ ์ฅ๋๋ฏ๋ก **์๋ฌด ๋๋ ๋์ด๋ ๋๋ค.** ์งํ ์ค์ด๋ epoch ๋ง | |
| ๋ค์ ๋๋ค. | |
| --- | |
| ## 2. ์ ์ปจํ ์ด๋์์ ๋ณต๊ตฌ | |
| ```bash | |
| bash /home/work/seoik/bootstrap_cerberus.sh # ๋ฉฑ๋ฑ โ ์ฌ๋ฌ ๋ฒ ๋๋ ค๋ ์์ | |
| source ~/.bashrc | |
| ``` | |
| ์ด๊ฒ์ด ๋ณต๊ตฌํ๋ ๊ฒ: `~/.claude` ์ฌ๋งํฌ(์์ด์ ํธยท์คํฌ), ์ ธ ํ๊ฒฝ | |
| (`CERBERUS_PY`ยท`TORCH_HOME`ยท`HF_HOME`ยท`HF_TOKEN`ยท`GEMINI_API_KEY`), git ์ฌ์ฉ์ ์ค์ . | |
| ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐยท๋ชจ๋ธยท์ฒดํฌํฌ์ธํธ๊ฐ ์ด์์๋์ง ๊ฒ์ฆํ๋ค. | |
| **์ด๊ฑธ ๊ฑด๋๋ฐ๋ฉด `$CERBERUS_PY` ๊ฐ ๋น์ด ๋ชจ๋ ํ์ตยทํ๊ฐ ๋ช ๋ น์ด ์กฐ์ฉํ ์คํจํ๋ค.** | |
| ### ์ง๋ ๋ํ ์ด์ด๊ฐ๊ธฐ | |
| ๋ถํธ์คํธ๋ฉ 1.5 ๋จ๊ณ๊ฐ `claude_state_sync.sh --restore` ๋ก `seoik/claude_state` ์ ๋ํ ๊ธฐ๋ก์ | |
| `~/.claude/projects/-home-work-seoik/` ์ ๋๋๋ฆฐ๋ค. ๊ทธ๋ฌ๋ฉด ์ ์ปจํ ์ด๋์์๋ | |
| ```bash | |
| cd /home/work/seoik | |
| claude --continue # ๊ฐ์ฅ ์ต๊ทผ ๋ํ๋ฅผ ๊ทธ๋๋ก ์ด์ด๊ฐ | |
| claude --resume # ๋ชฉ๋ก์์ ๊ณจ๋ผ ์ด์ด๊ฐ | |
| ``` | |
| **์์๊ฐ ์ค์ํ๋ค โ ๋ถํธ์คํธ๋ฉ์ ๋จผ์ ๋๋ ค์ผ `--resume` ๋ชฉ๋ก์ ๊ณผ๊ฑฐ ์ธ์ ์ด ๋ณด์ธ๋ค.** | |
| (`--resume` ์ claude ๊ฐ ๋จ๋ ์์ ์ ๊ธฐ๋ก์ ์ฝ์ผ๋ฏ๋ก, ์คํ ํ์ ๋ณต์ํด๋ ๊ทธ ํ์ฐจ์๋ ๋ฐ์๋์ง ์๋๋ค.) | |
| ๊ธฐ๋ก ์ ์ฅ์ ์ธ ๊ฒน์ด๋ค: ๋ถํ ์ `--restore`, 5๋ถ ์ฃผ๊ธฐ ๋ฐ๋ชฌ `--save`, ์ ์ ์ข ๋ฃ ์ `SessionEnd` ํ . | |
| ์ปจํ ์ด๋๊ฐ ์๊ณ ์์ด ์ฃฝ์ด๋ ์ต๋ 5๋ถ ๋ถ๋๋ง ์๋๋ค. ์ํ ํ์ธ: | |
| ```bash | |
| bash scripts/claude_state_sync.sh --status | |
| ``` | |
| ํ์ธ: | |
| ```bash | |
| echo $CERBERUS_PY # ๋น์ด ์์ผ๋ฉด ์ ๋๋ค | |
| nvidia-smi --query-gpu=index,memory.total --format=csv,noheader # 3์ฅ ํ์ธ | |
| cat /sys/fs/cgroup/memory.max # ์ปจํ ์ด๋ ๋ฉ๋ชจ๋ฆฌ ์ ํ โ ๋ณ๋ชฉ์ด๋ค | |
| bash $CERBERUS_ROOT/hawk/scripts/run_arms_parallel.sh --check # arm ์งํ๋ฅ | |
| ``` | |
| **2026-08-18 ์ค์ธก (์ด์ ์๋ฃ):** GPU H100 80GB **3์ฅ**, `memory.max` **739GB**(์ด์ 240GB์ 3๋ฐฐ), | |
| CPU 84์ฝ์ด, torch 2.11.0+cu128. arm ์งํ๋ฅ ์ ์ด์ ์ ๊ณผ ๋์ผํ๋ค โ | |
| `zero 40/40 ยท random_mask 21/40 ยท flow 15/40 ยท duplicate 0 ยท flow_reinit 0`. | |
| --- | |
| ## 3. ์ด์ด์ ํ์ต โ GPU 3์ฅ ๋ณ๋ ฌ | |
| ```bash | |
| cd $CERBERUS_ROOT/hawk | |
| bash scripts/run_arms_parallel.sh | |
| ``` | |
| ๋จ์ arm ์ ์๋์ผ๋ก ๊ณจ๋ผ **GPU 1์ฅ์ฉ ๋ณ๋ ฌ**๋ก ๋๋ฆฐ๋ค. ์๋ฃ๋ arm ์ ๊ฑด๋๋ด๋ค. | |
| ์จ์ด๋ธ๊ฐ ๋๋๊ณ ๋จ์ arm ์ด ์์ผ๋ฉด ๊ฐ์ ๋ช ๋ น์ ๋ค์ ์คํํ๋ฉด ๋๋ค. | |
| ### ์ GPU ๋ฅผ ํ ์์ ์ ๋ชฐ์ง ์๋๊ฐ | |
| `iters_per_epoch` ์ด 2500 ์ผ๋ก **๊ณ ์ **์ด๋ผ, GPU ๋ฅผ ๋ ๋ถ์ด๋ฉด epoch ๋น ์ํ ์๋ง ๋๊ณ | |
| epoch ์๊ฐ์ ๊ทธ๋๋ก๋ค. arm ์ ๋๋ ๋ณ๋ ฌ๋ก ๋๋ ค์ผ ๋ฒฝ์๊ณ ์๊ฐ์ด ์ค์ด๋ ๋ค. | |
| ``` | |
| 2 GPU ร batch 2 = effective 4, 2500 iter ร 4 = 10,000 ์ํ/epoch | |
| 1 GPU ร batch 4 = effective 4, 2500 iter ร 4 = 10,000 ์ํ/epoch โ ๋์ผ | |
| ``` | |
| ์กฐ๊ฑด์ด ๊ฐ์ผ๋ฏ๋ก **์ด๋ฏธ ์์ฃผํ arm(`zero`)์ ๋ค์ ๋๋ฆด ํ์๊ฐ ์๋ค.** | |
| | ๋ฐฉ์ | ์์ | | |
| |---|---| | |
| | 2 GPU ์์ฐจ ์ ์ง | 6.7์ผ | | |
| | 3 GPU ํ ์์ (arm ๋ถ์ผ์น๋ก ์ ๋ถ ์ฌ์คํ) | 10.8์ผ | | |
| | **arm 3๊ฐ ๋ณ๋ ฌ (`run_arms_parallel.sh`)** | **3.1์ผ** | | |
| ### ์ฃผ์ โ ๋ณ๋ชฉ์ GPU ๊ฐ ์๋๋ผ ๋ฉ๋ชจ๋ฆฌ๋ค | |
| ``` | |
| /sys/fs/cgroup/memory.max 240 GB (๊ธฐ์กด ์ปจํ ์ด๋) โ 739 GB (2026-08-18 ์ ์ปจํ ์ด๋) | |
| /sys/fs/cgroup/memory.events oom_kill 6 (๊ธฐ์กด) โ 0 (์ ์ปจํ ์ด๋, ํ์ต ์์ ์ ) | |
| ``` | |
| ์ ์ปจํ ์ด๋๋ ์ฌ์ ๊ฐ 3๋ฐฐ๋ค. ๊ทธ๋๋ `num_workers` ๋ **4 ๊ทธ๋๋ก ๋๋ค** โ ํ์ต์ด compute-bound ๋ผ | |
| (`data:` ์ง์ฐ ์ค์ธก 0.0000) ์ฌ๋ ค์ ์ป์ ๊ฒ์ด ์๊ณ , ์ฌ์๋ ์ํ 12 ์ ํจ๊ป ๋๋ฉด ์์ ๋ง์ง๋ง ์ปค์ง๋ค. | |
| `free` ๋ ํธ์คํธ ๊ฐ์ ๋ณด์ฌ์ฃผ๋ฏ๋ก ์์ง ๋ง ๊ฒ. DataLoader worker ๊ฐ OOM kill ๋๋ฉด rank ๊ฐ | |
| ์ฃฝ๊ณ NCCL watchdog ๊ฐ SIGABRT ๋ฅผ ๋์ง๋ค. **์ฌ๊ฐ๋ ์ ์ ๋์ํ๋ฏ๋ก ์งํ๋ถ์ ์์ง ์์ผ๋ฉฐ**, | |
| ๋ฌ๋๊ฐ ์ฌ์๋๋ก ๊ฐ์ธ ๋์๋ค(์ํ 12). | |
| `*_1gpu.yaml` ์ `num_workers` ๋ฅผ 4 ๋ก ๋ฎ์ถฐ ๋์๋ค โ arm 3 ๊ฐ๋ฉด ์์ปค๊ฐ 3 ๋ฐฐ๊ฐ ๋๊ธฐ ๋๋ฌธ์ด๋ค. | |
| (2026-08-18 ์ ์ปจํ ์ด๋์์๋ ์ด ๊ฐ ๊ทธ๋๋ก ๊ฐ๋ค. ์ ํ ์ฐธ์กฐ.) | |
| โ `stage2_zero_1gpu.yaml` ์ ์๋ค โ `zero` ๊ฐ ์ด๋ฏธ 40/40 ์์ฃผ๋ผ ๋ฌ๋๊ฐ ๊ณ ๋ฅด์ง ์๊ธฐ ๋๋ฌธ์ด๋ค. | |
| `zero` ๋ฅผ ๋ค์ ๋๋ ค์ผ ํ ์ผ์ด ์๊ธฐ๋ฉด ๋ค๋ฅธ arm ํ์ผ์์ ๋ณต์ฌํด ๋ง๋ค ๊ฒ(๊ทธ๋ฅ ์คํํ๋ฉด "config ์์" ์ผ๋ก ๋ฉ์ถ๋ค). | |
| --- | |
| ## 4. ํ์ต์ด ๋๋๋ฉด | |
| ```bash | |
| cd $CERBERUS_ROOT/hawk | |
| # arm ๋ณ ํ๊ฐ โ ์์ฐจ๋ก ๋๋ฆฐ๋ค. ๋์์ ๋๋ฆฌ๋ฉด ๋์ฝ๋ฉ ์ค ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ๊ป ์ก๋๋ค. | |
| for a in flow zero random_mask duplicate flow_reinit; do | |
| CUBLAS_WORKSPACE_CONFIG=:4096:8 $CERBERUS_PY scripts/evaluate.py \ | |
| --ckpt $CERBERUS_ROOT/runs/abl2_$a/main/checkpoint_39.pth \ | |
| --anno $CERBERUS_ROOT/hawk_anomaly/Annotation/All_Mix/all_videos_heldout.local.json \ | |
| --out experiments/out/eval_abl2_$a.json | |
| done | |
| # ํต๊ณ ๋น๊ต โ ํด๋ฆฝ ๋จ์ ์ ๋ถํธ์คํธ๋ฉ + Holm + ๋๋ฉ์ธ๋ณ | |
| $CERBERUS_PY scripts/compare_arms.py \ | |
| $(for a in flow zero random_mask duplicate flow_reinit; do echo --eval experiments/out/eval_abl2_$a.json; done) \ | |
| --out experiments/out/arm_comparison.json | |
| ``` | |
| โ **ํ๊ฐ๋ ๋ฐ๋์ `CUBLAS_WORKSPACE_CONFIG=:4096:8` ๊ณผ ํจ๊ป ์คํํ๋ค.** ์์ผ๋ฉด ์์ฑ์ด | |
| ๋น๊ฒฐ์ ๋ก ์ ์ด์ด์ ๊ฐ์ ์ฒดํฌํฌ์ธํธ๊ฐ ์คํ๋ง๋ค ๋ค๋ฅธ ๋ฌธ์ฅ์ ๋ธ๋ค(์ค์ธก 3/3 ๋ถ์ผ์น, ํ๋๋ | |
| `4 4 4 4 โฆ` ๋ก ํดํ). | |
| --- | |
| ## 5. ๊ฒฐ๊ณผ๋ฅผ ์ด๋ป๊ฒ ์ฝ๋๊ฐ | |
| `docs/experiment-roadmap.md` ยง0 ์ S1/S2/S3 ์ฌ๋ค๋ฆฌ์ ยง6 ์ ๊ฒฐ๊ณผ๋ณ ๋์. | |
| ์ฃผ ์ข ์ ์ **๋๋ฉ์ธ๋ณ** ๊ฐ์ด๋ค(ํ๋ง์ DoTA 62.8% ํธ์ค). | |
| --- | |
| ## 6. ์ด์ด์ ์ฝ์ ๋ฌธ์ | |
| | ๋ฌธ์ | ๋ด์ฉ | | |
| |---|---| | |
| | `docs/STATE.md` | ์ง๊ธ ๋ฌด์์ด ๋๊ณ ์๊ณ ๋ค์์ด ๋ฌด์์ธ๊ฐ โ **๊ฐ์ฅ ๋จผ์ ** | | |
| | `docs/experiment-roadmap.md` | ์คํ ๊ณํยท๊ฒฐ๊ณผ๋ณ ๋์ยท๊ธฐ๊ฐ๋ ์คํ๊ณผ ๊ทธ ์ด์ | | |
| | `docs/training-log.md` | ํ์ต ์ด๋ ฅยท์คํจ์ ์์ธยท์ค์ ๋ณ๊ฒฝ ๊ทผ๊ฑฐ | | |
| | `docs/evidence-index.md` | ๊ฐ ์ฃผ์ฅ์ ๊ทผ๊ฑฐ์ ์ฌํ ๋ช ๋ น | | |
| | `docs/review-log.md` | ์ฌ์ฌ ์ง์ โ ์กฐ์น โ ์ปค๋ฐ, ๊ทธ๋ฆฌ๊ณ **ํ์ง ์์ ๊ฒ๊ณผ ๊ทธ ์ด์ ** | | |
| | ๋ฃจํธ `CLAUDE.md` | ์ธ์ ์ด์ยท์๋ฒ ํจ์ . **ยง5 ์ํ ํญ๋ชฉ**(์๋ณธ๊ณผ์ ์์ฐ ์ผ์น๋ ํ์๊ฐ ์๋)์ ๋ฐ๋์ ๋ณผ ๊ฒ | | |
| ## 7. ๋ฐฑ์ ์ํ | |
| - **GitHub** `jungseoik/hawk` โ ์ฝ๋ยท๋ ผ๋ฌธยท๋ฌธ์ ์ ๋ถ. ๋ฏธ์ปค๋ฐ 0 | |
| - **HF** `backseollgi/Cerberus` โ `ablation_v2/`(์์ฃผ arm ์ฒดํฌํฌ์ธํธยท๋ก๊ทธยท์ค์ ), | |
| `docs/`, `results/`, `benchmark/` | |
| ์ฒดํฌํฌ์ธํธ๋ arm ๋น 77GB ๋ผ **์์ฃผํ arm ์ ์ต์ข ๋ณธ๋ง** ์ฌ๋ฆฐ๋ค. ์ค๊ฐ ์ฒดํฌํฌ์ธํธ๊ฐ ํ์ํ๋ฉด | |
| `seoik/runs` ์์ ์ง์ ๊ฐ์ ธ์ฌ ๊ฒ. | |