Skip to main content
공개 노트

karpathy/autoresearch: 단일 GPU에서 AI 에이전트가 자율로 LLM 실험을 반복하는 방법

Views 44약 4분
Summary

이 노트는 아래 출처를 AI 도구 클립을 활용하여 재구성한 것입니다. 상세한 정보는 원문 방문을 권장합니다.

원문 출처: https://github.com/karpathy/autoresearch

핵심 요약

autoresearch는 "5분짜리 훈련 실험"을 자동으로 반복하며 더 나은 모델을 찾게 하는, 단일 GPU용 미니 LLM 연구 자동화 레포입니다.

사람은 Python 코드를 직접 고치기보다 program.md로 에이전트를 "운영"하고, 에이전트는 train.py를 수정·학습·평가·채택/폐기까지 수행합니다.

비교 기준은 컴퓨팅 환경과 무관하게 공정하도록 고정 시간 예산(5분)과 val_bpb(낮을수록 좋음)로 설계됩니다.

autoresearch가 해결하려는 문제: "연구자의 반복 작업" 자동화

딥러닝 실험은 보통 "코드 수정 → 학습 → 결과 확인 → 되돌리기/개선"의 루프입니다.

autoresearch는 이 루프를 에이전트에게 넘겨, 밤새 작은 변경을 많이 시도하게 만들고 아침에 로그와 더 나아진 설정을 얻는 것을 목표로 합니다.

비유하면, 연구자가 직접 드라이브하지 않고 "자동 변속+내비"를 켜서 짧은 코스를 수십 번 주행하며 최적 주행법을 찾는 방식입니다.

핵심 메커니즘: 5분 고정 훈련 + 성능 비교 + 채택/폐기

실험은 항상 "벽시계 기준 5분"만 학습합니다(초기 준비/컴파일 시간은 제외).

이렇게 하면 모델 크기, 배치 크기, 아키텍처 등을 바꿔도 "같은 시간에 더 좋은 성능을 내는가?"라는 한 가지 질문으로 비교가 쉬워집니다.

평가 지표는 val_bpb(validation bits per byte)이며 낮을수록 좋고, 어휘 크기(vocab size)에 덜 휘둘려 구조 변경을 비교하기 좋게 선택되어 있습니다.

파일 역할 분담: 사람이 만지는 것 vs 에이전트가 만지는 것

이 레포는 "중요한 파일이 3개뿐"이라는 제약으로 실험 범위를 좁힙니다.

prepare.py는 데이터 다운로드, 토크나이저(BPE) 학습, 데이터로더/평가 유틸 등 기반을 담당하며 원칙적으로 수정하지 않습니다.

train.py는 모델(GPT), 옵티마이저(Muon + AdamW), 학습 루프가 들어 있고 에이전트가 마음껏 바꾸는 실험장입니다.

program.md는 에이전트에게 주는 운영 지침서로, 사람이 점점 개선해 "더 잘 실험하는 조직(에이전트 운영 코드)"로 진화시키는 곳입니다.

시작 방법(로컬에서 1회 실험까지)

필수는 단일 NVIDIA GPU, Python 3.10+, 그리고 uv입니다.

아래 순서로 "데이터 준비 1회 + 5분 학습 1회"를 실행해 파이프라인이 도는지 확인합니다.

# 1) uv 설치(이미 있으면 생략)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 2) 의존성 설치
uv sync

# 3) 데이터 다운로드 + 토크나이저 학습(1회)
uv run prepare.py

# 4) 5분짜리 단일 실험 실행
uv run train.py

이후에는 에이전트를 레포에 연결하고, program.md를 읽게 한 뒤 새 실험을 시작하라고 시키는 흐름으로 넘어갑니다.

에이전트 운영 방식: "program.md"를 스킬처럼 다루기

사람이 코드를 일일이 만지는 대신, 에이전트가 어떤 목표로 어떤 실험을 어떤 순서로 할지 "업무 지시"를 program.md에 녹입니다.

즉, program.md는 프롬프트 한 번이 아니라 지속적으로 다듬는 실행 매뉴얼에 가깝고, 좋은 program.md일수록 같은 밤을 자도 더 유의미한 실험을 모읍니다.

에이전트 실행은 도구에 따라 다르지만, 레포에서 program.md 기반으로 셋업부터 시작하라고 지시하는 식으로 진행합니다.

Hi have a look at program.md and let's kick off a new experiment! let's do the setup first.

설계 철학: 단순함으로 실험 속도를 얻기

이 프로젝트는 "한 GPU, 한 지표, 한 파일 수정"으로 복잡도를 잘라냅니다.

장점은 변경 범위가 작아 리뷰가 쉽고, 5분 고정 예산 덕에 시간 대비 최적 구성이 무엇인지 빠르게 수렴할 가능성이 커진다는 점입니다.

단점은 하드웨어가 달라지면 결과를 서로 직접 비교하기 어렵다는 점이고, 멀티 GPU/분산 같은 확장은 의도적으로 제외되어 있습니다.

작은 컴퓨터로 돌릴 때의 튜닝 방향(포크/저사양)

H100 같은 고성능 GPU가 아니라면 "데이터·시퀀스 길이·평가량·모델 깊이"를 함께 줄여야 5분 실험이 의미를 갖습니다.

예를 들어 엔트로피가 낮은 데이터(예: TinyStories)를 쓰면 작은 모델로도 그럴듯한 성능 변화가 관찰되고, MAX_SEQ_LEN, EVAL_TOKENS, DEPTH를 줄이면 학습·평가 비용이 급격히 내려갑니다.

또한 대안 토크나이저 전략(더 작은 vocab 또는 바이트 레벨)이나, 비효율적일 수 있는 어텐션 패턴을 단순화하는 선택이 저사양에서 특히 중요해집니다.

플랫폼 지원과 포크 생태계

본판은 단일 NVIDIA GPU 전제를 강하게 둡니다(코드 비대화를 피하려는 선택).

대신 MacOS, Windows RTX, AMD 등으로 옮긴 포크들이 소개되어 있어, 자신의 환경에 맞는 구현을 참고하거나 그쪽으로 시작하는 편이 빠를 수 있습니다.

인사이트

autoresearch의 핵심은 "모델을 직접 튜닝"이 아니라 "실험을 만들어내는 시스템(에이전트+규칙)을 튜닝"하는 관점 전환입니다.

처음에는 train.py의 하이퍼파라미터 몇 개만 바꾸는 실험부터 시작하고, 다음 단계로는 program.md에 "무엇을 바꾸고, 무엇을 고정하고, 어떤 기준으로 되돌릴지"를 명확히 적어 실험 품질을 끌어올리는 것이 효율적입니다.

5분 고정 예산은 강력한 제약이므로, 목표를 "절대 성능"이 아니라 "내 장비에서 5분 동안 가장 많이 좋아지는 변화"로 잡아야 성과가 안정적으로 누적됩니다.

출처 및 참고 : karpathy/autoresearch: AI agents running research on single-GPU nanochat training automatically

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기