AI Sparkup

복잡한 AI 세상을 읽는 힘 ⚡

LLM 학습이 100달러면 된다고? nanochat으로 ChatGPT 클론 만들기

OpenAI 공동 창업자 Andrej Karpathy가 단 100달러, 4시간이면 자신만의 ChatGPT를 구축할 수 있는 nanochat 프로젝트를 공개했습니다. GPT-3 학습에 최소 50만 달러, GPT-4에는 1억 달러 이상이 들었다는 사실을 생각하면 놀라운 진전이죠.

nanochat 로고
nanochat: 100달러로 만드는 최고의 ChatGPT (출처: GitHub)

핵심 포인트:

  • 100달러, 4시간의 마법: 8XH100 GPU 노드에서 speedrun.sh 스크립트 하나로 토크나이제이션부터 사전학습, 파인튜닝, 웹 서빙까지 전체 파이프라인 완성
  • 8천 줄로 구현한 ChatGPT: 330KB, 45개 파일의 최소화된 코드베이스로 LLM 전체 구조를 읽고 이해할 수 있는 교육적 가치
  • 확장 가능한 3단계 모델: 100달러(4시간), 300달러(12시간, GPT-2 수준), 1,000달러(42시간, 복잡한 수학/코딩 문제 해결)로 규모 조정 가능

ChatGPT 클론을 100달러에 만든다는 것

LLM 학습 비용은 천문학적입니다. 2017년 원조 Transformer 학습에는 900달러가 들었지만, GPT-3(1,750억 파라미터)는 50만~460만 달러, GPT-4는 1억 달러 이상이 소요됐습니다. Google의 Gemini Ultra는 무려 1억 9,100만 달러를 투입했죠.

이런 상황에서 nanochat이 제시하는 100달러는 파격적입니다. 물론 GPT-4와 같은 성능을 기대할 수는 없어요. nanochat의 100달러 모델은 “유치원생과 대화하는 수준”이라고 Karpathy는 솔직하게 표현했습니다. 하지만 여기서 중요한 건 비용이 아니라 접근성입니다.

nanochat의 ChatGPT 스타일 웹 인터페이스 (출처: GitHub)

nanochat의 전체 파이프라인

nanochat은 이전 프로젝트인 nanoGPT를 크게 확장했습니다. nanoGPT가 사전학습만 다뤘다면, nanochat은 완전한 ChatGPT 클론을 만드는 전체 과정을 포함합니다.

포함된 핵심 기능:

  • Rust로 작성된 토크나이저 학습
  • FineWeb 데이터셋을 활용한 Transformer LLM 사전학습
  • 사용자-어시스턴트 대화와 객관식 문제로 중간 학습
  • Supervised Fine-Tuning (SFT)
  • GRPO를 활용한 강화학습 (선택사항)
  • KV 캐싱을 통한 효율적인 추론
  • 명령줄 인터페이스와 웹 UI
  • 성능 요약 리포트 자동 생성

가장 놀라운 점은 이 모든 것이 단일 스크립트로 실행된다는 사실입니다. Lambda 같은 클라우드 GPU 제공업체에서 8XH100 노드를 부팅하고, speedrun.sh를 실행하면 4시간 후 자신만의 LLM과 대화할 수 있습니다.

screen -L -Logfile speedrun.log -S speedrun bash speedrun.sh

이 명령 하나로 토크나이제이션부터 웹 서빙까지 모든 과정이 자동으로 진행됩니다. 시간당 약 24달러의 GPU 비용을 4시간 동안 지불하면, 총 96달러로 작동하는 ChatGPT 클론이 완성되는 거죠.

규모별 성능 비교

nanochat의 진짜 매력은 확장성입니다. 예산과 시간에 따라 세 가지 등급을 선택할 수 있어요.

100달러 티어 (4시간): 기본적인 대화와 간단한 텍스트 생성이 가능합니다. 모델에게 이야기나 시를 써달라고 요청할 수 있고, 하늘이 왜 파란지 물어볼 수도 있죠. Karpathy의 표현대로 “유치원생과 대화하는” 수준이지만, LLM의 기본 작동 원리를 이해하기에는 충분합니다.

300달러 티어 (12시간): depth=26 모델로, GPT-2의 CORE 벤치마크 점수를 약간 상회합니다. 더 일관성 있는 대화가 가능하고 객관식 문제도 어느 정도 풀 수 있어요.

1,000달러 티어 (42시간): 간단한 수학 문제와 코딩 문제를 해결할 수 있는 수준입니다. 여전히 최첨단 모델과는 거리가 있지만, 실용적인 용도로 활용할 만한 수준에 도달합니다.

예를 들어, 100달러 티어 모델의 벤치마크 결과는 다음과 같습니다:

  • CORE: 0.2219
  • ARC-Challenge: 0.2875 (중간 학습 후)
  • GSM8K: 0.0758 (강화학습 후)
  • HumanEval: 0.0854 (SFT 후)

최첨단 모델과 비교하면 낮은 점수지만, 전체 학습 파이프라인을 경험하고 이해하는 데는 이 정도면 충분합니다.

코드베이스의 아름다움

nanochat의 가장 큰 강점은 “읽을 수 있는” 코드입니다. 전체 프로젝트는 45개 파일, 약 8,300줄의 코드로 구성되어 있고, 패키징하면 330KB 정도입니다. 대부분의 최신 LLM이 10만 토큰 내외를 처리할 수 있으니, 코드 전체를 Claude나 GPT에 복사해서 질문할 수 있다는 뜻이죠.

Karpathy는 의도적으로 복잡한 프레임워크나 거대한 설정 객체를 배제했습니다. 목적은 “최대한 포크 가능한” 강력한 베이스라인을 만드는 것이었어요. 개발자들이 코드를 읽고, 이해하고, 자신의 목적에 맞게 수정할 수 있도록 설계되었습니다.

이 철학은 Eureka Labs의 LLM101n 코스와도 연결됩니다. nanochat은 이 코스의 캡스톤 프로젝트가 될 예정인데, 학생들이 AI 모델을 처음부터 끝까지 구축하면서 배우는 완벽한 교육 도구인 셈이죠.

실용적 활용 가능성

nanochat은 교육용 도구를 넘어 실용적 가치도 있습니다.

학습과 연구: AI/ML 학생과 연구자들은 제한된 예산으로 LLM 실험을 진행할 수 있습니다. 논문에서 읽은 개념을 실제 코드로 구현해보고, 하이퍼파라미터를 조정해가며 그 영향을 직접 확인할 수 있어요.

프로토타이핑: 스타트업이나 기업이 특정 도메인에 특화된 소규모 LLM을 빠르게 프로토타입할 수 있습니다. 수백만 달러를 투자하기 전에 아이디어의 가능성을 검증하는 용도로 활용할 수 있죠.

벤치마킹: modded-nanoGPT처럼 nanochat도 연구 벤치마크로 발전할 가능성이 있습니다. 명확한 메트릭과 리더보드가 있어 연구자들이 최적화 기법을 경쟁적으로 개선할 수 있는 환경을 제공합니다.

커뮤니티 학습: files-to-prompt 같은 유틸리티로 코드를 패키징해서 LLM에게 질문하거나, DeepWiki를 통해 프로젝트를 탐색할 수 있습니다. GitHub URL의 github.com을 deepwiki.com으로 바꾸기만 하면 되죠.

기술적 고려사항

nanochat을 실행하려면 몇 가지 기술적 요구사항이 있습니다.

하드웨어: 8XH100 노드가 이상적이지만, 8XA100에서도 작동합니다. 단일 GPU에서도 실행 가능하지만 8배 더 오래 걸립니다. VRAM이 80GB 미만이라면 --device_batch_size 파라미터를 줄여야 해요. 기본값 32를 16, 8, 4로 낮추면서 메모리에 맞출 수 있습니다.

확장: 더 큰 모델을 학습하려면 세 가지만 수정하면 됩니다. 첫째, 충분한 데이터 샤드를 다운로드하고, 둘째, --depth 파라미터로 모델 크기를 늘리고, 셋째, 메모리 부족을 방지하기 위해 배치 크기를 조정하는 것이죠.

환경: vanilla PyTorch를 사용하므로 xpu, mps 등 다양한 백엔드에서 작동할 수 있지만, 기본 지원은 CUDA입니다.

nanochat이 보여주는 건 단순히 저비용 LLM 학습의 가능성이 아닙니다. 복잡한 AI 기술을 투명하고 접근 가능하게 만드는 방법을 제시하고 있어요. GPT-4를 능가하는 모델을 만들 수는 없지만, LLM이 어떻게 작동하는지 이해하고, 실험하고, 자신만의 변형을 만들 수 있는 완벽한 출발점입니다.


참고자료:


AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)

Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다