"GPU 한 장 띄워놓고 손으로 하이퍼파라미터를 바꿔가며 nanochat을 굴리는 게 너무 비효율적이지 않나?" 같은 생각을 했다면 Karpathy의 신작 레포가 정확히 그 자리를 노린다.
📌 핵심 3줄 요약
- autoresearch는 Karpathy가 2026년에 공개한 "AI 에이전트가 ML 실험을 직접 설계·실행·튜닝하는" 자동 연구 파이프라인 레포다.
- nanochat 학습 코드를 타깃으로 잡고 에이전트가 가설→코드 수정→실행→해석 루프를 자동으로 돈다.
- NVIDIA GPU 1장(8GB 이상)과 Python 3.10+, OpenAI 또는 Anthropic API 키만 있으면 첫 실험을 굴려볼 수 있다.
1. autoresearch가 정확히 뭔가
한 줄로 정리하면 "ML 연구자 한 명을 LLM 에이전트로 치환하려는 실험"이다. "학습률을 좀 더 낮추면 어떻게 될까?" 같은 호기심을 에이전트가 직접 가설로 세우고 코드로 옮기고 실행한다.
대상은 같은 저자의 nanochat 학습 스크립트다. 모델·옵티마이저·데이터 파이프라인이 한 파일에 모여 있어 LLM이 통째로 읽고 수정하기 좋다. 비슷한 결로 Sakana AI Scientist가 있지만 autoresearch는 "GPU 1장에서 소형 트랜스포머를 빠르게 굴린다"는 현실적 제약에 맞춰져 있다. 거대 실험이 아니라 "자기 전에 가설 몇 개 돌려놓고 자고 일어나기" 시나리오다.
2. 일반 ML 실험 vs autoresearch 자동화
"왜 굳이 에이전트로?"라는 질문은 손 사이클과 비교해보면 답이 보인다.
| 단계 | 사람이 손으로 | autoresearch 에이전트 |
|---|---|---|
| 가설 수립 | 연구자 머릿속·논문 리뷰 | LLM이 텍스트로 자동 제안 |
| 코드 수정 | IDE에서 직접 편집 | patch 생성 후 적용 |
| 실행·로그 | 터미널 실행·수동 관찰 | 서브프로세스 + 로그 파싱 |
| 결과 해석 | 연구자 직접 그래프 해석 | LLM이 요약·다음 가설 도출 |
핵심 차이는 야간 자동화다. 사람이 1시간에 1번 사이클을 돈다면 에이전트는 그 사이 코드 변경·재실행·로그 요약을 무인으로 반복한다.
3. 사전 준비물과 자동 실험 4단계
본격 실행 전 환경부터 정리한다. autoresearch는 nanochat에 의존하므로 nanochat이 굴러가는 환경이 1차 조건이다.
- NVIDIA GPU 1장(VRAM 8GB 이상, RTX 4090·A100급이면 여유)
- CUDA 12.x + PyTorch 2.x, Python 3.10 이상
- OpenAI 또는 Anthropic API 키(에이전트 두뇌용)
레포를 받고 실행하면 에이전트는 다음 4단계를 한 사이클로 반복한다.
- 가설 제안 — 현재 nanochat 설정과 이전 실험 로그를 보고 "다음에 시도할 변경"을 텍스트로 제안한다.
- 코드 패치 — 제안을 실제 파일 diff로 변환해 nanochat 소스에 적용한다.
- 학습 실행 — 서브프로세스로 학습 스크립트를 돌리며 loss·val acc를 수집한다.
- 결과 해석 — 메트릭을 다시 LLM에 넣어 "가설이 맞았는가, 다음엔 뭘 할까"를 요약한다.
4. 처음 한 번 돌려보기
가장 빨리 검증할 수 있는 흐름은 클론→의존성→환경 변수→한 사이클이다.
git clone https://github.com/karpathy/autoresearch
cd autoresearch
pip install -e .
# nanochat도 같은 부모 폴더에 받아둔다
git clone https://github.com/karpathy/nanochat ../nanochat
# 에이전트 두뇌로 쓸 API 키
export OPENAI_API_KEY="sk-..."
# 또는
export ANTHROPIC_API_KEY="sk-ant-..."
# 첫 실험 사이클 (실제 진입점·플래그는 레포 README 기준)
python -m autoresearch.run \
--target-repo ../nanochat \
--max-steps 1 \
--train-steps 200
처음 실행하면 보통 두 곳에서 막힌다. 첫째 GPU가 nanochat 기본 batch_size를 못 받아주는 OOM, 둘째 LLM API의 컨텍스트 한도 초과다. 해결책은 단순한데 train-steps와 모델 크기를 한 단계씩 줄이면서 1사이클이 끝까지 도는 조합을 먼저 찾는 것이다. 그 다음에 max-steps를 늘려 야간 자동화로 넘긴다.
⚠️ 단점과 주의할 점
- LLM API 비용 — 가설 제안·로그 해석에 토큰을 꽤 먹는다. 사이클당 평균 비용을 미리 측정하지 않으면 청구서가 놀랍게 찍힌다.
- 에이전트 코드 변경은 항상 검증 필요 — 학습이 빠르게 수렴하는 듯 보여도 메트릭 계산 자체를 망가뜨린 경우가 있다.
- nanochat 외 임의 레포는 그대로 꽂으면 거의 동작하지 않는다. 학습 스크립트 구조에 강하게 결합돼 있다.
- 단일 GPU·소형 모델 가정이라 실무 LLM 파인튜닝에는 그대로 쓰기 어렵다. 어디까지나 연구·학습 목적이다.
🚀 지금 바로 할 일
git clone https://github.com/karpathy/autoresearch와git clone https://github.com/karpathy/nanochat를 같은 부모 폴더에 받는다.- OpenAI 또는 Anthropic API 키를 환경 변수로 잡고 사이클당 토큰 사용량을 한 번 측정한다.
- train-steps=200, max-steps=1 사이클이 끝까지 도는지부터 확인한 뒤 야간 자동화로 늘린다.
💬 의견
AI 에이전트에게 ML 실험 자체를 맡겨본 경험이 있다면 어떤 가설을 자동화했고 어디서 무너졌는지 댓글로 공유 부탁드립니다. 다음 글은 autoresearch 에이전트의 가설 제안 프롬프트를 직접 커스터마이즈하는 실전편을 다룰 예정입니다.
함께 보면 좋은 글
- karpathy/nanochat 본체 레포 — autoresearch가 실험 대상으로 삼는 소형 트랜스포머 학습 코드.
- karpathy/autoresearch README — 가설 제안 프롬프트와 자동화 루프 구조 원문.
참고 자료
- github.com/karpathy/autoresearch — 본 글의 명령·디렉터리 구조는 이 레포 README 기준이다.
- github.com/karpathy/nanochat — autoresearch가 실험 대상으로 삼는 소형 트랜스포머 학습 코드.
- Sakana AI Scientist — 비슷한 결의 "AI가 ML 연구를 자동화"하는 선행 연구.
'AI 튜토리얼' 카테고리의 다른 글
| pydantic-ai 완벽 가이드: 타입 안전 Python AI 에이전트 (2026) (0) | 2026.05.24 |
|---|---|
| Anthropic Cybersecurity Skills 활용법: Claude Code 보안 자동화 가이드 (2026) (0) | 2026.05.24 |
| CLI-Anything 입문: GUI 앱을 에이전트 CLI로 자동 래핑 (2026) (0) | 2026.05.23 |
| 파이썬 3.15 숨겨진 변경점 7가지 한눈에 (0) | 2026.05.21 |
| Anthropic Skills 만들기 완벽 가이드: 공식 레포 패턴 정리 (2026) (0) | 2026.05.17 |