왜 지금 '에이전트 주도 연구'인가
강화학습(RL) 연구의 진짜 병목은 아이디어가 아니라 실험 인프라예요. 저장소를 클론하고, 의존성을 맞추고, GPU 메모리와 체크포인트 경로를 정리하고, 베이스라인을 재는 데만 며칠이 날아가죠. 정작 중요한 지표는 인프라가 완성된 다음에야 보이기 시작합니다.
여기서 등장하는 개념이 autoresearch입니다. 사람이 목표와 예산만 던져주면, 코딩 에이전트가 가설을 세우고 실제 코드베이스를 수정·실행하면서 지표를 개선하는 아이디어만 남기는 방식이에요. 이 글에서는 NVIDIA NeMo RL과 NeMo Gym, 그리고 Codex(GPT 5.5)를 조합해 실제로 돌아가는 워크플로우를 단계별로 정리합니다.
핵심은 "연구자를 루프에서 빼는 것"이 아니라, 반복적인 셋업과 실험 실행을 에이전트에게 위임하는 거예요. 목표 설정, 마일스톤 검토, 전략 조정, 최종 판단은 여전히 사람 몫입니다.

실전 워크플로우: 10단계로 따라하기
사전 준비물
- VS Code + Codex 플러그인(GPT 5.5)
- NVIDIA L40S 48GB GPU가 붙은 Brev 인스턴스
- NeMo RL 저장소(
/home/ubuntu/RL에 사전 클론됨) - Hugging Face / W&B 크레덴셜(인증 필요 시)
Step 1~3: 인스턴스 띄우고 Codex 연결
Brev 런처블로 인스턴스를 올리고, VS Code의 Remote SSH로 접속합니다. Codex 확장을 설치한 뒤 Auto-Review 모드로 시작하는 걸 권장해요. 샌드박스 실행은 허용하되, 권한 상승이 필요한 명령은 리뷰를 거치게 됩니다.
# .env 예시 (커밋 금지!)
export WANDB_API_KEY=wandb_v1xxx
export HF_TOKEN=hf_mqyyy
Step 4~5: 스모크 테스트로 스택 검증
여기서 중요한 포인트는 /goal 명령으로 지속 목표를 부여한다는 점이에요. Codex는 이 목표를 유지하면서 저장소 초기화, 서브모듈 클론, 모델 다운로드, 캐시 경로 라우팅까지 스스로 처리합니다.
/goal Use the nemo-rl-brev-etiquette skill under ./skills, set up NeMoRL to
do a smoke test RL training of the Qwen3-VL-2B-Instruct model
이 단계에서 Codex가 하는 일을 정리하면:
- Brev 운영 스킬 로드
- NeMo RL 서브모듈 초기화
- Qwen3-VL 모델을 Hugging Face에서 다운로드
- 대용량 자산(HF, Torch, Triton, uv, Ray, 로그, 워커 캐시)을
/ephemeral볼륨으로 라우팅 - 의존성/설정 이슈 해결하며 학습 스텝 1회 완료
소요 시간은 대략 40분~1시간. 목표는 "최적화된 셋업"이 아니라 엔드투엔드 경로 검증이라는 점을 기억하세요.
Step 6: 세션 메모리로 상태 영속화
긴 세션은 컨텍스트 압축(compaction)을 여러 번 거치면서 목표를 잊어버리기 쉬워요. 그래서 session-memory 스킬로 목표·환경 가정·로드된 스킬·중요 경로·최근 명령 결과를 디스크에 남깁니다.
Use the nemo-rl-session-memory skill under ./skills, persist this setup information
네트워크가 끊기거나 VS Code가 재시작되면 아래처럼 복구하면 됩니다.
Use the nemo-rl-session-memory skill under ./skills, load the latest session, and provide me with a summary
Step 7~8: 목표 주도 autoresearch 캠페인
새 환경을 하나 만들어 봅니다. 여기서는 VLM용 별 세기(star count) 태스크를 예시로 씁니다.
/goal Now using the Nemo gym circle click environment as a reference,
implement a new Gym environment named "star count", that teaches
a model to count the number of stars of different colors on a canvas of
different resolutions. Show me several examples
그다음 예산을 명시한 캠페인을 시작합니다. 목표·방법·태스크 환경·베이스라인 요구·시간 예산이 프롬프트에 반드시 들어가야 해요.
/goal Now use the nemo-rl-autoresearch and nemo-rl-session-memory skill under ./skills, start a new
auto research session, goal: Train the Qwen3-VL-2B-Instruct model to high accuracy, using SFT algorithm
on the star count gym environment. Start with profiling the model out of the box accuracy. Time budget: 5h
실제 실험 결과는 이랬습니다:
| 단계 | 정확도 | 비고 |
|---|---|---|
| 베이스라인(64-example held-out) | 25.0% | mean reward 0.705 |
| 첫 LoRA 스모크 | 78.125% | 데이터 파이프라인 검증 완료 |
| 2048-train / 160-step | 95.3125% | 스케일링 효과 확인 |
| 4096-train / 320-step (best: step_240) | 96.875% | mean reward 0.992 |
총 71.875%p 상승. 남은 오류는 포맷 실패가 아니라 특정 색상에서 1개씩 틀리는 오프바이원(off-by-one) 카운트 미스였습니다. 그래서 다음 실험 제안은 "조밀하거나 시각적으로 모호한 장면에 대한 하드케이스 증강"이었죠. 이게 autoresearch 루프의 진짜 가치예요 — 단일 명령 실행이 아니라 베이스라인 프로파일링 → 환경 구축 → 검증 실험 → 스케일링 → 체크포인트 평가 → 오류 분석 → 다음 방향 제안까지 이어집니다.
Step 9~10: 논문에서 코드로
Paper-to-code는 논문을 읽고 구현 계획을 세운 뒤 코드 작성·테스트·학습까지 이어가는 흐름입니다. 예시 논문은 LLMs Can Learn to Reason via Off-Policy RL (OAPL 알고리즘).
/goal Start a new session with nemo-rl-session-memory skill under ./skills. First, read
this paper https://arxiv.org/abs/2602.19362 in pdf format, form a plan then implement it.
Write and run unit tests to satisfaction. Write document. Then start a new autoresearch
session with the nemo-rl-autoresearch skill, train a Qwen3-1.7B model with this algorithm
on the DAPO-math-17K dataset. Time budget: 10h
Codex는 이 요청을 다음 단계로 쪼갭니다: PDF 읽기 → 알고리즘 추출 → NeMo RL 훅 포인트 점검 → 구현 계획 → 코드 변환 → 단위 테스트 → 문서화 → 검증 캠페인. 다만 이 프롬프트는 의도적으로 공격적이에요. 실무에서는 읽기·계획은 사람 리뷰 하에, 구현·테스트·문서는 승인 후, 장기 캠페인은 마지막에 단계적으로 나누는 게 안전합니다.
실행 결과 OAPL은 DAPO 대비 더 적은 스텝으로 더 높은 정확도에 도달했지만, 토큰 사용량이 훨씬 많았습니다. 여기서 자연스러운 후속 연구 질문이 나오죠 — "OAPL은 왜 더 장황해지는가, 정확도를 희생하지 않고 간결성을 높이려면 어떤 알고리즘 변경이 필요한가?"

주의사항: 에이전트도 실수한다
최신 프론티어 에이전트도 아래 실패 모드는 반드시 겪습니다.
- 컨텍스트 드리프트: 긴 세션에서 목표·로드된 스킬·정지 규칙을 잊음 → 세션 메모리로 방어
- 로컬 하우스키핑 실패: 로그·체크포인트·데이터셋이 파일시스템에 흩어짐 → 머신별 에티켓 스킬로 방어
- 조향 드리프트(steering drift): 중간 개입 질문이 캠페인을 조기 종료시킴 → 개입은 명시적으로
- 저신호 루프: 작은 배치·짧은 스텝만 반복해서 신호가 안 나오는 실험 → 사람이 알아채고 방향 전환
실무 적용 팁
- 스킬은 진화하는 문서로 취급하세요. Codex에게 스킬 파일 자체를 업데이트하게 하면 조직 컨벤션이 축적됩니다.
- 어려운 연구 질문엔 사람 판단이 여전히 필수입니다. 에이전트는 유능한 인턴이지 PI가 아니에요.
- 장기 실행 전에 명시적 브레인스토밍·계획 단계를 거치세요. 계획 없이 10시간 캠페인을 던지면 낭비입니다.
- 예산 제약을 반드시 명시하세요 — 시간, GPU-시간, 최대 실험 횟수. 이게 없으면 실험 스윕이 무한정 넓어집니다.
한국 개발 생태계에서의 적용 맥락
국내 SI·스타트업 환경에서는 GPU 인스턴스를 상시로 물리기 어려운 경우가 많아요. 그래서 Brev 같은 온디맨드 GPU + 세션 메모리로 상태 영속화하는 조합이 특히 실용적입니다. 또한 사내망에서는 Hugging Face·W&B 아웃바운드가 막히는 경우가 많으니, .env 크레덴셜 관리와 프록시 설정을 스킬 문서에 미리 박아두는 걸 권합니다. 체크포인트를 /ephemeral로 라우팅하는 규칙도 국내 클라우드 볼륨 요금 구조에 맞춰 조정하면 비용 효율이 좋아집니다.

정리: 에이전트는 연구자를 대체하지 않는다
이 워크플로우의 핵심은 역할 분담입니다. 에이전트는 셋업·디버깅·로깅·실험 루프를 처리하고, 연구자는 목표 정의·도메인 판단·캠페인 조향·결과 해석을 담당합니다. NeMo RL, NeMo Gym, Brev, Codex, 그리고 소수의 운영 스킬만 있으면 셋업과 반복 실험에 쓰던 시간과 컴퓨트를 "다음에 어떤 실험을 할 가치가 있는가"를 고민하는 데로 옮길 수 있어요.
다음 단계 학습 방향
- NeMo RL 레시피 구조 이해: GRPO, DPO, SFT, reward model 학습 레시피가 어떻게 구성되는지 훑어보세요.
- NeMo Gym 환경 작성법: 커스텀 환경을 하나 직접 만들어 보면 에이전트가 환경을 어떻게 다루는지 감이 옵니다.
- 스킬 문서 설계: 팀 컨벤션을 스킬로 인코딩하는 연습이 장기적으로 가장 큰 레버리지입니다.
- 크로스 체크 패턴: 다른 프론티어 에이전트로 논문·구현·테스트·결과를 리뷰하게 하는 자기 일관성 검증도 시도해 보세요.
근거자료: NVIDIA Developer Blog - How to run an autoresearch workflow with RL agent skills and NVIDIA NeMo