Cerberus / docs /CLAUDE.md
backseollgi's picture
Upload docs/CLAUDE.md with huggingface_hub
64de962 verified
|
Raw
History Blame Contribute Delete
10.9 kB
# CERBERUS ์ž‘์—… ๋ณผ๋ฅจ โ€” Claude ์„ธ์…˜ ๊ธธ์žก์ด
์ด ํŒŒ์ผ์€ `/home/work/seoik`์—์„œ ์„ธ์…˜์„ ์—ด๋ฉด ์ž๋™์œผ๋กœ ์ฝํž™๋‹ˆ๋‹ค. **๋‹ค๋ฅธ ๋ฌด์—‡๋ณด๋‹ค ๋จผ์ € ์—ฌ๊ธฐ๋ถ€ํ„ฐ.**
## 0. ์ƒˆ ์„ธ์…˜์ด๋ผ๋ฉด ์ฒซ ๋ช…๋ น
```bash
bash /home/work/seoik/bootstrap_cerberus.sh # ๋ฉฑ๋“ฑ โ€” ์—ฌ๋Ÿฌ ๋ฒˆ ๋Œ๋ ค๋„ ์•ˆ์ „
source ~/.bashrc
```
`~/.claude`(์—์ด์ „ํŠธยท์Šคํ‚ฌ ์‹ฌ๋งํฌ), ์…ธ ํ™˜๊ฒฝ(`CERBERUS_PY`ยท`TORCH_HOME`ยท`HF_HOME`ยท`HF_TOKEN`),
git ์‚ฌ์šฉ์ž ์„ค์ •์„ ๋ณต๊ตฌํ•˜๊ณ  ๋ฐ์ดํ„ฐยท๋ชจ๋ธยท์ฒดํฌํฌ์ธํŠธ๊ฐ€ ์‚ด์•„์žˆ๋Š”์ง€ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.
**์ด๊ฑธ ๊ฑด๋„ˆ๋›ฐ๋ฉด `$CERBERUS_PY`๊ฐ€ ๋น„์–ด ์žˆ์–ด ๋ชจ๋“  ํ•™์Šต/ํ‰๊ฐ€ ๋ช…๋ น์ด ์กฐ์šฉํžˆ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.**
---
## 1. ์ด ์ปจํ…Œ์ด๋„ˆ์˜ ์œ ์ผํ•œ ๊ทœ์น™: `seoik`๋งŒ ์˜๊ตฌ
| ๊ฒฝ๋กœ | ์šด๋ช… |
|---|---|
| `/home/work/seoik` (NFS 9.1T) | **์˜๊ตฌ** โ€” ๋ฐ์ดํ„ฐยท๋ชจ๋ธยทcondaยท์บ์‹œยท์ฒดํฌํฌ์ธํŠธ ์ „๋ถ€ ์—ฌ๊ธฐ |
| `$HOME` = `/home/work` ๋‚˜๋จธ์ง€ | ์„ธ์…˜ ์ข…๋ฃŒ ์‹œ **ํ†ต์งธ๋กœ ์ดˆ๊ธฐํ™”** (`~/.claude` ํฌํ•จ) |
- **์–ด๋–ค ์‚ฐ์ถœ๋ฌผ๋„ `$HOME`์— ๋‘์ง€ ๋งˆ์„ธ์š”.** ์บ์‹œ(`TORCH_HOME`/`HF_HOME`)๋„ seoik๋กœ ๊ณ ์ •๋ผ ์žˆ์Šต๋‹ˆ๋‹ค.
- ์„ธ์…˜์ด ๋๋‚˜๊ธฐ ์ „, ๋Œ€ํ™” ๊ธฐ๋ก์€ `seoik/session_archive/`๋กœ ๋ณต์‚ฌํ•ด์•ผ ๋‚จ์Šต๋‹ˆ๋‹ค
(`~/.claude/projects/*/`, `~/.claude/history.jsonl` โ†’ ์„œ๋ธŒ์—์ด์ „ํŠธ ๊ธฐ๋ก๋„ ๊ฐ™์ด ๋ณต์‚ฌ๋จ).
์ด CLAUDE.md ์ž์ฒด๊ฐ€ ๊ทธ ์•„์นด์ด๋ธŒ์—์„œ ๋ณต์›๋œ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.
- `~/.claude/projects/-home-work-seoik/memory/`๋Š” ์„ธ์…˜๋งˆ๋‹ค ๋‚ ์•„๊ฐ‘๋‹ˆ๋‹ค. **์˜์† ์ง€์‹์€ ์—ฌ๊ธฐ CLAUDE.md์™€
`hawk/docs/`์— ์“ฐ์„ธ์š”.** (์—์ด์ „ํŠธ ์ถ•์  ๋ฉ”๋ชจ๋ฆฌ๋Š” ์˜ˆ์™ธ โ€” `hawk/.claude/agent-memory/`, git ์ถ”์ ๋จ)
---
## 2. ๋ฌธ์„œ ์—ญํ•  ๋ถ„๋‹ด (์ค‘๋ณต ๊ธˆ์ง€)
| ๋ฌธ์„œ | ๋‹ค๋ฃจ๋Š” ๊ฒƒ |
|---|---|
| **์ด ํŒŒ์ผ** (`seoik/CLAUDE.md`) | ์„ธ์…˜ ์šด์˜ยท์„œ๋ฒ„ ํ•จ์ •ยทํ˜„์žฌ ์ง„ํ–‰ ์ƒํ™ฉ |
| **`hawk/docs/experiment-roadmap.md`** | โญ **๋ฌด์—‡์„ ์™œ ์–ด๋–ค ์ˆœ์„œ๋กœ โ€” ์‹คํ—˜ ๊ณ„ํš์˜ ๋‹จ์ผ ์ถœ์ฒ˜.** ๋‹ค๋ฅธ ์„œ๋ฒ„์˜ ์—์ด์ „ํŠธ๋Š” ์ด๊ฒƒ๋ถ€ํ„ฐ ์ฝ์œผ๋ฉด ๋œ๋‹ค |
| `hawk/docs/review-2026-08-10-methodology.md` | ์‹ฌ์‚ฌ ์ง€์ ๊ณผ ๋Œ€์‘, ์ฝ”๋“œ๋กœ ์žฌํ™•์ธํ•œ ์‚ฌ์‹ค๋“ค |
| `seoik/README.md` | ์ž์‚ฐ ์ง€๋„(์–ด๋””์— ๋ญ๊ฐ€ ์žˆ๋Š”์ง€)ยท๋ฐฑ์—… ์ƒํƒœ โ€” ์‚ฌ๋žŒ์šฉ ์š”์•ฝ |
| `hawk/CLAUDE.md` | **์—ฐ๊ตฌ ๋‚ด์šฉ**: HAWK(๋ฒ ์ด์Šค) vs CERBERUS(์‹ ๊ทœ) ๊ตฌ๋ถ„, ๋…ผ๋ฌธ ์ง‘ํ•„ ๊ทœ์น™, ์ฝ”๋“œ ๋ถ„๋ฅ˜ |
| `hawk/docs/training-log.md` | ํ•™์Šต ์ฒญํฌ๋ณ„ ์ด๋ ฅยท์ค‘๋‹จ ์‚ฌ์œ ยท์„ค์ • ๋ณ€๊ฒฝ ๊ทผ๊ฑฐ |
| `hawk/docs/session-recovery.md` | README์™€ ๋™์ผ ๋‚ด์šฉ์˜ ๋ ˆํฌ ๋‚ด ์‚ฌ๋ณธ |
์—ฐ๊ตฌ ์–˜๊ธฐ(Tri-Branch ๊ตฌ์กฐ, ๋…ผ๋ฌธ ํฌ๋งท, ์—์ด์ „ํŠธ ์‚ฌ์šฉ๋ฒ•)๋Š” **`hawk/CLAUDE.md`๋กœ ๊ฐ€์„ธ์š”.** ์—ฌ๊ธฐ์„œ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
---
## 3. ์ด ์„œ๋ฒ„ ํŠน์œ ์˜ ํ•จ์ • (์ „๋ถ€ ์‹ค์ธก์œผ๋กœ ํ™•์ธ๋œ ๊ฒƒ)
1. **`conda run -n cerberus`๋Š” ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.** ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ž์ฒด conda(`/home/work/miniconda3`)๋ฅผ base๋กœ
ํ™œ์„ฑํ™”ํ•˜๊ณ  `envs_dirs`๋ฅผ ์ž๊ธฐ ๊ฒƒ์œผ๋กœ ๊ณ ์ •ํ•ด์„œ, ์ด๋ฆ„์œผ๋กœ ์ฐพ์œผ๋ฉด ์—‰๋šฑํ•œ ๊ฒฝ๋กœ๋กœ ํ’€๋ฆฝ๋‹ˆ๋‹ค.
โ†’ **ํ•ญ์ƒ ์ ˆ๋Œ€ prefix**: `$CERBERUS_PY` ์ง์ ‘ ์‹คํ–‰, ๋˜๋Š”
`$CERBERUS_ROOT/miniconda3/bin/conda run -p $CERBERUS_ROOT/miniconda3/envs/cerberus ...`
(`train_run.sh`ยท`setup_env.sh`๋Š” ์ด๋ฏธ ์ˆ˜์ •๋จ)
2. **NFS๊ฐ€ ์œ ์ผํ•œ ๋ณ‘๋ชฉ์ž…๋‹ˆ๋‹ค.** CPU 83์ฝ”์–ดยทRAM 676GB๋Š” ๋‚จ์•„๋•๋‹ˆ๋‹ค.
์†ŒํŒŒ์ผ ์“ฐ๊ธฐ๊ฐ€ **๋ณ‘๋ ฌ๋„์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ~50 files/s์—์„œ ํฌํ™”**(ํŒŒ์ผ๋‹น 35ms ์™•๋ณต ์ง€์—ฐ)ํ•˜๋ฏ€๋กœ
์›Œ์ปค๋ฅผ ๋Š˜๋ ค๋„ ๋นจ๋ผ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€๋Ÿ‰ ์ถ”์ถœ ์ž‘์—…์— ์›Œ์ปค ์ฆ์„ค์„ ์ œ์•ˆํ•˜์ง€ ๋งˆ์„ธ์š”.
๋‹จ ํ•™์Šต ์ค‘ `data:` ์ง€์—ฐ์€ ์‹ค์ธก 0.0000 โ€” **ํ•™์Šต์€ compute-bound๋ผ NFS ์˜ํ–ฅ ์—†์Šต๋‹ˆ๋‹ค.**
3. **Claude ์—์ด์ „ํŠธ/์Šคํ‚ฌ์€ ์„ธ์…˜ ์‹œ์ž‘ ์‹œ์ ์—๋งŒ ์Šค์บ”๋ฉ๋‹ˆ๋‹ค.** ์ค‘๊ฐ„์— ์ถ”๊ฐ€ํ•˜๋ฉด ํ•œ๋™์•ˆ ์•ˆ ์žกํžˆ๋‹ˆ
๋ถ€ํŠธ์ŠคํŠธ๋žฉ์„ ๋จผ์ € ๋Œ๋ฆฌ์„ธ์š”.
4. **์ปจํ…Œ์ด๋„ˆ `eth0` ์นด์šดํ„ฐ์— NFS ํŠธ๋ž˜ํ”ฝ์ด ์•ˆ ์žกํž™๋‹ˆ๋‹ค**(ํ˜ธ์ŠคํŠธ ์ปค๋„์ด ์ฒ˜๋ฆฌ). ๋„คํŠธ์›Œํฌ๊ฐ€
ํ•œ๊ฐ€ํ•ด ๋ณด์—ฌ๋„ ๋ณ‘๋ชฉ์ด ์•„๋‹ˆ๋ผ๋Š” ๊ทผ๊ฑฐ๊ฐ€ ๋˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.
5. **ํ™˜๊ฒฝ์— `NPROC=42`๊ฐ€ ๋ฏธ๋ฆฌ ์‹ฌ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค**(CPU ์ฝ”์–ด ์ˆ˜๋กœ ์ถ”์ •). ์…ธ ์Šคํฌ๋ฆฝํŠธ์—์„œ
`NPROC="${NPROC:-2}"` ๊ฐ™์€ ํ”ํ•œ ๊ด€์šฉ๊ตฌ๋ฅผ ์“ฐ๋ฉด ์ด ๊ฐ’์„ ๋ฌผ๋ ค๋ฐ›์•„ `torchrun`์ด GPU 42์žฅ์„
์š”๊ตฌํ•˜๊ณ  `CUDA error: invalid device ordinal`๋กœ ์ฆ‰์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ ๋ณ€์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ
๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ๋ถ™์ด์„ธ์š”(`ABL_NPROC` ๋“ฑ). ๋‹ค๋ฅธ ์ผ๋ฐ˜ ์ด๋ฆ„๋„ ๋จผ์ € `echo`๋กœ ํ™•์ธํ•  ๊ฒƒ.
---
## 3.5. ์ง€๊ธˆ ๋ฌด์—‡์ด ๋Œ๊ณ  ์žˆ๋‚˜ (2026-08-11 ๊ธฐ์ค€)
**โ‘  ์ •์  ์ŠคํŠธ๋ฆผ ํ†ต์ œ๊ตฐ 4-arm** โ€” `flow โ†’ random_mask โ†’ duplicate โ†’ zero`, arm๋‹น 40 epoch
(์•ฝ 1.6์ผ), ์ „์ฒด ์•ฝ 6.4์ผ. ์ปค๋ฐ‹ ๊ณ ์ •: ๋ชจ๋“  arm์ด ๋™์ผ ์ปค๋ฐ‹์œผ๋กœ ํ•™์Šต๋œ๋‹ค.
```bash
bash $CERBERUS_ROOT/hawk/scripts/run_ablation_arms.sh # ์žฌ๊ฐœ ๊ฐ€๋Šฅ โ€” ๋Š๊ธฐ๋ฉด ๊ฐ™์€ ๋ช…๋ น ์žฌ์‹คํ–‰
grep -c "Averaged stats" $CERBERUS_ROOT/runs/abl_flow/train.log # ์ง„ํ–‰๋ฅ (=์™„๋ฃŒ epoch)
```
> โš ๏ธ **์ด ์‹คํ—˜์ด ๋„๋Š” ๋™์•ˆ ํ•™์Šต ๊ฒฝ๋กœ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ๋งˆ์„ธ์š”.** arm๋งˆ๋‹ค ๋‹ค๋ฅธ ์ฝ”๋“œ๋กœ ํ•™์Šต๋˜๋ฉด
> ํ†ต์ œ ๋น„๊ต๊ฐ€ ๋ฌด์˜๋ฏธํ•ด์ง‘๋‹ˆ๋‹ค(์‹ค์ œ๋กœ ํ•œ ๋ฒˆ ๋ฐœ์ƒํ•ด ์žฌ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค). ํ‰๊ฐ€ยท๋ฌธ์„œยท๋ถ„์„ ์ฝ”๋“œ๋Š” ๋ฌด๊ด€.
๊ณ„ํš ์ „์ฒด์™€ ํŒ๋‹จ ๊ธฐ์ค€์€ **`hawk/docs/experiment-roadmap.md`** ์— ์žˆ์Šต๋‹ˆ๋‹ค.
---
## 4. ์ง„ํ–‰ ์ƒํ™ฉ (2026-08-10 ๊ธฐ์ค€)
| ๋‹จ๊ณ„ | ์ƒํƒœ |
|---|---|
| WebVid ๋‹ค์šด๋กœ๋“œ + mp4 ์ถ”์ถœ | โœ… 1330/1330 shard, **263.8๋งŒ clip** |
| **Stage-1 ์‚ฌ์ „ํ•™์Šต** | โœ… **์™„์ฃผ** โ€” epoch 106, LRโ†’min_lr(1e-6), loss 3.815โ†’2.8506 |
| Stage-2 ์ด์ƒํ–‰๋™ ๋ฐ์ดํ„ฐ | โœ… 7,899๊ฐœ / 121GB (HAWK 7์ข…), `hawk_anomaly/` |
| ๋…ผ๋ฌธ ๋„๊ตฌ | โœ… ์ž์ฒด ์—์ด์ „ํŠธ 4 + vendor ์Šคํ‚ฌ 4 |
| **E1/E2 ์‹ค์ธก** | โณ **๋ฏธ์‹คํ–‰** (ํ•ฉ์„ฑ ๋ฐ์ดํ„ฐ ์ž์ฒด๊ฒ€์ฆ๋งŒ ์™„๋ฃŒ) |
| **Stage-2 finetune** | โณ **๋ฏธ์‹œ์ž‘** (๋ฐ์ดํ„ฐยทconfig ์ค€๋น„ ์™„๋ฃŒ) |
| ๋…ผ๋ฌธ ์›๊ณ  | โ— 5๊ฐœ ์žฅ ์ž‘์„ฑ, ๊ฒฐ๊ณผยทconclusionยทreferences ๋ฏธ์ž‘์„ฑ |
**Stage-1 ํ•ต์‹ฌ ๊ฒฐ๊ณผ**: ๋ถ„๋ฆฌ ์†์‹ค ๋‘ ํ•ญ์ด **0.0000 ์ˆ˜๋ ด**.
์ตœ์ข… ์ฒดํฌํฌ์ธํŠธ: `runs/core/main/checkpoint_106.pth` (2.0GB, ์ด 54๊ฐœ ๋ณด์กด)
> โš ๏ธ **๋กœ๊ทธ์˜ `middleloss`/`middleloss_bg`๋Š” ์ฝ”์‚ฌ์ธ ๊ฐ’์ด ์•„๋‹ˆ๋ผ ์†์‹ค๊ฐ’์ž…๋‹ˆ๋‹ค** (`base_task.py:264-270`):
> `middleloss = 1 โˆ’ cos(z_a,z_m)`, `middleloss_bg = (1 + cos(z_m,z_b))/2`.
> ๋”ฐ๋ผ์„œ ๋‘˜ ๋‹ค 0์ด๋ผ๋Š” ๊ฑด **`cos(z_a,z_m) = +1`(์ •๋ ฌ), `cos(z_m,z_b) = โˆ’1`(๋ฐ˜์ƒ๊ด€)** ์ด๋ผ๋Š” ๋œป์ด๊ณ ,
> ์ด๊ฒŒ ๋ฐฉํ–ฅ์„ฑ ๋น„๋Œ€์นญ ๋ชฉ์ ํ•จ์ˆ˜์˜ ์„ค๊ณ„ ์˜๋„๋Œ€๋กœ ๋‹ฌ์„ฑ๋œ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค(๋…ผ๋ฌธ `02_related_work.md:23`๊ณผ ์ผ์น˜).
> `runs/core/STOPPED.md:26-27`ยท`README.md`ยท`hawk/docs/session-recovery.md`๋Š” ์ด ๊ฐ’์„ "์ฝ”์‚ฌ์ธ์ด 0์œผ๋กœ
> ์ˆ˜๋ ด"์ด๋ผ๊ณ  **์ž˜๋ชป ํ‘œ๊ธฐ**ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค โ€” ์ธ์šฉํ•˜์ง€ ๋ง๊ณ  ๊ณ ์ณ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋…ผ๋ฌธ ์›๊ณ ๋Š” ์ •ํ™•ํ•ฉ๋‹ˆ๋‹ค.
> **stage1์˜ loss ๊ฐ’ ์ž์ฒด๋Š” ๋…ผ๋ฌธ ์„ฑ๋Šฅ ์ง€ํ‘œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.** Table-1์˜ VAD ์ˆ˜์น˜๋Š” stage2 ์ดํ›„์— ๋‚˜์˜ต๋‹ˆ๋‹ค.
> stage1์€ "๊ตฌ์กฐ๊ฐ€ ์ž‘๋™ํ•˜๋Š”๊ฐ€" ๊ฒ€์ฆ ๋‹จ๊ณ„์ด๊ณ , ๊ทธ ์ฆ๊ฑฐ(์ƒ๋ณด์„ฑ ์ˆ˜๋ ด)๋Š” ์ด๋ฏธ ํ™•๋ณด๋์Šต๋‹ˆ๋‹ค.
---
## 5. ํ™•์ •๋œ ์„ค๊ณ„ ๊ฒฐ์ •๊ณผ ๊ทธ ๊ทผ๊ฑฐ (๋˜๋Œ๋ฆฌ์ง€ ๋ง ๊ฒƒ)
์ด๋ฏธ ๋…ผ์˜๋ฅผ ๊ฑฐ์ณ ํ™•์ •๋œ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ๋‹ค์‹œ ์ œ์•ˆํ•˜๊ธฐ ์ „์— ๊ทผ๊ฑฐ๋ฅผ ๋จผ์ € ์ฝ์œผ์„ธ์š”.
- **`max_epoch: 107`** โ€” ์ด ์ฝ”๋“œ์—์„œ `max_epoch`์€ ํ•™์Šต๋Ÿ‰ ์ƒํ•œ์ด ์•„๋‹ˆ๋ผ **cosine LR ์Šค์ผ€์ค„์˜ ๊ธธ์ด**์ž…๋‹ˆ๋‹ค.
์›๋ž˜ 200์€ "3์ผ ๋Œ๋ฆฌ๊ณ  ์•„๋ฌด ๋•Œ๋‚˜ ๋Š๋Š”๋‹ค"๋Š” ์ „์ œ์˜ ๋„‰๋„‰ํ•œ ๊ฐ’์ด๋ผ LR์ด ์ œ๋Œ€๋กœ annealing๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
107์€ ์›๋ณธ HAWK stage1 ๊ณ„ํš๊ณผ **๋™์ผํ•œ 160๋งŒ ์ƒ˜ํ”Œ ์˜ˆ์‚ฐ**์— ๋งž์ถ˜ ๊ฐ’ โ€” ๋…ผ๋ฌธ์—์„œ "HAWK์™€ ๋™๋“ฑ ํ•™์Šต๋Ÿ‰"์„
์ฃผ์žฅํ•˜๊ธฐ ์œ„ํ•œ ํ†ต์ œ์ž…๋‹ˆ๋‹ค. (`iters_per_epoch` ๊ณ ์ •์ด๋ผ GPU๋ฅผ ๋Š˜๋ ค๋„ epoch๋‹น ์‹œ๊ฐ„์€ ์•ˆ ์ค„๊ณ ,
`max_epoch`์„ ํ•จ๊ป˜ ๋‚ฎ์ถฐ์•ผ ์‹ค์ œ ์‹œ๊ฐ„์ด ๋‹จ์ถ•๋ฉ๋‹ˆ๋‹ค.)
- **freeze ์ •์ฑ…์€ ์›๋ณธ ๊ทธ๋Œ€๋กœ** โ€” EVA-ViTยทQ-FormerยทLLaMA-2-7B ์ „๋ถ€ freeze, video Q-Former +
projection + fusion head๋งŒ ํ•™์Šต. ์›๋ณธ HAWK๋„ stage1/stage2 ๋ชจ๋‘ ๋™์ผํ•˜๋ฉฐ ๋ฐฑ๋ณธ์„ ํ‘ธ๋Š” ๋‹จ๊ณ„๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
๋ชจ๋ธ์˜ 98.3%๊ฐ€ ๊ณ ์ •์ด๋ผ **loss๊ฐ€ ์™„๋งŒํ•˜๊ฒŒ ๋‚ด๋ ค๊ฐ€๋Š” ๊ฑด ์„ค๊ณ„์ƒ ๋‹น์—ฐํ•œ ๊ฒฐ๊ณผ**์ž…๋‹ˆ๋‹ค(ํ”Œ๋ž˜ํ†  ์•„๋‹˜).
- **Stage-2 ๋ฐ์ดํ„ฐ๋Š” ์›๋ณธ HAWK ๊ฒƒ์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ** โ€” ์ž์ฒด ๋ฐ์ดํ„ฐ์…‹ ๊ตฌ์ถ•์€ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
"๊ฐ™์€ ๋ฐ์ดํ„ฐ + ๊ฐ™์€ freeze + ๊ฐ™์€ ์ƒ˜ํ”Œ ์˜ˆ์‚ฐ โ†’ ์ฐจ์ด๋Š” ์˜ค์ง ๊ตฌ์กฐ"๊ฐ€ ์ด ๋…ผ๋ฌธ์˜ ํ†ต์ œ ๋…ผ๋ฆฌ์ด๊ณ ,
๋ฆฌ๋ทฐ์–ด๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ์ฐŒ๋ฅผ ์ง€์ ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๊พธ๋ฉด `max_epoch`ยทfreeze๋ฅผ ๋งž์ถ˜ ๋…ธ๋ ฅ์ด ๋ฌด์˜๋ฏธํ•ด์ง‘๋‹ˆ๋‹ค.
- **vendor ์Šคํ‚ฌ์€ ๋ผ์ด์„ ์Šค ํ‘œ๊ธฐ ํ›„ ๋ ˆํฌ ์ปค๋ฐ‹** โ€” `vendor/academic-research-skills` (CC BY-NC 4.0),
ํ‘œ๊ธฐ๋Š” `NOTICE.md`. ์šฐ๋ฆฌ ์ž์ฒด ์—์ด์ „ํŠธ์— ์—†๋Š” ๊ธฐ๋Šฅ๋งŒ ํก์ˆ˜ํ•˜๋Š” ๋ฐฉ์นจ.
---
## 6. ๋‹ค์Œ ์ž‘์—…
> โš ๏ธ **GPU ์žฅ์ˆ˜๊ฐ€ ๋ฐ”๋€Œ์—ˆ์Šต๋‹ˆ๋‹ค.** stage1 ๋•Œ๋Š” H100 3์žฅ์ด์—ˆ์œผ๋‚˜ **ํ˜„์žฌ ์„ธ์…˜์€ 2์žฅ**์ž…๋‹ˆ๋‹ค.
> ์•„๋ž˜ ๋ช…๋ น์˜ GPU ์ธ์ž๋Š” ์‹ค์ œ `nvidia-smi` ๊ฒฐ๊ณผ๋กœ ํ™•์ธ ํ›„ ์กฐ์ •ํ•˜์„ธ์š”.
**โ‘  E1/E2 ์‹ค์ธก** (์งง์Œ, GPU 1์žฅ์ด๋ฉด ์ถฉ๋ถ„)
```bash
cd /home/work/seoik/hawk
$CERBERUS_PY scripts/extract_representations.py --cfg configs/eval_configs/eval.yaml \
--ckpt /home/work/seoik/runs/core/main/checkpoint_106.pth --out experiments/out/reps.npz
$CERBERUS_PY experiments/disentanglement.py --reps experiments/out/reps.npz # CDS
```
**โ‘ก Stage-2 finetune** (์žฅ์‹œ๊ฐ„)
`configs/train_configs/stage2_finetune.yaml`์—์„œ ๊ฒฝ๋กœ 3๊ฐœ๋ฅผ ๋จผ์ € ๊ต์ฒด:
- `ckpt:` โ†’ `/home/work/seoik/runs/core/main/checkpoint_106.pth`
- `anno_dir:` โ†’ `/home/work/seoik/hawk_anomaly/Annotation/All_Mix/all_videos_train.json`
- `videos_dir:` โ†’ `/home/work/seoik/hawk_anomaly/Videos/`
```bash
# ์ธ์ž: <cfg> <tag> <gpu-ids> <nproc> โ€” GPU 2์žฅ ๊ธฐ์ค€
bash scripts/train_run.sh configs/train_configs/stage2_finetune.yaml stage2 0,1 2
```
---
## 7. ์ž‘์—… ๊ทœ์น™
- **์žฅ์‹œ๊ฐ„ GPU ์ž‘์—…์€ ์‹œ์ž‘ ์ „ ์Šน์ธ์„ ๋ฐ›์œผ์„ธ์š”.** ํ•™์Šต ์žฌ๊ฐœยทfinetune ์ฐฉ์ˆ˜๋Š” ํ•ญ์ƒ ํ™•์ธ ํ›„ ์ง„ํ–‰.
- **์ฃผ๊ธฐ์ ์œผ๋กœ ๋ณด๊ณ **ํ•˜์„ธ์š” โ€” ์‚ฌ์šฉ์ž๊ฐ€ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค. ์ง„ํ–‰๋ฅ ยทETAยท์ด์ƒ ์ง•ํ›„๋ฅผ ๋จผ์ € ์•Œ๋ฆฝ๋‹ˆ๋‹ค.
- **๋ฐฑ์—…์€ ๋‘ ๊ฐˆ๋ž˜**: ์ฝ”๋“œยท๋ฌธ์„œยทfigure๋Š” GitHub `jungseoik/hawk`, ์ฒดํฌํฌ์ธํŠธยท๋กœ๊ทธ๋Š”
HF `backseollgi/Cerberus/stage1_core/`. ํ† ํฐ์€ `seoik/.github_token`, `seoik/.hf_token`.
ํฐ ๋ณ€๊ฒฝ ํ›„์—๋Š” ์–‘์ชฝ ๋‹ค ๋ฐ€์–ด๋‘์„ธ์š” โ€” ๋‹ค๋ฅธ ์„œ๋ฒ„์—์„œ ์žฌํ˜„ ๊ฐ€๋Šฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
(`hawk/docs/reproduce.md`, `hawk/docs/MIGRATION.md`).
- **CERBERUS ๊ด€๋ จ ๋…ผ๋ฌธ ์ž‘์—…์€ ์ž์ฒด ์—์ด์ „ํŠธ ์šฐ์„ ** (`hawk/.claude/agents/` 4์ข… โ€” ๊ณ ์œ  ๋งฅ๋ฝ์ด
`agent-memory/`์— ์ถ•์ ๋ผ ์žˆ์Œ). vendor ์Šคํ‚ฌ์€ ์ธ์šฉ ๊ฒ€์ฆยทPRISMAยทํ•™ํšŒ ํฌ๋งท ๊ฐ™์€ ๋ฒ”์šฉ ๊ธฐ๋Šฅ์—๋งŒ.
์ƒ์„ธ ํŒ๋‹จ ๊ธฐ์ค€์€ `hawk/CLAUDE.md`.
- **`webvid_10m*` 1.1TB๋Š” ์ถ”์ถœ์ด ๋๋‚˜ ์‚ญ์ œ ๊ฐ€๋Šฅ**ํ•ฉ๋‹ˆ๋‹ค. ์žฌ๋‹ค์šด๋กœ๋“œ๋Š”
`hawk/scripts/resilient_hf_download.py`๋กœ ์•ฝ 7์‹œ๊ฐ„.