-
nanochat LLM 학습 코어를 단일 GPU·단일 파일 약 630줄로 압축한 자기완결형 자율 연구 프레임워크로 AI 에이전트가 밤새 자율적으로 LLM 학습 실험을 반복
- 인간은
프롬프트를 수정하고, AI 에이전트는 학습 코드를 수정 → 5분 고정 시간 예산으로 학습 → 결과 비교 → 유지 또는 폐기의 루프를 반복
- 에이전트는 git 피처 브랜치에서 자율 루프로 동작하며, 신경망 아키텍처·옵티마이저·하이퍼파라미터 등의 더 낮은 validation loss를 달성할 때마다 학습 스크립트에 git 커밋을 축적
- 목표는 인간의 개입 없이 가장 빠른 연구 진전을 만들어내는 에이전트를 설계하는 것
프로젝트 개요
-
nanochat의 단순화된 단일 GPU 구현을 기반으로, AI 에이전트가 학습 코드를 자율 수정·실험하는 구조
- 에이전트는 코드 수정 → 5분 학습 → 결과 확인 → 유지/폐기 루프를 반복하며, 사용자는 아침에 실험 로그와 개선된 모델을 확인
- Claude, Codex 등 원하는 에이전트를 이 레포에 연결하고,
program.md를 읽게 한 뒤 실험을 시작하는 방식
핵심 파일 구조 (3개만 중요)
-
prepare.py - 고정 상수, 데이터 준비(학습 데이터 다운로드, BPE 토크나이저 학습), 런타임 유틸리티(데이터로더, 평가) 포함; 수정 대상 아님
-
train.py - 에이전트가 수정하는 단일 파일; GPT 모델 전체, 옵티마이저(Muon + AdamW), 학습 루프 포함; 아키텍처·하이퍼파라미터·옵티마이저·배치 사이즈 등 모든 요소 수정 가능
-
program.md - 에이전트에 대한 기본 지침 파일; 인간이 편집하며, 에이전트의 자율 연구 방향을 설정하는 경량 스킬 역할
설계 원칙
-
단일 파일 수정: 에이전트는
train.py만 수정하며, 변경 범위를 관리 가능하게 유지하고 diff 검토가 용이
-
고정 시간 예산: 플랫폼에 무관하게 항상 정확히 5분 실행 → 시간당 약 12회, 수면 중 약 100회 실험 가능
- 모델 크기, 배치 사이즈, 아키텍처 등 변경 사항과 무관하게 실험 간 직접 비교 가능
- 단점: 동일 플랫폼이 아닌 다른 사람의 실행 결과와는 비교 불가
-
자기완결성: PyTorch 및 소수 패키지 외 외부 의존성 없음; 분산 학습 없음; 복잡한 설정 없음
요구 사항 및 실행
-
요구 사항: 단일 NVIDIA GPU(H100 테스트), Python 3.10+,
uv 패키지 매니저
- 현재 NVIDIA GPU 전용이며, CPU/MPS 등 다른 플랫폼 지원은 코드 비대화 우려로 현재 포함하지 않음
- 더 넓은 플랫폼 지원이 필요한 경우 상위 nanochat 레포 참조 권장; macOS 포크(
miolini/autoresearch-macos)가 이미 존재
- 에이전트 실행 시 레포 내에서 Claude/Codex 등을 실행하고 모든 권한을 비활성화한 뒤,
program.md를 읽고 실험을 시작하도록 프롬프트
기본 program.md 설계 의도
- 기본
program.md는 의도적으로 최소한의 베이스라인으로 유지
- 시간이 지남에 따라 반복 개선하며 가장 빠른 연구 진전을 달성하는 "연구 조직 코드"를 찾아가는 방식으로 활용 가능
- 에이전트를 추가하거나 지침을 구체화하는 확장도 명확히 가능한 구조