카파시, '나노챗' 공개: 8천 줄 코드로 4시간 만에 ChatGPT 풀스택 구현
안드레이 카파시가 ChatGPT 복제 모델을 처음부터 학습시키는 풀스택 파이프라인 'nanochat'을 공개했다. 약 8,000줄의 간결한 코드로 토크나이저 제작부터 사전학습, SFT, GRPO 강화학습, 추론 UI까지 전 과정을 지원한다. 8장의 H100 환경에서 약 100달러(4시간)면 대화 가능한 모델을 직접 훈련할 수 있다.

nanochat은 안드레이 카파시가 공개한 미니멀 풀스택 ChatGPT 복제 프로젝트입니다. 의존성을 최소화한 약 8,000줄의 간결한 단일 코드베이스로, 대형 언어 모델의 바닥부터 대화 인터페이스까지 이어지는 전 과정을 담았습니다.
클라우드 GPU 인스턴스를 띄우고 스크립트 하나만 실행하면, 빠르면 4시간 만에 ChatGPT 스타일의 웹 UI에서 직접 학습시킨 모델과 대화할 수 있습니다.
무엇을 할 수 있나
사전학습만 다뤘던 이전 프로젝트 nanoGPT와 달리, nanochat은 최신 LLM 포스트 트레이닝 파이프라인 전체를 포괄합니다.
Rust로 새로 작성한 토크나이저 학습 모듈로 시작해, FineWeb 데이터셋에서 트랜스포머 모델을 사전학습하고 CORE 메트릭으로 성능을 평가합니다.
이어 SmolTalk 대화 데이터셋과 객관식 문제, 도구 사용 데이터를 활용한 미드트레이닝을 거칩니다. 이후 SFT 지도 미세조정을 진행하며 MMLU, ARC, GSM8K, HumanEval 등으로 모델 지식을 측정합니다.
GSM8K 수학 문제를 대상으로 GRPO 알고리즘 기반 강화학습을 진행하는 옵션도 갖췄습니다. 자체 추론 엔진은 KV 캐시와 간단한 프리필/디코드 로직, 가벼운 샌드박스 파이썬 인터프리터를 통한 도구 호출을 지원하며, 전체 결과를 마크다운 성적표로 요약해 줍니다.
비용과 성능
실행 비용은 매우 현실적입니다. 8장의 H100 노드에서 약 4시간 동안 학습을 돌리면 비용은 약 100달러 선이며, 간단한 질문에 답하고 짧은 글이나 시를 지을 수 있는 기본 챗봇이 완성됩니다.
학습 시간을 약 12시간으로 늘리면 과거 GPT-2의 CORE 점수를 넘어섭니다. 예산을 1,000달러(약 41.6시간 학습) 수준으로 키우면 문맥 일관성이 눈에 띄게 높아져 기초 수학 및 코딩 문제를 풀 수 있습니다.
예컨대 깊이 30 모델을 24시간 학습시킬 경우(GPT-3 Small 125M 수준의 연산량), MMLU 40점대, ARC-Easy 70점대, GSM8K 20점대 점수를 기록합니다.
카파시는 아직 최적화할 여지가 매우 많이 남아있는 뼈대 상태라고 밝히며, 제작 중인 교육 과정 LLM101n의 최종 졸업 과제로 활용될 예정이라고 덧붙였습니다. 전체 코드와 실행 가이드는 GitHub에 공개되어 있습니다.
왜 중요한가
LLM이 실제로 어떻게 조립되고 훈련되는지 파악하려는 엔지니어나 연구자에게 nanochat은 현존하는 가장 투명한 교재입니다. 무겁고 파편화된 오픈소스 프레임워크들을 오갈 필요 없이, 수천 줄의 코드로 사전학습부터 강화학습까지의 블랙박스를 단번에 열어볼 수 있습니다.
대규모 서비스용 트레이너처럼 극한의 처리량을 내는 도구는 아니지만, 직접 코드를 뜯어보고 실험하기에 최적화된 구조를 갖췄습니다. 몇백 달러 수준의 GPU 비용을 투자해 모델 학습의 전 과정을 직접 손으로 완주해보고 싶은 개발자라면 가장 먼저 시도해볼 만한 베이스라인입니다.
출처 (1)
- @karpathy(새 탭에서 열림)원문x.com