Autoresearch - Karpathy의 자동 연구 프레임워크 | GeekNews
Blog

Autoresearch - Karpathy의 자동 연구 프레임워크 | GeekNews

neo
2026.03.08
·News·by 최세영
#AI Agent#AutoML#LLM#PyTorch#Research Framework

핵심 포인트

  • 1Karpathy의 Autoresearch는 nanochat LLM 학습 코어를 단일 GPU, 단일 파일로 압축한 자기완결형 자율 연구 프레임워크입니다.
  • 2이 프레임워크는 AI 에이전트가 `train.py` 학습 코드를 자율적으로 수정하고, 고정된 5분 예산으로 실험을 반복하며 `validation loss` 개선 시 변경 사항을 축적합니다.
  • 3목표는 인간 개입 없이 가장 빠른 연구 진전을 이루기 위해 신경망 아키텍처, 옵티마이저, 하이퍼파라미터 등을 자율적으로 탐색하고 개선하는 것입니다.

Autoresearch는 Andrej Karpathy가 개발한 자율 연구 프레임워크로, AI 에이전트가 대규모 언어 모델(LLM) 학습 실험을 반복하며 인간의 개입 없이 연구 진전을 달성하는 것을 목표로 합니다. 이 프레임워크는 nanochat LLM의 단일 GPU, 단일 파일 구현(630\approx 630 라인)을 기반으로 하며, 자기완결성(self-contained)을 특징으로 합니다.

핵심 방법론은 다음과 같은 자율 루프를 통해 작동합니다:
인간 연구자는 program.md\text{program.md} 파일을 수정하여 에이전트에게 연구 방향에 대한 기본 지침을 제공합니다. 이 지침은 에이전트의 자율 연구 방향을 설정하는 경량 스킬 역할을 합니다. 에이전트(예: Claude, Codex 등)는 이 program.md\text{program.md} 파일을 읽고, train.py\text{train.py}라는 단일 학습 코드를 자율적으로 수정합니다. train.py\text{train.py} 파일은 GPT 모델의 전체 아키텍처, 옵티마이저(Muon + AdamW), 학습 루프 등을 포함하며, 에이전트는 신경망 아키텍처, 옵티마이저, 하이퍼파라미터(예: learning rate, batch size 등)와 같은 모든 학습 관련 요소를 수정할 수 있습니다.

에이전트가 train.py\text{train.py}를 수정한 후, 프레임워크는 고정된 시간 예산인 5분 동안 수정된 코드를 실행하여 LLM 학습을 수행합니다. 이 고정 시간 예산은 플랫폼에 독립적으로 항상 동일한 실행 시간을 보장하며, 서로 다른 실험 결과를 직접적으로 비교할 수 있게 합니다. 학습이 완료되면, 에이전트는 결과(주로 validation loss)를 비교하고 평가합니다. 만약 현재 실험의 validation loss가 이전의 최저값보다 낮아 연구 진전을 달성했다고 판단되면, 에이전트는 train.py\text{train.py} 학습 스크립트에 대한 변경 사항을 git 커밋으로 축적합니다. 이는 git 피처 브랜치(feature branch) 내에서 이루어지며, 에이전트는 더 나은 성능을 달성할 때마다 지속적으로 코드 변경 이력을 기록합니다. 반대로, 성능 개선이 없거나 결과가 좋지 않으면 해당 변경 사항은 폐기됩니다. 이 "코드 수정 → 5분 학습 → 결과 확인 → 유지/폐기" 루프를 반복하면서 에이전트는 밤새 수십(시간당 약 12회, 수면 중 약 100회)에서 수백 번의 실험을 자율적으로 수행할 수 있습니다. 사용자는 아침에 실험 로그와 개선된 모델을 확인할 수 있습니다.

프레임워크의 설계 원칙은 다음과 같습니다:

  1. 단일 파일 수정: 에이전트는 오직 train.py\text{train.py} 파일만 수정합니다. 이는 변경 범위 관리를 용이하게 하고, 변경 내용(diff) 검토를 간소화합니다.
  2. 고정 시간 예산: 모든 실험은 정확히 5분 동안 실행됩니다. 이는 모델 크기, 배치 사이즈, 아키텍처 등 변경 사항과 무관하게 실험 간의 직접 비교를 가능하게 합니다.
  3. 자기완결성: PyTorch 및 소수의 필수 패키지를 제외하고는 외부 의존성이 없습니다. 분산 학습을 포함하지 않으며, 복잡한 설정 없이 단일 GPU 환경에서 동작하도록 설계되었습니다.

요구 사항으로는 단일 NVIDIA GPU(H100에서 테스트됨), Python 3.10+, 그리고 uv 패키지 매니저가 필요합니다. 현재는 NVIDIA GPU에 특화되어 있으며, 코드 비대화 우려로 인해 CPU나 MPS와 같은 다른 플랫폼은 직접 지원하지 않습니다. 에이전트 실행 시, 지정된 에이전트(예: Claude/Codex)를 레포지토리 내에서 실행하고, 모든 권한을 비활성화한 다음, program.md\text{program.md}를 읽고 실험을 시작하도록 프롬프트해야 합니다. prepare.py\text{prepare.py}는 고정 상수, 데이터 준비(학습 데이터 다운로드, BPE 토크나이저 학습), 런타임 유틸리티를 포함하며, 에이전트가 수정하는 대상이 아닙니다.