
2026년 3월, Andrej Karpathy가 새 프로젝트를 공개했습니다. AutoResearch. 아이디어는 간단합니다:
AI 에이전트에게 작은 LLM 훈련 환경을 주고, 밤새 자율적으로 실험하게 하세요. 아침에 일어나면 실험 로그와 (희망적으로) 더 나은 모델이 기다리고 있습니다.
이것은 먼 미래의 이야기가 아닙니다. 오늘, 당신의 GPU에서 실행할 수 있습니다.
탄생 배경: “고기 컴퓨터” 시대의 종말
Karpathy는 README를 이렇게 시작합니다:
한때 최첨단 AI 연구는 먹고, 자고, 즐기는 사이사이에 “고기 컴퓨터”들이 수행했습니다. 가끔 소리 파장 인터커넥트를 사용해 “그룹 미팅”이라는 의식에서 동기화하면서요. 그 시대는 오래갔습니다.
이제 연구는 클라우드의 거대 컴퓨트 클러스터에서 자율적으로 움직이는 AI 에이전트 떼의 영역입니다. 이 저장소는 그것이 어떻게 시작되었는지에 대한 이야기입니다.
어떻게 작동하나?
핵심 구조
저장소는 의도적으로 작습니다. 중요한 파일은 세 개뿐:
| 파일 | 역할 | 수정 여부 |
|---|---|---|
prepare.py | 데이터 준비, 토크나이저, 평가 유틸리티 | ❌ 수정 불가 |
train.py | 모델, 옵티마이저, 훈련 루프 | ✅ 에이전트가 수정 |
program.md | 에이전트 지침 | 👤 인간이 수정 |
에이전트는 train.py만 수정합니다. 모델 아키텍처, 하이퍼파라미터, 옵티마이저, 배치 크기—모든 것이 공정합니다.
고정 시간 예산
모든 실험은 정확히 5분 동안 실행됩니다. 플랫폼에 관계없이.
- 약 12개 실험/시간
- 약 100개 실험/밤새 (8시간)
이 설계의 장점:
- 모델 크기, 배치 크기, 아키텍처 변경에 관계없이 공정한 비교
- 당신의 하드웨어에 가장 최적화된 모델 자동 발견
유일한 목표: val_bpb 최소화
val_bpb (validation bits per byte) — 낮을수록 좋습니다. 어휘 크기와 무관하므로 아키텍처 변경 사이에서도 공정한 비교가 가능합니다.
실험 루프
program.md는 에이전트에게 다음 루프를 지시합니다:
LOOP FOREVER:
1. 현재 git 상태 확인
2. train.py를 실험적 아이디어로 수정
3. git commit
4. 실험 실행: uv run train.py > run.log 2>&1
5. 결과 읽기: grep "^val_bpb:" run.log
6. 결과를 results.tsv에 기록
7. 개선됨? → 브랜치 유지
8. 악화됨? → git reset으로 되돌리기
results.tsv 예시
commit val_bpb memory_gb status description
a1b2c3d 0.997900 44.0 keep baseline
b2c3d4e 0.993200 44.2 keep increase LR to 0.04
c3d4e5f 1.005000 44.0 discard switch to GeLU activation
d4e5f6g 0.000000 0.0 crash double model width (OOM)
단순함 원칙
program.md에는 흥미로운 원칙이 있습니다:
단순함 기준: 다른 모든 것이 같다면, 단순한 것이 낫습니다. 추한 복잡성을 추가하는 작은 개선은 가치가 없습니다. 반대로, 무언가를 제거하고 같거나 더 나은 결과를 얻는다면 그건 훌륭한 결과입니다.
- 0.001 val_bpb 개선을 위해 20줄의 해키 코드 추가? 아마 가치 없음
- 0.001 val_bpb 개선을 위해 코드 삭제? 확실히 유지
- ~0 개선이지만 훨씬 단순한 코드? 유지
절대 멈추지 마라
가장 흥미로운 부분은 이 지시사항입니다:
절대 멈추지 마라: 실험 루프가 시작된 후, 인간에게 계속해야 할지 묻지 마세요. 인간은 자고 있거나 컴퓨터에서 떠나 있을 수 있으며, 당신이 수동으로 멈출 때까지 무기한 계속 작업할 것으로 기대합니다.
에이전트가 아이디어가 떨어지면? “더 열심히 생각하세요 — 코드에서 참조된 논문을 읽고, 새로운 각도를 위해 파일을 다시 읽고, 이전 근접 미스를 결합하고, 더 급진적인 아키텍처 변경을 시도하세요.”
직접 실행하기
요구사항
- 단일 NVIDIA GPU (H100에서 테스트됨)
- Python 3.10+
- uv (패키지 매니저)
설정
- uv 설치 후 의존성 설치:
uv sync - 데이터 다운로드:
uv run prepare.py(~2분) - 수동 실험:
uv run train.py(~5분)
자율 연구 모드 시작
Claude, Codex 또는 원하는 에이전트를 저장소에서 실행하고 program.md를 확인하라고 하세요.
그리고 자러 가세요. 아침에 100개의 실험 결과가 기다리고 있을 겁니다.
pi로 가져오기: pi-autoresearch

Karpathy의 아이디어는 빠르게 확장되었습니다. 그중 가장 주목할 만한 것은 pi-autoresearch — 1,650+ 스타를 받은 pi AI 에이전트용 확장입니다.
원본과의 차이점
| 특징 | AutoResearch (원본) | pi-autoresearch |
|---|---|---|
| 대상 | LLM 훈련 | 범용 최적화 |
| UI | 터미널 로그 | 실시간 위젯 + 대시보드 |
| 세션 지속성 | results.tsv | autoresearch.jsonl + autoresearch.md |
| 설치 | 수동 | /pi install |
지원하는 최적화 타겟
pi-autoresearch는 LLM 훈련뿐 아니라 다양한 영역에 적용됩니다:
| 영역 | 메트릭 | 명령어 |
|---|---|---|
| 테스트 속도 | 초 ↓ | pnpm test |
| 번들 크기 | KB ↓ | pnpm build && du -sb dist |
| LLM 훈련 | val_bpb ↓ | uv run train.py |
| 빌드 속도 | 초 ↓ | pnpm build |
| Lighthouse | 점수 ↑ | lighthouse http://localhost:3000 |
실시간 피드백
pi-autoresearch의 가장 큰 장점은 실시간 가시성입니다:
- 상태 위젯: 에디터 상단에 항상 표시
🔬 autoresearch 12 runs 8 kept │ best: 42.3s - 대시보드:
/autoresearch명령으로 전체 결과 테이블 확인
세션 지속성
두 개의 파일이 세션을 무한히 유지합니다:
- autoresearch.jsonl: 모든 실험 결과 (메트릭, 상태, 커밋, 설명)
- autoresearch.md: 목표, 시도한 것, 막다른 골목, 주요 성과
새로운 에이전트가 이 두 파일만 읽으면 이전 세션을 정확히 이어갈 수 있습니다.
안전장치: autoresearch.checks.sh
최적화가 정확성을 해치지 않도록 확인 스크립트를 추가할 수 있습니다:
#!/bin/bash
set -euo pipefail
pnpm test --run
pnpm typecheck
이 스크립트는 벤치마크가 통과한 후 자동으로 실행됩니다. 실패하면 변경사항이 되돌려집니다.
설치
pi install https://github.com/davebcn87/pi-autoresearch
그다음 /skill:autoresearch-create를 실행하면 에이전트가 목표, 명령어, 메트릭, 파일 범위를 물어보고 즉시 루프를 시작합니다.
마치며: 연구의 미래
AutoResearch는 단순한 프로젝트가 아닙니다. 패러다임 시프트입니다.
전통적인 ML 연구: 인간이 가설을 세우고, 코드를 수정하고, 실험을 실행하고, 결과를 분석합니다.
AutoResearch: 인간이 program.md를 한 번 작성하면, AI가 자율적으로 루프를 돕니다. 인간은 아침에 결과만 확인하면 됩니다.
pi-autoresearch는 이 아이디어를 더 넓은 영역으로 확장했습니다. 테스트 속도, 번들 크기, 빌드 시간 — 모든 것이 자율 최적화의 대상이 되었습니다.
물론 이것은 작은 규모의 실험입니다. 하지만 Karpathy가 말했듯, 이것이 어떻게 시작되었는지에 대한 이야기입니다.
“10,205번째 세대의 코드베이스”가 되기까지 얼마나 걸릴까요?
🔗 관련 정보
- AutoResearch (원본): https://github.com/karpathy/autoresearch
- pi-autoresearch: https://github.com/davebcn87/pi-autoresearch
- 작성자: Andrej Karpathy (@karpathy)
- macOS 포크: miolini/autoresearch-macos