Claude Code한테 내 옛날 연구 코드 맡겨봤는데 하루만에 54% 성능 향상시킴 ㄷㄷ
요약
기사 전체 정리
- Claude Code가 하루 동안 42번 실험, 13번 커밋, 29번 리버트해서 Mean Rank 344→157 (54% 감소) 달성
- 가장 큰 단일 성능 향상은 아키텍처 개선이 아니라 temperature clamp 버그 수정 (-113점) ㄹㅇ 레전드
- Autoresearch 루프: 가설 → 수정 → 훈련 → 평가 → 커밋/리버트 → 반복 구조
- 명확하게 정의된 탐색 공간에서는 개쩌는 성능, "unknown unknowns" 구간에선 스파게티 던지기 수준으로 전락
- 샌드박스 필수: 말 안 들으면 이상한 bash 명령어 치거나 훈련 기다리다 그냥 대화 종료하는 사태 발생 ㅋㅋ
🔬 프로젝트 배경
저자가 Karpathy의 Autoresearch를 보고 "이거 내가 완전히 이해하는 연구 문제에 써보면 어떨까?" 생각함. 그래서 자기 옛날 연구 코드인 eCLIP (의료 X-ray에 방사선사 시선 히트맵을 활용한 CLIP 모델)을 꺼내서 Claude Code한테 맡김.
⚙️ Autoresearch 핵심 구조
Autoresearch는 LLM 에이전트가 중간에 낀 단순한 제약 최적화 루프임:
- 에이전트가 `train.py` 파일 하나만 수정 가능
- `program.md`에서 지시사항 읽기
- `scratchpad.md`를 working memory로 활용 (실험 히스토리 기록)
- 실험 1회당 약 5분 제한 (빠른 이터레이션 + 노이즈 오버피팅 방지)
탐색 단계는 크게:
1. 하이퍼파라미터 튜닝
2. 소규모 아키텍처 변경
3. 문샷 아이디어 (웹 접근 허용, 논문 읽기)
🔒 샌드박스 설정
"에이전트가 내 워크스테이션에서 아무 코드나 실행하면 어떡함" 이라는 합리적인 공포로 인해 꼼꼼하게 격리:
- 훈련 루프 컨테이너화 + 네트워크 차단
- Claude Code 권한: `train.py`, `scratchpad.md` 편집 + `run.sh` 실행만 허용
- 직접 Python 실행, pip install, git push 등 전부 차단
📊 데이터셋
원본 논문의 의료 X-ray 데이터셋은 접근 불가라서 Ukiyo-eVG 데이터셋 사용:
- 약 11K개의 일본 우키요에(목판화) 이미지
- 구절 → 바운딩 박스 어노테이션 포함 (CIGAr 논문, ECCV 2024)
- 바운딩 박스를 가우시안 히트맵으로 변환해서 원래 eCLIP의 방사선사 시선 히트맵처럼 활용
모델 스펙: ViT-Small (22M) + DistilBERT (66M) + HeatmapProcessor = 약 90M 파라미터
베이스라인: Val Mean Rank 344.68, img→txt R@1 17.2%, txt→img R@1 16.5%
📈 결과 요약
| 지표 | 수치 |
|------|------|
| Test Mean Rank | 34.30 |
| img→txt R@5 | 53.0% |
| txt→img R@5 | 51.4% |
42번 실험 · 13번 커밋 · 29번 리버트 · RTX 4090 1장 · 토요일 하루
🏆 무엇이 실제로 효과 있었나?
1. Temperature clamp 버그 수정 (-113 Mean Rank) 🐛
Learnable temperature 파라미터를 2로 클램프해놓은 버그를 바로 잡아냄. 이 수정 하나가 이후 모든 아키텍처 변경을 합친 것보다 효과가 컸음. 진짜 레전드 ㄷㄷ
2. Optuna 스타일 하이퍼파라미터 튜닝 (-30 Mean Rank) 🔧
projection dimension 늘리고 LR 재튜닝으로 추가 30점 감소. 사람이 해도 되는 일이지만 에이전트가 더 빠르고 체계적으로 처리함.
3. 아키텍처 변경 (효과 미미) 😅
Phase 4~5로 갈수록 LLM 가설의 성공률이 급감. 히트맵 프로세서 어텐션 메커니즘 변경도, 문샷 아이디어도 대부분 실패. 그냥 스파게티 던지기 수준.
💭 마무리 생각
"LLM 프로젝트는 처음 90%는 개순조롭고, 마지막 10%가 진짜 험난함" 이라는 법칙 그대로 적용됨.
탐색 공간이 명확하게 정의된 구간에서는 commit-or-revert 루프가 놀라울 정도로 효과적. 근데 "unknown unknowns" 구간으로 넘어가면 최적화 루프가 폭발함.
저자가 생각하는 개선 방향:
- 문샷 아이디어에는 "실험 1번에 1가지 변경" 제약이 너무 빡빡할 수 있음
- 에이전트 루프에 플래닝 단계 추가 검토
- 서브에이전트 활용 가능성
근데 저녁 먹을 시간이 됐고 영화도 봐야 해서 여기서 Claude랑 헤어졌다고 함 ㅋㅋ
댓글
댓글
댓글을 불러오는 중...