Cerberus / docs /STATE.md
backseollgi's picture
Upload docs/STATE.md with huggingface_hub
b4c31cb verified
|
Raw History Blame Contribute Delete
7.47 kB
# ํ˜„์žฌ ์ƒํƒœ โ€” ์„ธ์…˜์ด ๋Š๊ฒจ๋„ ์—ฌ๊ธฐ๋ถ€ํ„ฐ ์ฝ์œผ๋ฉด ์ด์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค
**๋งˆ์ง€๋ง‰ ๊ฐฑ์‹  2026-08-18.** ๊ธด ์„œ์ˆ ์€ ๋‹ค๋ฅธ ๋ฌธ์„œ์— ์žˆ๋‹ค. ์—ฌ๊ธฐ๋Š” *์ง€๊ธˆ ๋ฌด์—‡์ด ๋Œ๊ณ  ์žˆ๊ณ 
๋‹ค์Œ์ด ๋ฌด์—‡์ธ๊ฐ€*๋งŒ ๋‘”๋‹ค.
## โ–ถ ํ˜„์žฌ โ€” ์›จ์ด๋ธŒ 2 ์ง„ํ–‰ ์ค‘ (2026-08-21 15:53)
**์›จ์ด๋ธŒ 1 ์™„์ฃผ.** `duplicate`ยท`flow_reinit` ๊ฐ€ 40/40 ์„ ๋งˆ์ณค๊ณ  ์ฒดํฌํฌ์ธํŠธ๊ฐ€ ๊ฑด๊ฐ•ํ•˜๋‹ค
(๋น„์œ ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ 0/231, ์†์‹ค ๋‹จ์กฐ ํ•˜๊ฐ•).
```
โœ… zero 40/40
โœ… duplicate 40/40 oriloss 1.2402 โ†’ 1.0682
โœ… flow_reinit 40/40 oriloss 1.2567 โ†’ 0.7255
๐Ÿ”„ flow 17/40 (GPU 0)
๐Ÿ”„ random_mask 21/40 (GPU 1)
```
**์ฃผ์˜ โ€” ์•„์ง ํ•ด์„ํ•˜์ง€ ๋ง ๊ฒƒ.** `flow_reinit` ์˜ ์ตœ์ข… ์†์‹ค์ด `duplicate` ๋ณด๋‹ค ๋‚ฎ์ง€๋งŒ, ์ด๋Š”
ํ•™์Šต ์†์‹ค์ด๋ฉฐ ํ•˜๋ฅ˜ ์„ฑ๋Šฅ์ด ์•„๋‹ˆ๋‹ค. ํŒ์ •์€ held-out ํ‰๊ฐ€์™€ `compare_arms.py` ์˜ ํด๋ฆฝ ๋‹จ์œ„ ์Œ
๋ถ€ํŠธ์ŠคํŠธ๋žฉ์œผ๋กœ๋งŒ ํ•œ๋‹ค(`experiment-roadmap.md` ยง0 ์˜ S1/S2/S3).
๋‚จ์€ 42 epoch รท 2 GPU ร— 1.6h โ‰ˆ **1.4์ผ**, ์™„๋ฃŒ ์˜ˆ์ƒ **8์›” 23์ผ**.
์žฌ๊ฐœ ๋ช…๋ น:
```bash
cd $CERBERUS_ROOT/hawk && ARM_GPUS="0 1" bash scripts/run_arms_parallel.sh
```
## ๐Ÿ” ๋Œ€ํ™” ๊ธฐ๋ก์ด ์ด์ œ ์˜์†๋œ๋‹ค (2026-08-18)
`~/.claude` ๋Š” ์ปจํ…Œ์ด๋„ˆ์™€ ํ•จ๊ป˜ ์‚ฌ๋ผ์ง€๋ฏ€๋กœ `claude --resume` ๋ชฉ๋ก๋„ ์‚ฌ๋ผ์กŒ๋‹ค. ์ •๋ณธ์„
`seoik/claude_state/` ์— ๋‘๊ณ  `scripts/claude_state_sync.sh` ๋กœ ์„ธ ๊ฒน ๋ณด์กดํ•œ๋‹ค โ€” ๋ถ€ํŒ… ์‹œ
`--restore`, 5๋ถ„ ์ฃผ๊ธฐ ๋ฐ๋ชฌ `--save`, ์ •์ƒ ์ข…๋ฃŒ ์‹œ `SessionEnd` ํ›…. ๋ถ€ํŠธ์ŠคํŠธ๋žฉ 1.5 ๋‹จ๊ณ„๊ฐ€
์ž๋™ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ ์ƒˆ ์ปจํ…Œ์ด๋„ˆ์—์„œ `claude --continue` ๋กœ ๋ฐ”๋กœ ์ด์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.
**๋ถ€ํŠธ์ŠคํŠธ๋žฉ์„ ๋จผ์ € ๋Œ๋ฆฐ ๋‹ค์Œ claude ๋ฅผ ๋„์›Œ์•ผ ํ•œ๋‹ค** (๋ชฉ๋ก์€ ์‹คํ–‰ ์‹œ์ ์— ์ฝํžŒ๋‹ค).
๊ณผ๊ฑฐ ์„ธ์…˜ 5๊ฐœ๊ฐ€ ์ด๊ด€๋ผ ์‹ค์ œ ์žฌ๊ฐœ๊นŒ์ง€ ๊ฒ€์ฆ๋๋‹ค.
## โš  ์ปจํ…Œ์ด๋„ˆ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ์ด ๋ชจ๋“  ๋ฏธ์Šคํ„ฐ๋ฆฌ ์‚ฌ๋ง์˜ ์›์ธ์ด์—ˆ๋‹ค
```
/sys/fs/cgroup/memory.max 240 GB (๊ตฌ ์ปจํ…Œ์ด๋„ˆ) โ†’ 739 GB (2026-08-18 ์‹  ์ปจํ…Œ์ด๋„ˆ)
/sys/fs/cgroup/memory.events oom_kill 6 โ†’ 0
```
`free` ๋Š” ํ˜ธ์ŠคํŠธ 2TB ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค โ€” ์†์ง€ ๋ง๊ณ  ํ•ญ์ƒ cgroup ๊ฐ’์„ ๋ณผ ๊ฒƒ.
๊ตฌ ์ปจํ…Œ์ด๋„ˆ์—์„œ๋Š” DataLoader worker ๊ฐ€ OOM kill โ†’ rank ์‚ฌ๋ง โ†’ NCCL watchdog SIGABRT ๊ฐ€
์•ฝ 5 epoch(6.6์‹œ๊ฐ„)๋งˆ๋‹ค ๋ฐœ์ƒํ–ˆ๋‹ค. ์‹  ์ปจํ…Œ์ด๋„ˆ๋Š” ์—ฌ์œ ๊ฐ€ 3๋ฐฐ๋ผ ์žฌ๋ฐœ ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ์ง€๋งŒ,
`num_workers` 4 ์™€ ์žฌ์‹œ๋„ ์ƒํ•œ 12 ๋Š” ๊ทธ๋Œ€๋กœ ๋‘”๋‹ค(๋งˆ์ง„๋งŒ ์ปค์ง„๋‹ค).
**์žฌ๊ฐœ๋Š” ์ •์ƒ ์ž‘๋™ํ•˜๋ฏ€๋กœ ์ง„ํ–‰๋ถ„์„ ์žƒ์ง€ ์•Š๋Š”๋‹ค.** random_mask v1 ์ค‘๋‹จ, ํ‰๊ฐ€ 2๊ฑด ์‹คํŒจ,
flow v2 ์˜ ์ฃผ๊ธฐ์  ์‚ฌ๋ง์ด ์ „๋ถ€ ์ด๊ฒƒ์ด์—ˆ๋‹ค.
ํ™•์ธ: `cat /sys/fs/cgroup/memory.events`
ํ™•์ธ: `bash scripts/run_ablation_v2.sh --check`
๊ฐ€์ค‘์น˜ ํ™•์ธ: `grep -m1 REPR_LOSS_WEIGHT $CERBERUS_ROOT/runs/abl2_flow/train.log`
## ์ด๋ฏธ ๋‚˜์˜จ ์‹ค์ธก (์ฒซ ๊ฒฐ๊ณผ)
`flow` v1 arm ์˜ ์ดํƒˆ ์ „/ํ›„ ๋น„๊ต โ€” ํ‘œํ˜„ ์†์‹ค์ด ํ™œ์„ฑํ™”๋˜๋ฉด ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง„๋‹ค.
| | ep27 (์ดํƒˆ ์ „) | ep39 (์ดํƒˆ ํ›„) |
|---|---|---|
| Scene-word Recall | **0.4085** | 0.3208 |
| BLEU-1 | 0.3259 | 0.2866 |
ฮ” = +0.0920, 95% CI [+0.0564, +0.1276], n = 424 โ€” ๊ตฌ๊ฐ„์ด 0 ์„ ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค.
์›๊ณ  ๋ฐ˜์˜: Appendix A.2. **์ด๊ฒƒ์ด `t = 0` ์žฌ์‹คํ–‰์˜ ์‹ค์ฆ ๊ทผ๊ฑฐ๋‹ค.**
๊ฒฐ๊ณผ: `experiments/out/eval_flow_ep{27,39}.json`
## ์„ค๊ณ„ ๊ฒฐ์ • โ€” ์›๋ณธ๊ณผ์˜ ์˜ˆ์‚ฐ ์ผ์น˜๋Š” ํ•„์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ค (2026-08-17)
์›๋ณธ HAWK ์˜ effective batchยท์ƒ˜ํ”Œ ์˜ˆ์‚ฐ์— ๋งž์ถ”๋Š” ๊ฒƒ์€ **์š”๊ตฌ์‚ฌํ•ญ์ด ์•„๋‹ˆ๋‹ค.** ํ•„์š”ํ•œ ๊ฒƒ์€
**arm ๋ผ๋ฆฌ ์„œ๋กœ ๊ฐ™์€ ์กฐ๊ฑด**๋ฟ์ด๋‹ค. GPU ๊ตฌ์„ฑ ๋ณ€๊ฒฝ์„ ๊ฒ€ํ† ํ•  ๋•Œ "์›๋ณธ๊ณผ ๋‹ฌ๋ผ์ง„๋‹ค"๋ฅผ ๋ฐ˜๋Œ€
๊ทผ๊ฑฐ๋กœ ์“ฐ์ง€ ๋ง ๊ฒƒ (๋ฃจํŠธ `CLAUDE.md` ยง5 ์™„ํ™” ํ•ญ๋ชฉ ์ฐธ์กฐ).
## ์™œ ์žฌ์‹คํ–‰ํ•˜๋Š”๊ฐ€ (v1 ์‹คํŒจ ์š”์•ฝ)
| arm | v1 ๊ฒฐ๊ณผ |
|---|---|
| flow | 40/40 ์™„์ฃผ. ๋‹จ **epoch 28 ์— ํ‘œํ˜„ ์†์‹ค์ด ์ •๋ฅ˜์  ์ดํƒˆ**, ๋งˆ์ง€๋ง‰ 12 epoch ์ด ๋‹ค๋ฅธ arm ๊ณผ ๋‹ค๋ฅธ ์‹คํšจ ๋ชฉ์ ํ•จ์ˆ˜ |
| random_mask | epoch 5 ์—์„œ DataLoader worker OOM kill. ๋Ÿฌ๋„ˆ๊ฐ€ ๊ฐ์ง€ ๋ชปํ•˜๊ณ  ๋‹ค์Œ arm ์œผ๋กœ ์ง„ํ–‰ |
| duplicate | epoch 16 ์—์„œ **๋ฐœ์‚ฐ** โ€” ํŒŒ๋ผ๋ฏธํ„ฐ 193/231 ๋น„์œ ํ•œ, ํšŒ๋ณต ๋ถˆ๊ฐ€. ๋งˆ์ง€๋ง‰ ์ •์ƒ์€ ckpt_15 |
| zero | ๋ฏธ์‹œ์ž‘ |
| flow_reinit | ๋ฏธ์‹œ์ž‘ |
์…‹ ๋‹ค ์›์ธ์ด ๊ฐ™๋‹ค โ€” `L_sim`ยท`L_dis` ๊ฐ€ `cos = ยฑ1` ์ •๋ฅ˜์ ์— ๊ฐ‡ํ˜€ ์žˆ๋‹ค๊ฐ€ ์žฅ๊ธฐ ํ•™์Šต์—์„œ
์ดํƒˆํ•˜๊ณ , ์ดํƒˆ ์‹œ์ ์ด arm ๋งˆ๋‹ค ๋‹ค๋ฅด๋ฉฐ, ์–ด๋–ค arm ์—์„œ๋Š” ํ•™์Šต์„ ์ฃฝ์ธ๋‹ค. ๋…ผ๋ฌธ์€ ๋‘ ํ•ญ์„
๊ธฐ์—ฌ๋กœ ์ฃผ์žฅํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ(Appendix A) 0 ์œผ๋กœ ๋‘๋Š” ๋ฐ ์žƒ๋Š” ๊ฒƒ์ด ์—†๋‹ค.
**v1 ๊ฒฐ๊ณผ๋Š” ์ง€์šฐ์ง€ ์•Š๋Š”๋‹ค** โ€” ์ดํƒˆ ํ˜„์ƒ ์ž์ฒด๊ฐ€ Appendix A.1 ์˜ ๊ทผ๊ฑฐ๋‹ค.
## ๋๋‚˜๋ฉด ํ•  ์ผ
```bash
# arm ๋ณ„ ํ‰๊ฐ€ (์ •์  ์ž…๋ ฅ ๋ชจ๋“œ๋Š” run ์˜ config.yaml ์—์„œ ์ž๋™ ๊ฒ€์ถœ)
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
```
## ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋ฉด ํŒ์ •ํ•˜๋Š” ๊ฒƒ
`experiment-roadmap.md` ยง0 ์˜ S1/S2/S3 ์‚ฌ๋‹ค๋ฆฌ์™€ ยง6 ์˜ ๊ฒฐ๊ณผ๋ณ„ ๋Œ€์‘์„ ๊ทธ๋Œ€๋กœ ๋”ฐ๋ฅธ๋‹ค.
์ฃผ ์ข…์ ์€ **๋„๋ฉ”์ธ๋ณ„** ๊ฐ’์ด๋‹ค(ํ’€๋ง์€ DoTA 62.8% ํŽธ์ค‘).
## ๋ฏธํ•ด๊ฒฐ (Loop 3 must-fix ์ค‘ ๋‚จ์€ ๊ฒƒ)
| | ๋‚ด์šฉ |
|---|---|
| โ€” | Stage-1 ์žฌํ•™์Šต ์—ฌ๋ถ€ (์ •๋ ฌ ๊ฒฐํ•จ ๊ทผ๋ณธ ํ•ด๊ฒฐ + C3 ์ฆ๊ฑฐ ํ™•๋ณด๋ฅผ ํ•œ ๋ฒˆ์—) โ€” GPU ์˜ˆ์‚ฐ ๊ฒฐ์ • |
| โ€” | C3 ์ฆ๊ฑฐ ๊ฒฝ๋กœ: Appendix F(์†์‹ค ํ•ญ ๋ˆ„์  ์ ˆ์ œ)๋ฅผ ์‹คํ–‰ํ• ์ง€, C3 ๋ฅผ ๊ธฐ์—ฌ์—์„œ ๋‚ด๋ฆด์ง€ |
## Loop 3 ์ดํ›„ ์™„๋ฃŒํ•œ ๊ฒƒ
- **๊ฐ€์„ค ํ˜•์‹ ์ œ๊ฑฐ** โ€” H1~H7 โ†’ ๋ฐœ๊ฒฌ ์„œ์ˆ . ์‹ฌ์‚ฌ์ž๊ฐ€ ์ฐพ์€ ๋ชจ์ˆœ 3๊ฑด ๋™๋ฐ˜ ํ•ด์†Œ
- **๋ฒค์น˜๋งˆํฌ "์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ" ์ฃผ์žฅ ์ฒ ํšŒ** โ€” ๋ผ๋ฒจ์€ LLM ์ƒ์„ฑ + ์‚ฌ๋žŒ 1์ธ 80๊ฑด ๊ฒ€์ฆ. ๊ทธ ๊ทœ๋ชจ๋กœ
๋…๋ฆฝ ๋ฒค์น˜๋งˆํฌ๋ฅผ ์ฃผ์žฅํ•˜๋ฉด ์ •์ž‘ ํŠผํŠผํ•œ ๊ฒƒ๋“ค๊นŒ์ง€ ์‹ ๋ขฐ๋ฅผ ์žƒ๋Š”๋‹ค. ๋‘ ๋ฒˆ์งธ ์ฃผ์„์ž๋„ ๋ถˆํ•„์š”ํ•ด์ง
- **Scene-word Recall ํŽธํ–ฅ 3์ข… ๋ณด์ •** (๊ฒฐ๊ณผ ์ „ ๋™๊ฒฐ) โ€” ํ‘œ์ œ์–ดํ™”, ๋™์˜์–ด 15๊ตฐ, ์†์„ฑ ์ƒ์ถฉ
๋ฌดํšจํ™”. ํ•ฉ์„ฑ 6์ผ€์ด์Šค ๊ฒ€์ฆ
- **๋ผ๋ฒจ ์Šคํ‚ค๋งˆ 4๋ฒ”์ฃผ๋กœ ํ†ต์ผ**, `context_critical` โ†’ `causal`
- **๋ถ€๋ก A.1ยทA.2 ์œ„์น˜ ์ •์ •** (Appendix I ๋’ค์— ์žˆ์—ˆ์Œ), ์ˆ˜์‹ (A.1) โ†’ (B.1)
- **[54]/[55]/[57] ๊ธฐ์ˆ  ์ •์ •** โ€” Barlow Twins โ‰  VICReg, RESOUND ์€ ์˜ˆ์ธก ๋ถˆ๊ฐ€๋Šฅ์„ฑ์ด ์•„๋‹ˆ๋ผ ์ตœ์†Œํ™”
## ์ตœ๊ทผ์— ๊ณ ์นœ ๊ฒƒ (๋˜๋Œ๋ฆฌ์ง€ ๋ง ๊ฒƒ)
- **์ƒ์„ฑ ๋น„๊ฒฐ์ •๋ก ** โ€” `do_sample=False` ๋งŒ์œผ๋กœ ๋ถ€์กฑํ–ˆ๋‹ค. ๊ฐ™์€ ์ฒดํฌํฌ์ธํŠธยท๊ฐ™์€ ํด๋ฆฝ์—์„œ
3/3 ๋‹ค๋ฅธ ์ถœ๋ ฅ, ํ•˜๋‚˜๋Š” `4 4 4 4 โ€ฆ` ํ‡ดํ™”. `enforce_determinism()` ์ถ”๊ฐ€ ํ›„ 3/3 ๋™์ผ.
ํ‰๊ฐ€๋Š” ๋ฐ˜๋“œ์‹œ `CUBLAS_WORKSPACE_CONFIG=:4096:8` ๊ณผ ํ•จ๊ป˜ ์‹คํ–‰ํ•  ๊ฒƒ.
- **์ถ”๋ก  ๊ฒฝ๋กœ๊ฐ€ arm ์„ค์ •์„ ๋ฌด์‹œ** โ€” `load_streams_aligned` ๊ฐ€ ํ•ญ์ƒ `flow` ๋กœ ๊ณ ์ •๋ผ ์žˆ์—ˆ๋‹ค.
์ด์ œ run ์˜ `config.yaml` ์—์„œ ์ž๋™ ๊ฒ€์ถœํ•œ๋‹ค.
- **์ •๋‹ต ์„ค๋ช… ์˜ค์—ผ** โ€” UCF-Crime 10.8% ๊ฐ€ LLM ๊ฑฐ๋ถ€ ์‘๋‹ต. ํ‰๊ฐ€์—์„œ๋งŒ ์ œ์™ธ(ํ•™์Šต์€ ํ†ต์ œ ์œ ์ง€).
- **Stage-1 ์ •๋ ฌ ๊ฒฐํ•จ ๊ณต๊ฐœ** โ€” `checkpoint_106` ์€ ์ •๋ ฌ ์ˆ˜์ • ์ปค๋ฐ‹๋ณด๋‹ค 10์‹œ๊ฐ„ ์•ž์„ ๋‹ค.
ยง4.1 ์— ๊ณต๊ฐœํ–ˆ๊ณ  Appendix A ์— ์ „์ œ๋กœ ๋‹ฌ์•˜๋‹ค.