CERBERUS ์์ ๋ณผ๋ฅจ โ Claude ์ธ์ ๊ธธ์ก์ด
์ด ํ์ผ์ /home/work/seoik์์ ์ธ์
์ ์ด๋ฉด ์๋์ผ๋ก ์ฝํ๋๋ค. ๋ค๋ฅธ ๋ฌด์๋ณด๋ค ๋จผ์ ์ฌ๊ธฐ๋ถํฐ.
0. ์ ์ธ์ ์ด๋ผ๋ฉด ์ฒซ ๋ช ๋ น
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. ์ด ์๋ฒ ํน์ ์ ํจ์ (์ ๋ถ ์ค์ธก์ผ๋ก ํ์ธ๋ ๊ฒ)
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๋ ์ด๋ฏธ ์์ ๋จ)- NFS๊ฐ ์ ์ผํ ๋ณ๋ชฉ์
๋๋ค. CPU 83์ฝ์ดยทRAM 676GB๋ ๋จ์๋๋๋ค.
์ํ์ผ ์ฐ๊ธฐ๊ฐ ๋ณ๋ ฌ๋์ ๋ฌด๊ดํ๊ฒ ~50 files/s์์ ํฌํ(ํ์ผ๋น 35ms ์๋ณต ์ง์ฐ)ํ๋ฏ๋ก
์์ปค๋ฅผ ๋๋ ค๋ ๋นจ๋ผ์ง์ง ์์ต๋๋ค. ๋๋ ์ถ์ถ ์์
์ ์์ปค ์ฆ์ค์ ์ ์ํ์ง ๋ง์ธ์.
๋จ ํ์ต ์ค
data:์ง์ฐ์ ์ค์ธก 0.0000 โ ํ์ต์ compute-bound๋ผ NFS ์ํฅ ์์ต๋๋ค. - Claude ์์ด์ ํธ/์คํฌ์ ์ธ์ ์์ ์์ ์๋ง ์ค์บ๋ฉ๋๋ค. ์ค๊ฐ์ ์ถ๊ฐํ๋ฉด ํ๋์ ์ ์กํ๋ ๋ถํธ์คํธ๋ฉ์ ๋จผ์ ๋๋ฆฌ์ธ์.
- ์ปจํ
์ด๋
eth0์นด์ดํฐ์ NFS ํธ๋ํฝ์ด ์ ์กํ๋๋ค(ํธ์คํธ ์ปค๋์ด ์ฒ๋ฆฌ). ๋คํธ์ํฌ๊ฐ ํ๊ฐํด ๋ณด์ฌ๋ ๋ณ๋ชฉ์ด ์๋๋ผ๋ ๊ทผ๊ฑฐ๊ฐ ๋์ง ๋ชปํฉ๋๋ค. - ํ๊ฒฝ์
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 $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์ฅ์ด๋ฉด ์ถฉ๋ถ)
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.pthanno_dir:โ/home/work/seoik/hawk_anomaly/Annotation/All_Mix/all_videos_train.jsonvideos_dir:โ/home/work/seoik/hawk_anomaly/Videos/
# ์ธ์: <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, ์ฒดํฌํฌ์ธํธยท๋ก๊ทธ๋ HFbackseollgi/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์๊ฐ.