핵심 요약
autoresearch는 AI 에이전트가 train.py를 스스로 바꾸고, 5분짜리 학습 실험을 반복하며 더 나은 LLM 설정을 찾게 하는 프로젝트다.
사람은 주로 코드 대신 program.md로 연구 방향과 규칙을 설계하고, 에이전트는 그 틀 안에서 실험을 수행한다.
핵심 철학은 단순함이다. 한 대의 GPU, 한 개의 수정 대상 파일, 하나의 비교 지표로 자동 연구를 굴린다.
이 프로젝트가 하려는 일
이 저장소의 목표는 "작지만 실제로 돌아가는 LLM 학습 환경"을 AI 에이전트에게 주고, 밤새 스스로 실험하게 만드는 것이다.
작동 방식은 연구 인턴을 둔 것과 비슷하다. 에이전트가 코드를 조금 바꾸고, 짧게 학습해 보고, 성능이 좋아졌는지 확인한 뒤, 괜찮으면 남기고 아니면 버린다.
중요한 점은 사람이 직접 train.py를 만지며 실험하는 전통적인 방식에서 벗어난다는 것이다. 사람은 연구 조직의 규칙을 쓰고, 에이전트는 그 규칙에 따라 반복 실행한다.
세 파일로 이해하는 구조
이 프로젝트는 사실상 세 파일로 요약된다.
prepare.py는 데이터 다운로드, 토크나이저 학습, 평가와 데이터로더 같은 기반 작업을 맡는다. 고정된 토대에 가깝고 수정 대상이 아니다.
train.py는 실제 연구 무대다. 모델 구조, 하이퍼파라미터, 옵티마이저, 배치 크기 같은 핵심 요소가 여기 들어 있으며, 에이전트는 이 파일을 바꾸며 실험한다.
program.md는 사람의 역할이 담긴 문서다. 에이전트에게 어떤 방식으로 실험할지, 무엇을 우선시할지 알려주는 운영 매뉴얼에 가깝다.
사람과 에이전트의 역할 분담
이 프로젝트에서 사람은 직접 모델을 조정하는 연구자가 아니라, 연구 시스템을 설계하는 감독자에 가깝다.
사람이 하는 일은 program.md를 다듬는 것이다. 예를 들어 "안정성을 우선할지", "속도를 우선할지", "어떤 실험은 피할지" 같은 운영 원칙을 정한다.
에이전트는 그 지시를 읽고 train.py를 수정한다. 즉, 코드를 짜는 주체는 점점 에이전트가 되고, 사람은 실험 문화를 설계하는 쪽으로 이동한다.
왜 5분 고정 실험이 중요한가
이 프로젝트의 가장 중요한 설계는 모든 학습이 5분으로 고정된다는 점이다.
이렇게 하면 모델이 커지든 작아지든, 배치 크기가 달라지든, 각 실험은 같은 시간 예산 안에서 비교된다. 그래서 "누가 더 오래 학습했는가"가 아니라 "같은 시간 안에 누가 더 좋은 결과를 냈는가"를 볼 수 있다.
이 방식은 마치 같은 시간 동안 여러 자동차를 시험 주행해 보는 것과 비슷하다. 연료를 더 많이 쓴 차가 아니라, 제한된 조건에서 가장 효율적으로 달린 차를 찾는 셈이다.
성능 판단 기준: val_bpb
이 프로젝트는 성능을 val_bpb로 비교한다.
이는 validation bits per byte의 줄임말로, 낮을수록 좋다. 핵심 장점은 어휘 크기 차이에 덜 흔들린다는 점이다.
그래서 토크나이저나 모델 구조를 바꿔도 비교 기준이 상대적으로 공정하다. 단순한 정확도 수치보다, 다양한 실험을 한 테이블 위에 올려놓기 좋은 척도라고 보면 된다.
빠른 시작 방법
실행 환경은 Python 3.10+, uv, 그리고 NVIDIA GPU 1대다. 문서 기준으로는 H100에서 테스트되었다.
기본 흐름은 의존성을 설치하고, 데이터를 준비한 뒤, 먼저 사람이 직접 한 번 학습을 돌려보는 것이다.
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync
uv run prepare.py
uv run train.py이 단계가 잘 되면, 그다음부터는 에이전트를 저장소에 연결해 자율 실험 모드로 넘길 수 있다.
에이전트를 붙여서 연구 자동화하기
실제로는 Claude, Codex 같은 코딩 에이전트를 이 저장소에서 실행하게 하고, 권한은 제한한 채 program.md를 읽게 하면 된다.
예시 프롬프트는 아주 단순하다.
Hi have a look at program.md and let's kick off a new experiment! let's do the setup first.핵심은 복잡한 자동화 시스템보다, 에이전트가 참고할 "짧고 명확한 운영 문서"가 더 중요하다는 점이다. program.md는 일종의 초경량 연구 스킬셋이다.
이 설계가 주는 장점과 한계
장점은 단순성과 비교 가능성이다.
수정 대상이 train.py 하나뿐이라 변경 내역을 추적하기 쉽고, 5분 고정 예산 덕분에 실험 결과를 빠르게 쌓을 수 있다. 문서에서는 시간당 약 12개, 밤사이 약 100개의 실험도 기대할 수 있다고 본다.
하지만 결과는 실행한 하드웨어에 강하게 묶인다. 즉, 내 GPU에서 좋은 설정이 다른 사람 GPU에서도 최고라는 보장은 없다. 이 프로젝트는 "보편 최적해"보다 "내 환경에서의 최적해"를 찾는 데 가깝다.
지원 플랫폼과 작은 컴퓨터용 조정법
현재 기본 구현은 NVIDIA GPU 1대를 전제로 한다.
다만 더 작은 환경에서도 아이디어 자체는 살릴 수 있다. 문서에서는 작은 컴퓨터용으로 몇 가지 조정 방향을 제안한다.
예를 들어 더 쉬운 데이터셋인 TinyStories를 쓰고, vocab_size를 줄이고, MAX_SEQ_LEN과 EVAL_TOKENS를 낮추고, 모델 깊이 DEPTH를 줄이는 식이다.
또한 작은 환경에서는 복잡한 attention 패턴보다 단순한 "L" 패턴이 유리할 수 있고, TOTAL_BATCH_SIZE도 줄여야 한다. 요점은 "같은 구조를 억지로 돌리는 것"이 아니라 "환경에 맞는 더 작은 문제로 바꾸는 것"이다.
생태계와 확장 가능성
이미 macOS, Windows, AMD용 포크들이 소개되어 있다.
이는 이 프로젝트가 완성된 범용 프레임워크라기보다, 실험 문화와 아이디어를 공유하는 출발점이라는 뜻이다.
즉, 본 저장소는 정답이라기보다 기준점이다. 각자 하드웨어와 목표에 맞게 갈라져 나가며 발전하는 구조라고 이해하면 좋다.
인사이트
이 프로젝트의 진짜 핵심은 "AI가 연구를 한다"보다 "사람이 연구 코드를 직접 쓰는 대신, 연구 규칙을 설계한다"는 발상의 전환에 있다.
처음 볼 때는 train.py 자동 수정이 핵심처럼 보이지만, 장기적으로 더 중요한 자산은 program.md 같은 운영 규칙일 가능성이 크다.
직접 활용하려면 먼저 완벽한 자동화보다 작은 루프부터 만드는 것이 좋다. 5분 안에 돌고, 결과를 비교할 수 있고, 실패를 빨리 버릴 수 있는 구조를 먼저 만든 뒤, 그 위에 에이전트를 올리는 것이 가장 현실적이다.
출처 및 참고 : karpathy/autoresearch: AI agents running research on single-GPU nanochat training automatically
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.