---
title: "Claude Code한테 내 옛날 연구 코드 맡겨봤는데 하루만에 54% 성능 향상시킴 ㄷㄷ"
published: 2026-03-24T09:06:00.000Z
canonical: https://jeff.news/article/140
---
# Claude Code한테 내 옛날 연구 코드 맡겨봤는데 하루만에 54% 성능 향상시킴 ㄷㄷ

Karpathy의 Autoresearch 방법론에서 영감 받아서, 저자가 자기 옛날 연구 코드(eCLIP)를 Claude Code한테 던져주고 빨래/장보기 하러 갔음. 돌아왔더니 42번 실험 돌리고 Mean Rank를 344→157로 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랑 헤어졌다고 함 ㅋㅋ

## 핵심 포인트

- 버그 수정 한 줄이 모든 아키텍처 개선보다 효과 컸음 (-113 Mean Rank)
- 탐색 공간 명확 = 에이전트 최강, unknown unknowns 구간 = 스파게티
- 샌드박스 없이 풀 자율권은 아직 무리 - 이상한 bash 치거나 그냥 대화 종료함

## 인사이트

결국 AI 에이전트도 '버그 있는 코드 위에서 아무리 열심히 해봤자 한계 있다'는 교훈을 몸소 보여줌 ㅋㅋ 근데 반대로 생각하면, 버그 찾는 능력 자체가 이미 개쩔었다는 거 아님? 사람이었으면 temperature clamp 버그 그냥 지나쳤을 수도 있는데.
