4부 · 학습: 모델은 어떻게 만들어지는가
← 3부 어텐션과 트랜스포머 · 목차 · 다음: 5부 추론(생성) →
3부에서 모델이 수십억 개의 "다이얼(파라미터)"로 이루어졌고, 그 다이얼은 처음엔 무작위였다가 학습으로 맞춰진다고 했습니다. 이 부의 주제가 바로 그 맞추는 과정입니다.
한 줄 요약입니다.
학습은 크게 두 단계다. 먼저 방대한 텍스트로 "다음 토큰 맞히기"를 연습해 세상의 패턴을 흡수하고(사전학습), 그다음 사람에게 쓸모 있고 안전한 조수가 되도록 다듬는다(사후학습).
flowchart LR
DATA["방대한 텍스트<br/>(책·웹·코드…)"] --> PRE["사전학습<br/>다음 토큰 맞히기 반복"]
PRE --> BASE["기본 모델<br/>(패턴은 알지만<br/>지시는 못 따름)"]
BASE --> SFT["지시 미세조정<br/>(좋은 질문-답 예시로)"]
SFT --> RLHF["선호 정렬<br/>(사람 선호로 다듬기)"]
RLHF --> ASSIST["조수 모델<br/>(우리가 쓰는 챗봇)"]
classDef data fill:#d8b4f8,stroke:#8b5cf6,color:#000
classDef proc fill:#a8e6e2,stroke:#2ba89e,color:#000
classDef out fill:#b9f6ca,stroke:#2e9e5b,color:#000
class DATA data
class PRE,SFT,RLHF proc
class BASE,ASSIST out
4.1 사전학습 — 다음 토큰 맞히기를 수조 번
사전학습(pre-training) 은 모델 만들기의 토대입니다. 방대한 분량의 텍스트(책·웹페이지·코드 등)를 가져와, 모델에게 끝없이 같은 연습을 시킵니다.
문장의 일부를 보여주고, 다음 토큰이 무엇일지 맞히게 한다. 답(실제 다음 토큰)과 비교해, 틀린 만큼 다이얼을 조금 조정한다. 이걸 수조 개의 토큰에 대해 반복한다.
이 과정의 묘미는 정답을 사람이 일일이 달아줄 필요가 없다는 점입니다. 다음 토큰의 "정답"은 원래 텍스트에 이미 들어 있습니다. "오늘 날씨가 참" 다음에 실제로 "좋"이 왔다면, 그게 정답입니다. 그래서 이 방식을 자기지도학습(self-supervised) 이라 부릅니다 — 데이터 스스로가 정답을 품고 있습니다.
sequenceDiagram
participant T as 훈련 텍스트
participant M as 모델
participant U as 다이얼 조정
T->>M: "오늘 날씨가 참 ___" 보여줌
M->>M: 다음 토큰 예측: "춥다"(틀림)
T->>M: 실제 정답은 "좋네요"
M->>U: 예측과 정답의 차이 계산
U->>M: 차이를 줄이도록 다이얼 미세 조정
Note over T,U: 이 과정을 수조 번 반복
비유 — 가림판으로 하는 받아쓰기 연습
학생에게 문장을 보여주되 다음 단어를 가리고 맞히게 합니다. 틀리면 정답을 보여주고 다시. 수조 번 반복하면, 학생은 단어 빈도뿐 아니라 문법·사실·문체·논리 구조까지 패턴으로 흡수합니다.
이 비유가 깨지는 곳: 학생은 "이건 시험 공부"라는 의도를 갖지만, 모델에겐 의도가 없습니다. 단지 예측 오차를 줄이는 수학적 조정이 자동으로 일어날 뿐입니다.
사전학습이 끝난 모델을 기본 모델(base model) 이라 부릅니다. 이 모델은 텍스트의 패턴을 풍부하게 알지만, 아직 "조수"는 아닙니다. 질문을 던지면 답하는 대신 질문을 이어서 쓰려 들 수도 있습니다. 자기가 본 텍스트의 흐름을 이어가는 데만 익숙하기 때문입니다.
4.2 파라미터가 "지식"을 담는다는 것의 의미
사전학습을 거치며 흡수한 패턴은 어디에 저장될까요? 답은 파라미터(다이얼들) 그 자체입니다. 별도의 사실 목록이나 데이터베이스가 있는 게 아니라, 수십억~수조 개의 숫자 값 안에 지식이 분산되어 녹아듭니다.
연구자들은 사실적 지식이 모델 내부, 특히 피드포워드 층 같은 곳에 일종의 "키-값 기억"처럼 저장된다는 단서를 찾고 있습니다. 다만 그 메커니즘이 완전히 규명된 건 아닙니다. 확실한 건, 지식이 사람의 기억처럼 "한 칸에 한 사실"로 깔끔히 들어 있지 않고, 수많은 파라미터에 뭉개져 분산되어 있다는 점입니다.
비유 — 물에 녹은 설탕
설탕을 물에 녹이면 어느 한 곳에 "설탕 알갱이"로 남지 않고 물 전체에 퍼집니다. 단맛(지식)은 분명히 거기 있지만, 한 점을 짚어 "여기 설탕"이라 할 수 없습니다.
이 비유가 깨지는 곳: 설탕물은 어디를 떠도 균일하게 달지만, 모델의 지식은 균일하지 않습니다. 어떤 사실은 진하게, 어떤 사실은 흐릿하게 분산되어 있어, 잘 알려진 건 또렷이 답하고 드문 건 뭉개거나 지어냅니다.
이 "분산 저장"이라는 성질이 LLM의 여러 특징을 설명합니다.
| 성질 | 왜 그런가 |
|---|---|
| 출처를 못 댄다 | 사실이 특정 문서가 아니라 파라미터 전체에 녹아 있어, "어디서 봤는지" 추적 장치가 없습니다. |
| 자신 있게 틀린다 | 저장된 사실을 조회하는 게 아니라 패턴으로 재구성하기에, 그럴듯한 거짓을 만들 수 있습니다(6부). |
| 잘 아는 것과 모르는 것의 편차가 크다 | 데이터에 많이 등장한 건 또렷이, 드문 건 흐릿하게 들어 있습니다. |
🔬 더 깊이 — 지식 컷오프와 재학습 비용
파라미터에 담긴 지식은 학습에 쓴 데이터의 시점에 묶입니다. 이것이 지식 컷오프(knowledge cutoff) 입니다. 매일 새 정보가 쏟아지지만, 모델을 통째로 다시 학습시키는 데는 막대한 비용과 에너지가 들고, 새 데이터를 무리하게 추가하면 기존에 익힌 것을 잃는 재앙적 망각(catastrophic forgetting) 위험도 있습니다. 그래서 큰 모델의 갱신은 드물게, 새 버전 출시 형태로 이뤄집니다. 컷오프 이후의 정보는 검색·도구를 붙여서 메웁니다(7부).
4.3 사후학습 — 패턴 흡수기를 조수로 바꾸기
기본 모델은 똑똑하지만 다루기 어렵습니다. 그래서 사후학습(post-training) 으로 "사람 말을 잘 따르고, 도움이 되고, 해롭지 않은" 조수로 다듬습니다. 보통 두 단계로 나뉩니다.
① 지시 미세조정 (SFT)
지시 미세조정(instruction tuning, SFT) 은 "이런 질문엔 이렇게 답하는 게 좋다"는 모범 예시(질문-답 쌍)를 모아, 그걸 흉내 내도록 추가 학습시키는 단계입니다. 흥미롭게도 이 단계도 기술적으로는 여전히 "다음 토큰 맞히기"입니다. 다만 학습 데이터가 "지시 → 좋은 응답" 형식의 잘 다듬어진 예시라는 점이 다릅니다. 이 과정을 거치면 모델은 질문을 이어 쓰는 대신 답하는 법을 익힙니다.
비유 — 박식한 사람에게 면접 예절을 가르치기
온갖 책을 읽어 아는 건 많지만 대화 매너가 없는 사람에게, "이렇게 물으면 이렇게 답하라"는 모범 대화 수백~수천 개를 보여줍니다. 그는 곧 질문에 또박또박 답하는 법을 익힙니다.
이 비유가 깨지는 곳: 사람은 몇 번만 봐도 요령을 잡지만, 모델은 여전히 통계적 흉내이지 "예절의 이유"를 이해하는 건 아닙니다.
② 인간 선호 정렬 (RLHF류)
다음으로, 모델의 답을 사람의 선호에 맞춰 더 다듬습니다. 대표적 방법이 RLHF(인간 피드백 기반 강화학습, Reinforcement Learning from Human Feedback) 입니다.
직관은 이렇습니다. 같은 질문에 모델이 여러 답을 내놓으면, 사람(또는 사람 선호를 학습한 별도의 "보상 모델")이 어느 답이 더 나은지 비교해 점수를 매깁니다. 모델은 더 선호되는 답이 나오는 방향으로 다이얼을 조정합니다.
flowchart TB
Q["질문 하나"] --> A1["답 A"]
Q --> A2["답 B"]
A1 --> H["사람/보상 모델:<br/>어느 쪽이 더 나은가?"]
A2 --> H
H -->|"A가 더 좋음"| UP["A 같은 답이 잘 나오도록<br/>다이얼 조정"]
classDef q fill:#fff3b0,stroke:#e0a800,color:#000
classDef ans fill:#a8e6e2,stroke:#2ba89e,color:#000
classDef judge fill:#d8b4f8,stroke:#8b5cf6,color:#000
classDef up fill:#b9f6ca,stroke:#2e9e5b,color:#000
class Q q
class A1,A2 ans
class H judge
class UP up
비유 — 글쓰기 코치의 피드백
제자가 같은 주제로 두 편을 써 오면, 코치가 "이쪽이 더 명확하고 친절하다"고 짚어 줍니다. 제자는 그 피드백을 반영해 점점 코치가 선호하는 방향으로 씁니다.
이 비유가 깨지는 곳: 코치는 "왜 좋은지"의 기준을 의식하지만, 모델은 선호 신호를 따라 통계적으로 조정될 뿐입니다. 또 "선호"는 그 피드백을 준 사람들의 기준이라, 그들의 가치관·편향이 모델에 스며들 수 있습니다.
흔한 오해 깨기
흔히들 "RLHF로 모델이 진실을 말하도록 훈련된다"고 생각하지만, 실제로는 RLHF는 사람이 선호하는 답을 내도록 다듬는 것이지 참인 답을 보장하지 않습니다. 그럴듯하고 듣기 좋지만 틀린 답이 높은 선호를 받을 수도 있습니다. 이 간극도 환각(6부)과 이어집니다.
🔬 더 깊이 — RLHF의 사촌들
RLHF는 보상 모델을 따로 두고 강화학습으로 정책을 최적화하는데, 과정이 복잡하고 불안정할 수 있습니다. 그래서 더 간단·안정적인 대안들이 널리 쓰입니다. 예컨대 DPO(Direct Preference Optimization, 직접 선호 최적화) 는 별도 보상 모델 없이 선호 데이터로 직접 최적화합니다. 이 분야는 활발히 연구 중이며, 어떤 사후학습 조합이 최선인지는 아직 정설이 없는 열린 문제입니다.
4.4 왜 학습 데이터의 시점·편향이 모델에 남는가
마지막으로 중요한 점. 모델은 학습 데이터를 거울처럼 비춥니다. 데이터에 든 것이 그대로, 때로는 증폭되어 모델에 남습니다.
시점: 4.2에서 본 지식 컷오프 때문에, 모델은 학습 시점의 세상만 압니다. 과거엔 맞았지만 지금은 틀린 정보(바뀐 가격·규정·직책 등)를 자신 있게 말할 수 있습니다.
편향: 학습 데이터(주로 인터넷 텍스트)에는 사실뿐 아니라 의견·고정관념·차별·오류가 섞여 있습니다. 모델은 무엇이 공정하고 참인지 판별하지 못한 채 이런 패턴까지 흡수하고, 때로는 더 강하게 드러냅니다. 사후학습으로 일부 완화하지만 완전히 없애기는 어렵습니다.
비유 — 읽은 모든 것을 흡수한 학생
도서관의 모든 글을 읽은 학생은 정확한 지식도, 그 시대의 편견과 오류도 함께 흡수합니다. "어떤 글이 옳은가"를 가려 읽은 게 아니기 때문입니다.
이 비유가 깨지는 곳: 학생은 나중에 "그건 편견이었다"고 스스로 교정할 수 있지만, 모델의 교정은 사람이 사후학습으로 개입해야 일어나며 그마저 부분적입니다.
이것이 6부에서 다룰 편향·안전 문제의 뿌리입니다. 문제의 상당 부분이 모델의 "악의"가 아니라, 데이터를 반영하는 학습 방식 자체에서 나옵니다.
4부 요약
- 사전학습: 방대한 텍스트로 "다음 토큰 맞히기"를 수조 번 반복해 세상의 패턴을 흡수합니다. 정답이 데이터에 내장돼 있어 자기지도학습이라 부릅니다.
- 그 결과물인 기본 모델은 패턴은 알지만 아직 지시를 따르는 조수는 아닙니다.
- 지식은 별도 DB가 아니라 파라미터에 분산 저장됩니다(설탕물 비유). 이것이 출처 부재·자신 있는 오류·지식 편차를 설명합니다.
- 사후학습으로 조수가 됩니다: 모범 예시를 흉내 내는 지시 미세조정(SFT), 사람 선호로 다듬는 RLHF류(DPO 등 변형 다수, 열린 연구 주제).
- RLHF는 선호를 맞출 뿐 진실을 보장하지 않습니다.
- 모델은 학습 데이터의 시점(지식 컷오프)과 편향을 그대로, 때론 증폭해 반영합니다 — 6부 한계의 뿌리입니다.
이제 모델이 어떻게 만들어지는지 봤습니다. 다음 부에서는 완성된 모델이 실제로 답을 만들어내는 순간, 즉 추론(생성) 을 다룹니다.
← 3부 어텐션과 트랜스포머 · 목차 · 다음: 5부 추론(생성) →