본문으로 건너뛰기

© 2026 Molayo

GH Trending릴리즈2026. 05. 20. 19:41

karpathy/autoresearch

요약

Andrej Karpathy의 autoresearch 리포지토리는 자율적인 AI 에이전트 스웜이 모델 아키텍처, 옵티마이저, 하이퍼파라미터 등을 스스로 수정하며 연구를 수행하는 실험적 프레임워크를 소개합니다. 에이전트는 고정된 5분이라는 시간 예산 내에서 실험을 반복하며, val_bpb 지표를 통해 최적의 설정을 찾아내는 자율 연구 프로세스를 구현합니다.

핵심 포인트

  • 에이전트가 train.py 파일을 직접 수정하며 모델 구조와 학습 루프를 최적화함
  • 고정된 5분 시간 예산을 사용하여 컴퓨팅 자원 환경에 구애받지 않는 공정한 실험 비교 가능
  • val_bpb(validation bits per byte)를 핵심 평가지표로 사용하여 아키텍처 변경을 공정하게 측정
  • 인간은 program.md를 통해 에이전트의 지침을 관리하며 실험의 방향성을 제어함

*어느 날, 최첨단 AI 연구는 먹고, 자고, 다른 즐거움을 누리고, 가끔 "그룹 미팅"이라는 의식을 통해 음파 상호 연결(sound wave interconnect)을 사용하여 동기화하는 육체적 컴퓨터(meat computers)들에 의해 수행되곤 했습니다. 그 시대는 이미 오래전에 지나갔습니다. 이제 연구는 하늘 위 컴퓨팅 클러스터 메가스트럭처(compute cluster megastructures) 전반에서 실행되는 자율적인 AI 에이전트 스웜(autonomous swarms of AI agents)의 영역입니다. 에이전트들은 우리가 현재 코드베이스의 10,205번째 세대에 있다고 주장하지만

— 에이전트가 수정하는 단일 파일. 전체 GPT 모델, 옵티마이저 (Muon + AdamW), 그리고 트레이닝 루프 (training loop)를 포함합니다. 아키텍처 (architecture), 하이퍼파라미터 (hyperparameters), 옵티마이저 (optimizer), 배치 크기 (batch size) 등 모든 것이 실험 대상입니다. train.py

이 파일은 에이전트에 의해 수정되고 반복됩니다.

— 한 에이전트를 위한 기본 지침입니다. 에이전트를 이 파일로 지정하고 실행하십시오. program.md

이 파일은 인간에 의해 수정되고 반복됩니다.

설계상, 트레이닝은 컴퓨팅 자원의 세부 사항과 관계없이 고정된 5분 시간 예산 (시작/컴파일 시간을 제외한 실제 경과 시간) 동안 실행됩니다. 평가지표는 val_bpb (validation bits per byte)입니다. 값이 낮을수록 좋으며, 어휘 사전 크기 (vocab-size)에 독립적이므로 아키텍처 변경 사항을 공정하게 비교할 수 있습니다.

신경망 (neural networks)이 처음이라면, 이 "초보자 가이드 (Dummy's Guide)"가 훨씬 더 많은 맥락을 파악하는 데 큰 도움이 될 것입니다.

요구 사항: 단일 NVIDIA GPU (H100에서 테스트됨), Python 3.10 이상, uv.

# 1. uv 프로젝트 매니저 설치 (아직 설치되어 있지 않은 경우)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 2. 의존성 설치
...

위 명령어가 모두 정상적으로 작동한다면, 설정이 완료된 것이며 자율 연구 모드로 진입할 수 있습니다.

이 리포지토리(repo)에서 Claude/Codex 또는 원하는 무엇이든 실행하고 (모든 권한은 비활성화한 상태로), 다음과 같이 프롬프트를 입력하면 됩니다:

안녕, program.md를 살펴보고 새로운 실험을 시작해보자! 먼저 설정을 진행하자.

program.md 파일은 본질적으로 매우 가벼운 "기술 (skill)"입니다.

prepare.py — 상수, 데이터 준비 + 런타임 유틸리티 (수정 금지)
train.py — 모델, 옵티마이저, 트레이닝 루프 (에이전트가 이를 수정함)
program.md — 에이전트 지침
...

수정할 단일 파일. 에이전트는 오직 train.py만 건드립니다.

이는 작업 범위를 관리 가능한 수준으로 유지하고 차이점(diffs)을 검토할 수 있게 해줍니다. 고정된 시간 예산 (Fixed time budget). 훈련은 사용자의 특정 플랫폼에 관계없이 항상 정확히 5분 동안 실행됩니다. 이는 시간당 약 12회의 실험, 수면 시간 동안 약 100회의 실험을 기대할 수 있음을 의미합니다. 이 설계 결정에는 두 가지 장점이 있습니다. 첫째, 에이전트가 무엇을 변경하든(모델 크기, 배치 크기, 아키텍처 등) 실험을 직접적으로 비교할 수 있게 합니다. 둘째, autoresearch가 해당 시간 예산 내에서 사용자의 플랫폼에 가장 최적화된 모델을 찾아낸다는 것을 의미합니다. 단점은 사용자의 실행 결과(및 결과물)가 다른 컴퓨팅 플랫폼에서 실행하는 다른 사람들의 결과와 비교할 수 없게 된다는 점입니다. 독립적 (Self-contained). PyTorch와 몇 개의 작은 패키지 외에는 외부 의존성이 없습니다. 분산 학습(distributed training)도, 복잡한 설정(configs)도 없습니다. GPU 하나, 파일 하나, 지표(metric) 하나면 충분합니다.

이 코드는 현재 단일 NVIDIA GPU를 보유하고 있어야 합니다. 원칙적으로 CPU, MPS 및 기타 플랫폼을 지원하는 것이 충분히 가능하지만, 이는 코드의 비대화를 초래할 수 있습니다. 제가 지금 당장 이 작업을 개인적으로 맡고 싶은지는 100% 확신할 수 없습니다. 사람들은 더 넓은 플랫폼 지원을 제공하고 다양한 솔루션(예: Flash Attention 3 커널 폴백 구현, 범용 디바이스 지원, 자동 감지 등)을 보여주는 전체/부모 nanochat 저장소를 참조(또는 에이전트가 참조)할 수 있습니다. 다른 플랫폼을 위한 포크(fork)나 토론(discussion)을 자유롭게 생성해 주세요. 새로운 주목할 만한 포크 섹션 등을 README에 만들어 기꺼이 링크를 걸어드리겠습니다.

H100보다 훨씬 작은 컴퓨팅 플랫폼에서 autoresearch를 만져보는 것에 많은 관심이 있는 것 같으므로, 몇 마디 덧붙입니다. 만약 더 작은 컴퓨터(Macbook 등)에서 autoresearch를 실행해 보려 한다면, 아래의 포크 중 하나를 추천합니다. 이와 더불어, 포크를 꿈꾸는 분들을 위해 훨씬 작은 모델에 맞춰 기본값(defaults)을 조정하는 방법에 대한 몇 가지 권장 사항을 소개합니다:

  • 어느 정도 괜찮은 결과를 얻으려면 엔트로피 (entropy)가 훨씬 낮은 데이터셋을 사용하는 것이 좋습니다. 예를 들어, 이 TinyStories 데이터셋을 사용해 보세요. 이는 GPT-4로 생성된 짧은 이야기들입니다. 데이터의 범위가 훨씬 좁기 때문에, (학습 후 샘플링을 시도할 경우) 훨씬 더 작은 모델로도 합리적인 결과를 볼 수 있을 것입니다.
  • vocab_size를 줄이는 실험을 해볼 수 있습니다. 예를 들어, 8192에서 4096, 2048, 1024로 줄이거나, UTF-8 인코딩 후의 256개 바이트를 사용하는 단순 바이트 수준 토크나이저 (byte-level tokenizer)를 사용할 수도 있습니다.
  • prepare.py에서, 컴퓨터 성능에 따라 MAX_SEQ_LEN을 256 등으로 훨씬 더 낮추고 싶을 것입니다. MAX_SEQ_LEN을 낮춤에 따라, 이를 보완하기 위해 train.py에서 DEVICE_BATCH_SIZE를 약간 늘리는 실험을 해보고 싶을 수도 있습니다. 순전파/역전파 (fwd/bwd) 패스당 토큰 수는 이 두 값의 곱입니다.
  • 또한 prepare.py에서, 검증 손실 (validation loss)이 훨씬 적은 데이터로 평가되도록 EVAL_TOKENS를 줄이고 싶을 것입니다.
  • train.py에서 모델 복잡도를 조절하는 주요 단일 노브 (knob)는 DEPTH (여기서는 기본값 8)입니다. 많은 변수가 단순히 이 값의 함수이므로, 예를 들어 4 정도로 낮추어 보세요.
  • 아마도 WINDOW_PATTERN은 단순히 "L"을 사용하는 것이 좋을 것입니다. "SSSL"은 교차 밴드 어텐션 패턴 (alternating banded attention pattern)을 사용하는데, 이는 여러분에게 매우 비효율적일 수 있습니다. 한번 시도해 보세요.
  • TOTAL_BATCH_SIZE를 훨씬 많이 줄여야 하겠지만, 2**14 (~16K) 정도까지라도 2의 거듭제곱 형태를 유지하세요. 정확히 말하기는 어렵습니다.

이것들이 조절해 볼 만한 합리적인 하이퍼파라미터 (hyperparameters)라고 생각합니다. 여러분이 좋아하는 코딩 에이전트에게 도움을 요청하고, 이 가이드와 전체 소스 코드를 복사하여 붙여넣으세요.

  • miolini/autoresearch-macos (MacOS)
  • trevin-creator/autoresearch-mlx (MacOS)
  • jsegov/autoresearch-win-rtx (Windows)
  • andyluo7/autoresearch (AMD)

MIT

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub Trending Python (daily)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
1

댓글

0