---
title: "노트북에서 1시간 안에 GPT를 처음부터 학습해보는 워크숍"
published: 2026-05-05T04:09:17.000Z
canonical: https://jeff.news/article/2168
---
# 노트북에서 1시간 안에 GPT를 처음부터 학습해보는 워크숍

이 저장소는 파이토치로 GPT 학습 파이프라인을 직접 구현하는 실습형 워크숍이다. 나노지피티보다 작게 줄인 약 1천만 파라미터 모델을 셰익스피어 데이터로 학습해, 맥북 같은 개인 노트북에서도 1시간 안에 돌아가도록 설계했다. 토크나이저, 트랜스포머, 학습 루프, 텍스트 생성까지 전부 직접 작성하는 게 핵심이다.

- 이 저장소는 “GPT를 처음부터 직접 만들어보자”에 초점을 맞춘 실습형 워크숍임.
  - 카파시의 `nanoGPT`에서 영감을 받았지만, 목표는 1억 2,400만 파라미터급 GPT-2 재현이 아니라 훨씬 작은 학습 경험.
  - 기본 모델은 약 1천만 파라미터라서 맥북에서도 워크숍 한 세션 안에 끝낼 수 있게 설계됨.

- 결과물은 셰익스피어풍 텍스트를 생성하는 작은 GPT 모델임.
  - 참가자가 직접 작성하는 파일은 `model.py`, `train.py`, `generate.py` 쪽.
  - 토크나이저, 모델 아키텍처, 학습 루프, 텍스트 생성까지 “마법처럼 가져다 쓰는” 부분을 줄인 구성이 포인트.

- 실습 흐름은 대규모 언어 모델의 최소 골격을 따라감.
  - 1부에서는 문자 단위 토큰화로 텍스트를 숫자로 바꾸는 방법을 다룸.
  - 2부에서는 임베딩, 셀프 어텐션, 레이어 정규화, 다층 퍼셉트론 블록으로 GPT 구조를 만듦.
  - 3부에서는 순전파, 손실 계산, 역전파, 옵티마이저, 학습률 스케줄링, 그래디언트 클리핑을 연결함.
  - 4부에서는 온도, 상위 케이 샘플링, 자기회귀 디코딩으로 텍스트 생성을 구현함.

- 실행 환경 장벽은 낮게 잡혀 있음.
  - 맥, 리눅스, 윈도우 노트북이나 데스크톱이면 되고, 파이썬 3.12 이상이 필요함.
  - 애플 실리콘 그래픽 처리장치, 엔비디아 쿠다, 중앙처리장치를 자동으로 골라 쓰는 구조.
  - 로컬 세팅이 귀찮으면 구글 코랩에 저장소와 `data/shakespeare.txt`를 올려서 실행할 수도 있음.

> [!TIP]
> 머신러닝 경험이 없어도 파이썬 코드를 읽는 데 익숙하면 따라갈 수 있게 만든 워크숍임. 모델을 크게 만드는 것보다 “각 부품이 왜 필요한지”를 손으로 확인하는 쪽에 가깝다.

- 모델 크기별 학습 시간도 현실적으로 제시돼 있음.
  - 초소형 설정은 약 50만 파라미터, 레이어 2개, 헤드 2개, 임베딩 차원 128이고 M3 프로 기준 약 5분.
  - 소형 설정은 약 400만 파라미터, 레이어 4개, 헤드 4개, 임베딩 차원 256이고 약 20분.
  - 기본 중형 설정은 약 1천만 파라미터, 레이어 6개, 헤드 6개, 임베딩 차원 384이고 약 45분.

- 토큰화 선택이 꽤 교육적으로 좋음.
  - 모든 설정은 어휘 크기 65, 블록 크기 256의 문자 단위 토큰화를 사용함.
  - 셰익스피어 데이터는 약 1메가바이트라서, 5만 257개 어휘를 쓰는 지피티투 방식 바이트 페어 인코딩은 데이터가 너무 부족하다고 설명함.
  - 더 큰 데이터셋으로 넘어갈 때 바이트 페어 인코딩을 쓰는 내용은 뒤쪽 파트에서 다룸.

- 이 프로젝트의 매력은 “작지만 완전한 파이프라인”임.
  - 실제 서비스 모델과 규모는 비교가 안 되지만, 토큰화부터 학습 곡선, 샘플링까지 한 번에 이어짐.
  - 개발자가 대규모 언어 모델을 호출하는 사용자를 넘어서, 내부 동작을 디버깅 가능한 대상으로 보기 시작하는 데 꽤 좋은 입문점임.

---

## 기술 맥락

- 이 워크숍이 약 1천만 파라미터 모델을 고른 이유는 학습 가능한 크기와 구조 이해 사이의 균형 때문이에요. 너무 작으면 트랜스포머의 맛이 안 나고, 너무 크면 노트북 실습에서 학습 시간과 환경 문제가 먼저 터지거든요.

- 문자 단위 토큰화를 쓰는 것도 단순화만을 위한 선택은 아니에요. 셰익스피어처럼 작은 데이터셋에서는 큰 어휘를 가진 토크나이저가 오히려 학습 사례를 잘게 흩어버려요. 그래서 어휘 수를 65개 정도로 낮추면 작은 모델도 반복 패턴을 배울 여지가 생겨요.

- 직접 구현하는 범위가 토크나이저에서 샘플링까지 이어지는 점도 중요해요. 실무에서는 대부분 라이브러리가 감춰주는 부분이지만, 손실 함수와 옵티마이저, 학습률 스케줄, 그래디언트 클리핑을 한 번 연결해봐야 학습이 왜 흔들리는지 설명할 수 있어요.

- 이 프로젝트는 거대한 모델을 만드는 법보다, 모델 학습 파이프라인을 한 번 끝까지 통과하는 경험을 주려는 쪽이에요. 그래서 애플 실리콘, 쿠다, 중앙처리장치, 코랩을 모두 지원하고, 워크숍 시간 안에 결과를 보도록 크기를 제한한 거예요.

## 핵심 포인트

- 약 1천만 파라미터 GPT 모델을 노트북에서 45분 안팎으로 학습하는 구성
- 문자 단위 토크나이저부터 셀프 어텐션, 학습 루프, 샘플링까지 직접 구현
- 애플 실리콘, 엔비디아 그래픽카드, 중앙처리장치, 구글 코랩에서 실행 가능
- 셰익스피어 약 1메가바이트 데이터에는 5만 개 어휘의 바이트 페어 인코딩보다 문자 단위 토큰화가 더 적합하다고 설명
- 작은 모델은 50만 파라미터 5분, 기본 모델은 1천만 파라미터 45분 수준으로 제시

## 인사이트

대규모 언어 모델을 제품에서만 만지면 구조가 계속 블랙박스로 남는다. 1천만 파라미터짜리 장난감 모델이라도 토크나이저부터 샘플링까지 직접 써보면, 추론 최적화나 프롬프트 엔지니어링을 볼 때 감이 훨씬 좋아진다.
