머리말: 언어 모델을 바닥부터 만들고 들여다보기

빈 모델에서 첫 마디까지

대화형 언어 모델은 이제 누구나 매일 쓰고, 이 시리즈를 따라온 독자라면 그 안에서 돌아가는 계산도 대부분 알고 있다. 손실을 줄이는 경사 하강, 어텐션이 앞의 토큰을 골라 읽는 방식, 다음 토큰을 맞히는 일이 왜 글을 짧게 적는 일과 같은지까지 앞의 강의에서 하나씩 다뤘다. 그런데 파라미터가 무작위 수로 채워진 빈 모델을 손수 학습시켜 첫 마디를 받아 본 사람은 드물다.

직접 해 보면 책으로 읽을 때는 보이지 않던 물음이 생기는데, 예를 들어 학습을 막 시작한 모델이 무엇부터 배우는지, 글자 몇 개를 겨우 잇던 모델이 언제부터 이야기 앞에 나온 이름을 기억하는지 같은 것들이다. 같은 코드로 모델을 크게 키우면 무엇이 달라지고, 학습 시간은 어디서 줄일 수 있을까? 그리고 다 만든 모델이 「안녕」이라고 말하기 직전에, 그 안의 층들은 각각 무슨 일을 하고 있을까?

이 책은 이 물음들을 직접 만든 모델 하나로 따라간다. 노트북에서 글자 다음에 올 글자를 세는 데서 출발해, 게이밍 GPU 한 장에서 짧은 동화를 쓰는 작은 GPT 를 학습하고, 큰 장비에서 GPT-2 급 모델을 프리트레인한 뒤, 묻는 말에 대답하도록 가르친다. 부마다 끝에는 그 모델의 속을 열어 보는 장을 둔다.

이 책이 따라가는 기록

뼈대는 안드레이 카파시(Andrej Karpathy)가 2025년 10월에 공개한 nanochat 이다. nanochat 은 토크나이저 학습부터 프리트레인, 지도 파인튜닝, 강화학습, 대화 화면까지 작은 대화 모델 하나를 만드는 과정 전체를 한 저장소에 담았고, MIT 라이선스로 누구나 고쳐 쓸 수 있다. 이 책은 2026년 7월의 마지막 커밋 92d63d4 에 고정해 읽는다.

nanochat 에는 「GPT-2 의 점수에 닿기까지 걸린 시간」을 경쟁하는 순위표가 있다. 순위표 첫 줄의 공개 기록으로는 2019년의 GPT-2 를 학습하는 데 168시간, 약 43,000 달러가 들었다. 2026년 3월의 nanochat 은 H100 여덟 장으로 같은 점수에 1.65시간 만에 닿았으니, 일곱 해 사이에 시간이 백 배쯤 줄었다. 그 사이의 기록을 거꾸로 읽으면 이 책의 순서가 나온다.

먼저 아무리 엉성해도 돌아가는 모델을 만든다(1부 「일단 돌아가게」). 다음으로 웹 글과 GPU 여러 장으로 GPT-2 급까지 키우고(2부 「크게 키우기」), nanochat 과 형제 저장소의 속도 경쟁이 시간을 줄인 연구들을 하나씩 켜고 끄며 잰다(3부 「더 빠르게, 더 좋게」). 데이터를 바꾼 일처럼 크게 효과를 본 시도와 함께 효과가 없어 되돌린 시도도 다시 돌려 본다. 그다음에 대화의 형태를 가르치고, 답을 확인할 수 있는 문제로 강화학습을 하고, 영어로 학습한 모델에 한국어를 가르치는 방법을 비교한다(4부 「대화하는 루나」). 마지막 5부는 그 모델의 속을 들여다보며 원하는 성격으로 다듬는다.

층마다 무슨 일이 일어나는가

모델을 만드는 일만큼 이 책이 공을 들이는 물음은 트랜스포머의 층마다 무슨 일이 일어나는가이고, 해석 가능성 연구가 지난 몇 해 동안 여기에 조금씩 답해 왔다. 처음에는 중간 층의 상태를 바로 단어로 읽어 보는 로짓 렌즈(2020)가 나왔고, 이어서 Anthropic 의 「트랜스포머 회로」 연재(2021부터)가 층들이 함께 읽고 쓰는 잔차 스트림과 어텐션 헤드를 회로로 풀었으며, 앞에 나온 패턴을 찾아 이어 쓰는 유도 헤드(2022)가 그 연재에서 나왔다. 그 뒤로 뉴런 하나에 여러 개념이 겹쳐 사는 중첩과, 겹친 개념을 하나씩 풀어내는 희소 오토인코더의 특징(2022~2024)이 나왔다. 최근에는 한 답이 나오기까지 특징들이 이어지는 경로를 그린 귀속 그래프(2025)에 이어, 모델이 말로 옮길 준비가 된 표현을 읽는 자코비안 렌즈와 J-space(2026)까지 나왔다.

이 책은 이 연구들을 소개만 하지 않고 모두 우리가 학습한 모델에 걸어 본다. 원 논문의 모델은 대개 우리 모델보다 훨씬 크거나 공개되지 않았으므로, 우리 모델에서 얻은 결과는 원 논문의 결과와 구별해 적는다. 작은 모델에서 원 논문과 같은 현상이 보이지 않으면 안 보였다는 결과도 그대로 싣고, 모델을 키워 다시 잰다. 부마다 끝의 「들여다보기」 장이 한 조각씩 보태면, 마지막에는 앞 층·중간 층·뒤 층이 각각 무엇을 맡는지에 대한 큰 그림 하나가 모인다.

루나

본문의 실습은 두 학생이 함께 하는 조별 과제로 진행된다. 김민준과 이서연은 문을 닫은 게임 속 관제 AI 「루나」를 되살리려고 언어 모델을 바닥부터 학습하고, 첫 시간에 옛 루나에 대해 기억하는 것을 「루나 설정서」에 적는다. 말이 된다, 앞에서 한 말을 기억한다, 묻는 말에 대답한다 같은 줄이다. 장이 끝날 때마다 두 사람은 설정서의 어느 줄이 채워졌는지 확인하고, 아직 빈 줄을 다음 장의 물음으로 삼는다.

어떤 데이터를 넣고, 어떤 대화를 직접 쓰고, 속을 들여다본 결과로 무엇을 고칠지는 두 사람이 바라는 루나의 모습에 따라 정해진다. 그래서 설정서는 실습을 이끄는 목표 목록이기도 하다. 두 사람이 같은 루나를 두고 서로 다른 것을 바란다는 사실은 이야기를 따라가다 보면 드러난다. 장 사이의 「막간」은 실습과 상관없는 두 사람의 이야기라서 건너뛰어도 실습을 따라가는 데 지장이 없다.

누구를 위한 책인가

시리즈의 큰 줄기 세 권(최적화, 디퓨전, 강화학습)과 정보이론 책을 읽은 독자를 생각하고 썼다. 그 책들에서 다룬 개념이 실습에 필요해지면 다시 유도하지 않고 「회상」 상자로 불러온다. 상자 안에는 원래 절의 결론 한두 문장과 그림 하나, 그리고 원래 절로 가는 링크가 있다. 앞의 책을 읽지 않았거나 내용이 가물가물하면 링크를 따라가 그 절만 읽고 돌아오면 된다.

이 책에서 처음 나오는 개념은 따로 있다. 글을 토큰으로 자르는 BPE, 잔차 스트림, 유도 헤드, GPU 여러 장에 학습을 나누는 법, 해석 가능성 도구들은 앞의 책 어디에도 없으므로, 이 책이 숫자 있는 작은 예제부터 직접 설명한다. 파이썬과 파이토치로 작은 신경망을 학습시켜 본 정도면 코드를 따라올 수 있다.

무엇이 필요한가

장비는 세 단계로 나눴다. 1부는 거의 전부 노트북 이나 게이밍 GPU 한 장(메모리 24GB 안팎)에서 돌아가고, 2부부터는 GPU 여러 장이 달린 큰 장비 나 클라우드 대여가 있으면 좋다. 장마다 「따라 하기」 상자에 단계별 명령과 걸리는 시간을 적었으니, 큰 장비가 없으면 같은 코드를 작은 크기로 돌리고 큰 결과는 책에 실린 출력으로 읽으면 된다.

본문과 출력 블록의 숫자는 모두 책 저장소 sources/ 의 스크립트를 실제로 돌려 얻은 값이다. 숫자마다 출처를 세 가지로 구별해 적었다. 우리가 잰 값에는 장비 이름(RTX 4090 한 장, RTX PRO 6000 네 장)을 붙였고, nanochat 순위표나 논문에서 가져온 값에는 공개 기록이라고 출처를 달았다. 직접 재지 못하고 계산으로 짐작한 값에는 어떻게 짐작했는지 한 줄을 붙였다. 난수 씨앗은 고정했지만, GPU 종류와 라이브러리 버전이 다르면 끝자리는 조금 달라질 수 있다.

학습 데이터에는 조건이 붙어 있다. 동화 데이터 타이니스토리즈는 GPT-3.5 와 GPT-4 가 쓴 합성 글이고 CDLA-Sharing-1.0 라이선스를 따른다. 1부 끝에서 처음 조금 맛보고 2부부터 본격적으로 쓰는 nanochat 의 프리트레인 데이터 ClimbMix 는 원본이 CC BY-NC 4.0(비상업 이용만 허락하는 라이선스)인데, 이 책은 무료로 공개하는 책이라 비상업 조건 안에서 쓴다. 웹 글을 인용할 때는 출처를 함께 적는다. 데이터마다 자세한 조건은 처음 쓰는 장에 적었다.

이 책을 읽는 법

회상 상자와 따라 하기 상자. 「회상」 상자는 앞의 책 내용을 불러오는 곳이고, 누가 떠올리는지와 원래 절의 제목이 맨 위에 적혀 있다. 「따라 하기」 상자는 독자가 자기 장비로 돌려 볼 명령이다. 코드 블록 바로 아래의 회색 블록은 그 코드를 돌린 실제 출력이고, 우리가 학습한 모델이 쓴 글도 같은 출력 블록에 고치지 않고 싣는다.

수식 색과 기호 표. 수식의 기호는 개념마다 정해 둔 색으로 칠했고, 수식 바로 아래에 기호마다 뜻을 적은 작은 표를 붙였다. 토큰은 초록, 확률은 자주, 손실은 빨강처럼 앞의 책과 같은 개념은 같은 색이고, 색을 구별하기 어려운 독자도 기호 표만으로 읽을 수 있게 썼다.

연습문제와 함께 풀기. 개념 절 끝에는 문제가 있고, 문제마다 아래에 세 사람이 그 문제를 풀며 틀리고 바로잡는 대화가 이어지는데, 대화를 읽기 전에 먼저 혼자 풀어 보길 권한다. 대화에 나오는 세 사람은 다음과 같다.

인물 소개
선생님 평상 표정
선생님
실습 수업의 강의자. 정답을 먼저 말하는 대신 숫자를 보고 「왜 그런가」를 묻는다.
김민준 평상 표정
김민준
컴퓨터공학과 4학년. 코드로 먼저 돌려 보고 답이 빠르다. 게임 속 관제 AI 루나를 오래 아껴 왔다.
이서연 평상 표정
이서연
수학과 4학년. 해석학과 선형대수는 탄탄하고, 이상한 결과를 스스로 알아채 조건과 범위를 따진다.