JAX와 TPU로 구축하는 최고의 오픈소스 클로드 코딩 에이전트
카파시의 nanochat 프로젝트를 기반으로, 앤스로픽의 Constitutional AI 방식을 차용해 직접 코딩 에이전트 모델을 학습할 수 있도록 돕는 'nanocode' 라이브러리가 공개되었습니다. 순수 JAX로 작성되어 TPU 환경에 최적화되었으며, 구글의 무료 TPU 프로그램을 활용해 200달러의 비용으로 13억 파라미터(1.3B) 크기의 코딩 에이전트 모델을 학습 및 재현할 수 있는 것이 가장 큰 특징입니다.
salmanmohammadi / nanocode 공지사항
nanocode 소개: 200달러로 살 수 있는 최고의 Claude Code #1 salmanmohammadi가 Announcements에서 발표
게시일: 2026년 4월 5일 · 댓글 0개
salmanmohammadi (Maintainer)
안녕하세요, nanocode를 공유하게 되어 매우 기쁩니다. 이 라이브러리는 여러분만의 Claude Code를 엔드투엔드(End-to-End)로 학습시키는 방법을 보여줍니다. 우선, Anthropic이 Claude 모델을 학습할 때 사용하는 방식인 Constitutional AI(헌법적 AI)를 활용한 가장 단순한 접근 방식을 따릅니다. 우리만의 SOUL.md를 작성하고, 모델이 외부와 상호작용할 에이전트 인터페이스를 정의하며, 합성 데이터(Synthetic data)를 생성한 뒤 선호도 최적화(Preference optimisation)를 통해 모델을 우리의 SOUL에 정렬(Alignment)할 것입니다.
nanocode는 전적으로 JAX로 작성되었으며 TPU를 사용해 학습하도록 설계되었습니다. 저는 핵심 학습 인프라와 철학을 Karpathy의 놀라운 nanochat 프로젝트에서 가져와 수정했기 때문에, nanochat에 익숙하다면 nanocode 역시 매우 비슷하게 느껴지실 것입니다.
다음은 제가 학습시킨 d24 1.3B 파라미터 nanocode의 구동 결과입니다: (nanocode.mp4)
새로운 구글 클라우드 계정은 300달러의 크레딧을 제공하며, 한 달 동안 선점형(Pre-emptible) TPU를 무료로 사용할 수 있는 구글 TRC 프로그램을 통해 무료로 시작해 볼 수 있습니다. 저는 이 프로젝트를 위해 3개월 동안 TRC 프로그램을 이용할 수 있었는데, 대부분의 경우 스팟 인스턴스가 중단되는 일이 드물었고 동일한 파드(Pod)를 일주일 이상 계속해서 띄워둘 수 있었습니다.
200달러가 드는 TPU v6e-8 환경에서 약 9시간이면 nanocode-d24(1.3B 파라미터)를 재현할 수 있으며, 34달러가 드는 환경에서는 약 1.5시간 만에 nanocode-d20(4억 7천7백만 파라미터)을 학습할 수 있습니다. NVIDIA GPU를 사용하시더라도 nanocode를 바로 실행할 수 있지만, TPU에 맞게 고도로 최적화되어 있다는 점은 참고하시기 바랍니다.
친절한 에이전트 코딩 파트너, nanocode 학습하기 Andrej의 원래 nanochat 릴리스 게시물은 우리가 여기서 무엇을 하고 있는지, 그리고 nanocode에서 사용할 명령어가 무엇인지 설명하는 데 훌륭한 역할을 합니다. 명령어들이 거의 동일하므로 그의 글을 먼저 읽어보시길 권장합니다. 이 글에서는 모델에서 에이전트형 코딩(Agentic coding) 동작을 이끌어내기 위해 우리가 다르게 한 작업들을 살펴보겠습니다.
토큰화(Tokenization) 및 사전 학습(Pre-training) 사전 학습과 토크나이저 학습 과정은 기본적으로 nanochat과 거의 동일합니다. 다만, 사전 학습 및 토크나이저 혼합 데이터에 The Stack-V2의 추가 코딩 데이터를 1:5 비율로 포함시킨 것이 더 강력한 코딩 모델과 효율적인 코드 토큰화를 이끌어냈으며, 이 점이 엄청난 도움이 되었습니다.
먼저 토크나이저 학습과 모델 사전 학습에 필요한 데이터셋 샤드(Shard)를 다운로드해 보겠습니다:
d24, 13억 파라미터(1.3B) 모델을 학습할 것입니다. 하지만 모델 크기에 맞게 MODEL_TAG를 수정할 수 있습니다.
export NANOCODE_BASE_DIR="$HOME/.cache/nanocode" export MODEL_TAG=d24
python -m data.pretrain -d fineweb-edu -n 300
FineWeb과 비슷하게 The Stack을 미리 패킹하고 샤딩했습니다.
python -m data.pretrain -d the-stack-v2-dedup -n 60
그리고 다음 토크나이저 학습 스크립트를 실행합니다: python -m scripts.tok_train --max-chars=2000000000 python -m scripts.tok_eval
참고로, 학습 데이터에 The Stack이 추가되었다는 점을 제외하면 nanochat의 토크나이저와 동일한 nanocode의 토크나이저를 비교할 수 있습니다(물론 더 정교한 도구 호출(Tool calling)을 지원하기 위해 특수 토큰과 템플릿 로직도 추가했지만, 이에 대해서는 나중에 자세히 다루겠습니다).
비교: nanocode vs nanochat
텍스트 유형 | 바이트(Bytes) | nanocode 토큰 | 비율(Ratio) | nanochat 토큰 | 비율(Ratio) | 상대적 차이(Diff %)
뉴스(News) | 1819 | 407 | 4.47 | 375 | 4.85 | +7.9% (nanochat 우세) 한국어(Korean)| 893 | 558 | 1.60 | (원문 텍스트가 여기서 끊어짐)