인공지능 ·
200줄 파이썬으로 GPT 구현한 'microgpt' 공개...AI 학습 원리 한눈에, 외부 라이브러리 없이 토크나이저·학습·추론까지 완결
안드레이 카파시, 순수 파이썬 200줄로 GPT 핵심 알고리즘 구현한 교육용 프로젝트 공개
[한국정보기술신문] AI 교육 분야의 저명한 연구자 안드레이 카파시(Andrej Karpathy)가 지난 2월 12일, 대형언어모델(LLM)의 핵심 알고리즘 전체를 순수 파이썬 200줄로 구현한 오픈소스 프로젝트 'microgpt'를 공개했다. 이 프로젝트는 pip 설치나 외부 의존성 없이 동작하며, 데이터셋 처리부터 토크나이저, 자동미분 엔진, GPT-2 유사 신경망 구조, Adam 옵티마이저, 학습 루프, 추론 루프까지 현대 LLM의 알고리즘적 본질을 모두 담고 있다.
카파시는 공개 글에서 "이 스크립트는 micrograd, makemore, nanogpt 등 여러 프로젝트와 10년간의 집착이 집약된 결과물"이라며, LLM을 가장 단순한 형태로 줄여내는 작업의 완성본이라고 설명했다. 소스코드는 깃허브 Gist와 구글 코랩 노트북으로 제공되며, 누구나 파이썬만 설치돼 있으면 즉시 실행 가능하다.
200줄 안에 담긴 GPT의 전부
microgpt는 약 3만 2000개의 이름 데이터를 학습해 새로운 이름을 생성하는 방식으로 동작한다. 규모는 단출하지만, 알고리즘 구조는 챗GPT와 동일하다. 데이터셋을 불러와 문자 단위 토크나이저로 처리하고, Value 클래스 기반의 자동미분 엔진이 역전파를 수행한다. 이어 GPT-2 구조를 따른 멀티헤드 어텐션과 MLP 블록으로 이루어진 신경망이 다음 토큰을 예측하며, Adam 옵티마이저가 손실을 줄이는 방향으로 파라미터를 갱신한다.
모델 파라미터 수는 4192개에 불과하지만, 1000번의 학습 스텝을 거치면서 손실이 약 3.3에서 2.37 수준으로 낮아지며 통계적으로 그럴듯한 이름들을 생성해낸다. macOS 기준 약 1분이면 전체 학습이 완료된다.
자동미분부터 KV캐시까지, 교육적 설계
특히 눈길을 끄는 것은 추론 과정에서 KV캐시를 명시적으로 구현했다는 점이다. 일반적으로 KV캐시는 추론 단계에서만 쓰는 것으로 알려져 있지만, 카파시는 학습 단계에서도 개념적으로는 항상 존재한다는 점을 코드로 직접 보여준다. microgpt에서는 토큰을 하나씩 처리하기 때문에 캐시를 명시적으로 구성하며, 학습 중에는 캐시된 키와 값이 계산 그래프 상의 살아있는 노드로 유지돼 역전파가 이를 통과한다.
자동미분 엔진도 직접 구현돼 있다. Value 클래스는 스칼라 값을 래핑하고 연산 과정에서 계산 그래프를 자동으로 구성한다. backward() 메서드는 위상 정렬 역순으로 그래프를 순회하며 연쇄 법칙을 적용, 각 파라미터에 대한 손실 기울기를 계산한다. 카파시는 이 부분에 대해 2시간 30분 분량의 micrograd 강의 영상을 별도 참고자료로 제시했다.
핵심 알고리즘은 챗GPT와 동일
카파시는 microgpt와 실제 프로덕션 LLM의 차이도 상세히 설명했다. 데이터 규모, BPE 기반 서브워드 토크나이저, 텐서 연산 및 GPU 병렬처리, 수십억 개의 파라미터, SFT와 강화학습 기반 사후 학습, 서빙 인프라 등에서 차이가 있지만, 핵심 알고리즘과 전체 구조는 동일하다고 강조했다.
그는 "사용자와 챗GPT의 대화는 그냥 특이하게 생긴 문서에 불과하다. 프롬프트로 문서를 초기화하면, 모델의 응답은 통계적 문서 완성에 지나지 않는다"고 설명하며, LLM의 작동 원리를 탈신비화했다. 환각 현상에 대해서도 "모델은 확률 분포에서 토큰을 샘플링할 뿐, 진실의 개념이 없다. 통계적으로 그럴듯한 완성 결과가 사실과 다를 수 있을 뿐"이라고 설명했다.
단계별 학습 경로도 제공
카파시는 microgpt를 한 번에 이해하기 어려운 학습자를 위해 train0.py부터 train5.py까지 단계별 버전도 함께 공개했다. 이진 빈도 테이블에서 시작해 수동 기울기 계산, 자동미분, 위치 임베딩과 어텐션 추가, 멀티헤드 어텐션, 그리고 Adam 옵티마이저까지 순차적으로 기능을 추가해가는 구성이다. 각 버전 간 diff를 통해 어떤 요소가 어떤 역할을 하는지 직관적으로 파악할 수 있다.
프로젝트는 깃허브 Gist(microgpt.py)와 karpathy.ai/microgpt.html에서 소스코드를 확인할 수 있으며, 구글 코랩 노트북으로도 바로 실행해볼 수 있다.
한국정보기술신문 인공지능분과 김주호 기자 news@kitpa.org