autoresearch program.md 실습: val_bpb 실험을 keep/discard로 관리하기 | DAKER 커뮤니티

DAKER 학습 autoresearch program.md 연구 운영 규칙 대표 카드

program.md를 연구 운영 규칙으로 보고 train.py 실험 범위를 정리한 NotebookLM 카드.

autoresearch program.md는 에이전트에게 “어떤 파일을 읽고, 무엇을 바꾸고, 어떤 수치로 keep/discard를 판단할지”를 알려 주는 연구 운영 문서입니다. 2026년 7월 1일 기준 공식 program.md는 train.py만 수정하고 prepare.py와 evaluate_bpb는 고정하라는 경계를 분명히 둡니다.

val_bpb 실험 관리란, 5분 실행 뒤 validation bits per byte가 낮아졌는지와 코드 복잡도 비용을 함께 보고 keep, discard, crash를 기록하는 절차를 의미합니다.

오늘 배울 것은 무엇인가요?

한 줄 요약: Karpathy autoresearch 기준선 글에서 첫 baseline을 남겼다면, 이제 program.md 안에 “유지할 실험”과 “버릴 실험”의 기준을 써야 합니다.

program.md는 왜 단순 프롬프트보다 중요하나요?

자율 실험은 에이전트가 오래 돌수록 작은 실수를 크게 반복할 수 있습니다. program.md는 허용 파일, 금지 파일, metric, timeout, logging format, simplification 기준을 한곳에 적어 실험을 비교 가능한 형태로 묶습니다.

이 관점은 nanochat 전체 파이프라인 글의 실행 체크리스트와 이어집니다. 실험 루프 자체는 nanoGPT 학습 루프 글의 checkpoint 기록 습관과도 닮아 있습니다.

핵심 개념은 keep, discard, crash를 숫자와 복잡도로 나누는 것입니다

상태

판단 기준

기록 방법

keep

val_bpb가 낮아지고 복잡도 비용이 납득 가능함

commit 유지, status keep

discard

val_bpb가 같거나 나빠짐 또는 복잡도 비용이 큼

시작점으로 reset, status discard

crash

OOM이나 버그로 metric을 얻지 못함

val_bpb 0.000000, memory 0.0

baseline

첫 실행 비교 기준

가장 먼저 results.tsv에 기록

DAKER 학습 val_bpb keep discard crash 비교표 카드

val_bpb 개선 여부와 복잡도 비용으로 keep, discard, crash를 나누는 NotebookLM 비교 카드.

따라 해볼 실습은 어떤 순서인가요?

  1. program.md 상단에 오늘 run tag와 branch 이름을 적습니다.

  2. README.md, prepare.py, train.py를 읽는 단계를 체크박스로 둡니다.

  3. “수정 가능: train.py만”과 “수정 금지: prepare.py, dependencies, evaluation harness”를 분리합니다.

  4. results.tsv header를 commit, val_bpb, memory_gb, status, description 순서로 만듭니다.

  5. run.log에서 grep으로 val_bpb와 peak_vram_mb를 뽑는 명령을 적습니다.

  6. 개선 폭이 작을 때 complexity cost를 어떻게 볼지 한 문장 규칙으로 남깁니다.

자주 막히는 지점은 무엇인가요?

다음 학습 연결은 무엇인가요?

GPT Tokenizer 실습에서 입력 단위를, microgpt 200라인 글에서 알고리즘 지도를, nanochat 파이프라인 지도에서 전체 실행 단계를 연결해 보면 program.md에 어떤 context를 더 넣어야 하는지 보입니다.

공식 출처는 어디까지 확인했나요?

자주 묻는 질문

program.md에는 아이디어 목록만 쓰면 되나요?

아닙니다. 아이디어보다 먼저 수정 가능 파일, 금지 파일, metric, logging, timeout, keep/discard 기준을 써야 합니다.

작은 val_bpb 개선은 항상 keep인가요?

항상 그렇지는 않습니다. 공식 program.md는 단순성 기준을 강조하므로, 작은 개선이 큰 복잡도를 만들면 discard가 더 나을 수 있습니다.

crash는 실패라서 기록하지 않아도 되나요?

기록해야 합니다. crash도 다음 아이디어를 줄이는 증거입니다. 공식 예시는 val_bpb 0.000000과 memory 0.0으로 남깁니다.

왜 prepare.py는 고정해야 하나요?

prepare.py에는 data loading, tokenizer, fixed evaluation이 들어 있습니다. 이것을 바꾸면 실험끼리 공정하게 비교하기 어렵습니다.

여러 에이전트를 바로 붙여도 되나요?

처음에는 한 에이전트와 한 results.tsv로 기준을 잡는 편이 낫습니다. 비교 기준이 안정된 뒤에 더 많은 에이전트를 논의하세요.

오늘 program.md에는 “좋은 아이디어”보다 “버릴 실험을 버리는 규칙”을 먼저 써 보세요.

Redirecting to autoresearch program.md 실습: val_bpb 실험을 keep/discard로 관리하기 | DAKER 커뮤니티...