검색
← 모듈 로드맵

LLM 사전학습: 데이터 · 목표 · 학습 과정 한눈에

강의 · 준전문가 · KAITABASE 정리

원제 · Language Model Pretraining (Stanford CS336 참고)

데이터 정제 · 배합 · 패킹부터 학습 설정 · 6ND 연산량까지 LLM 사전학습 전체를 정리하는 수업

먼저 알아야 할 것

토크나이저인과 언어 모델트랜스포머 파라미터 수학습률과 옵티마이저

다루는 내용

웹 글이 사전학습 데이터가 되는 과정(추출 · 언어 식별 · 품질 필터 · 중복 제거 · 배합 · 패킹)과 학습 설정(AdamW · 워밍업 · 코사인 스케줄)을 다룹니다. GPT-3 · LLaMA 배합 표로 에폭을 계산하고, 6ND로 GPT-3 연산량을 논문 값과 맞춰 보며, 기반 모델과 후속 학습의 관계를 정리합니다.

해설

LLM 사전학습: 데이터 · 목표 · 학습 과정 한눈에

대형 언어 모델의 능력 대부분은 사전학습(pretraining) 에서 생깁니다. 웹 · 책 · 코드 같은 거대한 글 묶음을 모아 정제하고, 토큰으로 바꿔, "다음 토큰 맞히기"를 수천억~수조 번 반복합니다. 이 수업에서는 데이터 수집부터 중복 제거 · 품질 필터 · 데이터 배합, 학습 설정(옵티마이저 · 학습률 스케줄 · 배치), 학습량 계산(6ND), 그리고 사전학습이 끝난 '기반 모델'이 대화형 모델과 어떻게 다른지까지 한 번에 정리합니다.

항목내용
참고 출처Stanford CS336 「Language Modeling from Scratch」 · GPT-3(arXiv 2005.14165) · LLaMA(arXiv 2302.13971) · Llama 2(arXiv 2307.09288) · 중복 제거 연구(arXiv 2107.06499) · FineWeb(arXiv 2406.17557)
트랙 · 수준NLP·트랜스포머 · 중급
이 수업이 다루는 범위사전학습 데이터 파이프라인, 중복 제거, 데이터 배합 · 에폭, 패킹, 학습 목표, 옵티마이저 · 스케줄, 학습량 계산, 기반 모델과 후속 학습

들어가기 전에

한눈에 보기

  • 원시 웹 글이 학습 데이터가 되기까지의 단계(추출 → 언어 식별 → 품질 필터 → 중복 제거 → 토큰화 → 배합)를 압니다.
  • 중복 제거가 왜 품질과 암기 문제 모두에 중요한지 원 논문 수치로 확인합니다.
  • GPT-3 · LLaMA의 데이터 배합 표를 읽고 '에폭'을 계산할 수 있습니다.
  • 학습량 C≈6NDC\approx6ND 로 GPT-3 학습 연산량을 직접 계산해 논문 값과 맞춰 봅니다.
  • 기반 모델과 지시 따르기 모델의 차이, 그 사이에 무엇이 더해지는지 압니다.

1. 전체 흐름

직관(해설용 비유). 사전학습은 "도서관 전체를 읽히는 일"이고, 데이터 파이프라인은 "읽힐 책을 고르고 파본 · 중복본을 빼는 사서의 일"입니다. 모델 구조보다 이 사서 일이 결과를 더 크게 좌우하는 경우가 많다는 것이 최근 연구들의 공통된 교훈입니다.

mermaid
flowchart LR
  A[웹 크롤 · 책 · 코드 · 논문] --> B[본문 추출<br/>HTML 정리]
  B --> C[언어 식별]
  C --> D[품질 · 유해성 필터]
  D --> E[중복 제거<br/>정확 · 유사]
  E --> F[토큰화]
  F --> G[출처별 배합 비율]
  G --> H[긴 줄로 이어 붙여<br/>고정 길이로 자르기]
  H --> I[다음 토큰 예측 학습]
  I --> J[기반 모델]
  J --> K[지시 미세조정 · 선호 학습]

2. 데이터: 모으고 거르기

① 수집과 추출. 공개 웹 크롤(Common Crawl)이 가장 큰 원천입니다. FineWeb 논문은 Common Crawl이 2007년부터 계속 웹 스냅숏을 만들어 왔다고 소개하고, 96개 스냅숏에서 15조(15T) 토큰 규모의 FineWeb 데이터셋을 만들었습니다. HTML에서 메뉴 · 광고를 빼고 본문만 뽑는 '추출' 단계부터 품질 차이가 납니다.

② 언어 식별. 문서마다 어떤 언어인지 분류합니다. FineWeb 논문이 정리한 기존 파이프라인들도 fastText 기반 언어 분류기를 널리 썼습니다.

③ 품질 필터. 너무 짧거나, 같은 줄이 반복되거나, 기호 비율이 이상한 문서를 규칙으로 거르고, 위키백과 같은 '좋은 글'과 비슷한지를 분류기로 점수 매겨 거르기도 합니다. 개인정보 · 유해 콘텐츠도 이 단계에서 줄입니다.

④ 중복 제거. Lee 외(2021)는 기존 언어 모델 데이터셋에 거의 같은 문서와 긴 반복 문자열이 많아서, 그 데이터로 학습한 모델이 프롬프트 없이 내놓는 출력의 1% 이상이 학습 데이터를 그대로 복사한 것이라고 보고했습니다. C4에서는 61단어짜리 영어 문장 하나가 6만 번 넘게 반복되어 있었습니다. 중복을 제거하자 암기된 글을 내놓는 빈도가 10분의 1로 줄었고, 같은 성능에 필요한 학습 단계도 줄었습니다.

  • 정확 중복: 문서나 긴 부분 문자열이 글자 그대로 같은 것. 해시로 찾습니다.
  • 유사 중복: 날짜 · 광고만 다른 거의 같은 문서. MinHash 같은 근사 기법으로 찾습니다.

왜 이렇게까지 하나. 같은 글을 여러 번 보면 모델은 그 글을 외우는 데 용량을 쓰고, 평가 데이터가 학습 데이터에 섞이면 점수가 부풀려집니다(데이터 오염, LLM 평가 수업). 중복 제거는 효율 · 일반화 · 평가 신뢰성 모두에 영향을 줍니다.

3. 데이터 배합과 에폭

출처마다 품질과 양이 다르므로, 어떤 비율로 섞어 보여 줄지 를 정합니다. 질 좋은 작은 출처는 여러 번, 크고 거친 출처는 한 번 미만으로 봅니다.

GPT-3의 배합(원 논문 표 2.2).

출처토큰 수학습 배합 비중3,000억 토큰 학습 시 본 횟수(에폭)
Common Crawl(필터링)4,100억60%0.44
WebText2190억22%2.9
Books1120억8%1.9
Books2550억8%0.43
Wikipedia30억3%3.4

숫자로 해 보기. Common Crawl은 전체 3,000억 토큰 중 60%인 1,800억 토큰을 차지합니다. 데이터가 4,100억 토큰이므로 1800/4100≈0.441800/4100\approx0.44, 표의 에폭과 맞습니다. 반면 위키백과는 30억 토큰밖에 없는데 3%를 배정받아 3번 넘게 반복됩니다. (논문은 비중을 '예제 수' 기준이라고 적고 있어, 다른 행은 이렇게 단순 계산하면 표와 조금 다를 수 있습니다.)

LLaMA의 배합(원 논문 표 1). CommonCrawl 67.0%, C4 15.0%, GitHub 4.5%, 위키백과 4.5%, 책 4.5%, arXiv 2.5%, StackExchange 2.0%. 공개된 데이터만으로 구성했고, 가장 큰 모델들(33B · 65B)을 약 1.4조(1.4T) 토큰으로 학습했습니다. 웹 글이 대부분이지만 코드 · 논문 · 질의응답 사이트도 일부러 섞었다는 점이 눈에 띕니다.

4. 토큰을 학습 예제로: 패킹

문서 길이는 제각각입니다. 문서마다 따로 넣으면 짧은 문서 뒤가 빈칸(패딩)으로 낭비됩니다. 그래서 문서들을 끝 표시 토큰을 사이에 두고 길게 이어 붙인 뒤, 고정 길이(문맥 길이)로 잘라 학습 예제를 만듭니다. 이것을 패킹(packing)이라고 합니다.

숫자로 해 보기(해설용). 문맥 길이 2,048이면 1.4조 토큰은 약 1.4×1012/2048≈6.81.4\times10^{12}/2048\approx6.8 억 개 예제가 됩니다. Llama 2는 전역 배치 크기를 400만 토큰으로 두었으니, 문맥 4,096 기준 한 번의 업데이트에 약 1,000개 예제가 들어가는 셈입니다(4M ÷ 4,096 ≈ 977).

5. 학습 목표와 설정

목표. 디코더 LLM은 모든 위치에서 다음 토큰을 맞히는 인과 언어 모델 손실 하나만 씁니다.

L(θ)=−1N∑tln⁡Pθ(xt∣x<t)\mathcal{L}(\theta)=-\frac{1}{N}\sum_{t}\ln P_\theta(x_t\mid x_{<t})

설정의 예(Llama 2 논문). AdamW 옵티마이저(β1=0.9\beta_1=0.9, β2=0.95\beta_2=0.95, ϵ=10−5\epsilon=10^{-5}), 2,000단계 워밍업 뒤 코사인 스케줄로 최고 학습률의 10%까지 감소, 가중치 감쇠 0.1, 기울기 클리핑 1.0.

설정무엇을 하나왜
워밍업처음 수천 단계 동안 학습률을 0 근처에서 서서히 올림초기의 큰 기울기로 학습이 망가지는 것을 막음
코사인 감소이후 학습률을 코사인 곡선 모양으로 천천히 줄임후반에 작은 보폭으로 세밀하게 수렴
가중치 감쇠매 단계 가중치를 조금씩 0 쪽으로 당김과적합 · 가중치 폭주 억제
기울기 클리핑기울기 크기가 문턱을 넘으면 줄임가끔 튀는 손실 급등(스파이크) 완화

학습률 스케줄 숫자로 해 보기(해설용). 최고 학습률 3×10−43\times10^{-4}, 워밍업 2,000단계라면 1,000단계째 학습률은 1.5×10−41.5\times10^{-4} 이고, 학습 끝에는 3×10−53\times10^{-5}(10%)가 됩니다.

6. 학습량 계산: C ≈ 6ND

직관. 토큰 하나를 학습할 때 파라미터 하나당 곱셈-덧셈이 순전파에서 약 2번, 역전파에서 약 4번 일어납니다. 그래서 전체 연산량은 대략 "6 × 파라미터 수 × 학습 토큰 수"입니다(자세한 유도는 스케일링 법칙과 연산 예산).

기호뜻
CC학습 전체 부동소수점 연산 수(FLOPs)
NN파라미터 수
DD학습 토큰 수

숫자로 해 보기. GPT-3 175B: 6×1.75×1011×3×1011=3.15×10236\times1.75\times10^{11}\times3\times10^{11}=3.15\times10^{23}. 논문 부록의 계산값은 3.14×10233.14\times10^{23} FLOPs로 거의 같습니다.

해설용 예. 10억(1B) 파라미터 모델을 200억(20B) 토큰으로 학습하면 C=6×109×2×1010=1.2×1020C=6\times10^9\times2\times10^{10}=1.2\times10^{20}. 실제로 초당 101410^{14} 번 연산을 해내는 가속기 한 대(가정)라면 1.2×1061.2\times10^{6} 초, 약 14일입니다. 토큰 수를 파라미터의 약 20배로 잡은 이유는 친칠라 연구(Chinchilla)에서 다룹니다.

7. 기반 모델 다음에 오는 것

사전학습만 마친 기반 모델(base model) 은 "그럴듯한 다음 글"을 이어 쓸 뿐, 질문에 답하라는 지시를 따르도록 배운 적은 없습니다. 질문을 넣으면 답 대신 비슷한 질문을 더 늘어놓기도 합니다. 그래서 뒤에 단계가 더해집니다.

  1. 지시 미세조정(SFT): 사람이 쓴 '지시 → 좋은 답' 예시로 추가 학습 → 미세조정 수업
  2. 선호 학습(RLHF · DPO): 두 답 중 어느 쪽이 나은지에 대한 선호로 학습 → 정렬 개요와 RLHF 파이프라인

사전학습에 쓰는 연산은 뒤 단계보다 훨씬 큽니다. 예를 들어 InstructGPT 논문은 175B 모델의 SFT에 4.9, PPO-ptx 학습에 60 페타플롭/초-일이 들었고, GPT-3 사전학습에는 3,640 페타플롭/초-일이 들었다고 비교합니다. 지식 · 언어 능력 대부분이 사전학습에서 생긴다는 점에서 "사전학습이 능력, 후속 학습이 태도"라고 단순화해 말하기도 합니다(해설용 요약).

연습 문제

  1. GPT-3 표에서 Books2의 에폭 0.43을 Common Crawl처럼 확인해 보세요.
    • 풀이: 0.08×3000=2400.08\times3000=240 억 토큰 ÷ 550억 ≈ 0.44. 표의 0.43과 거의 같습니다(비중이 반올림된 값이라 약간 차이).
  2. 70억(7B) 파라미터 모델을 2조(2T) 토큰으로 학습하는 연산량은?
    • 풀이: 6×7×109×2×1012=8.4×10226\times7\times10^9\times2\times10^{12}=8.4\times10^{22} FLOPs입니다.
  3. 데이터에 같은 문서가 1만 번 들어 있으면 어떤 문제가 생기나요?
    • 풀이: 모델이 그 문서를 외워 그대로 출력할 가능성이 커지고(암기 · 저작권 · 개인정보 위험), 그만큼 다른 글을 배울 학습량이 낭비됩니다.
  4. 최고 학습률 2×10−42\times10^{-4}, 워밍업 2,000단계일 때 500단계째 학습률은? (선형 워밍업 가정)
    • 풀이: 2×10−4×500/2000=5×10−52\times10^{-4}\times500/2000=5\times10^{-5} 입니다.

스스로 점검

  1. 패킹을 하지 않으면 무엇이 낭비되나요?
    • 답: 짧은 문서 뒤를 채우는 패딩 토큰 계산입니다. 패킹하면 모든 위치가 실제 토큰이라 연산이 낭비되지 않습니다.
  2. 질 좋은 작은 출처를 여러 에폭 보여 주는 이유와 위험은?
    • 답: 품질 높은 글의 영향을 키우려는 것입니다. 너무 많이 반복하면 그 글을 외우는 과적합 위험이 생깁니다.
  3. 기반 모델에 "회의록을 요약해 줘"라고 하면 왜 엉뚱한 글이 나올 수 있나요?
    • 답: 지시를 따르는 법이 아니라 '그럴듯하게 이어 쓰기'만 배웠기 때문입니다. 지시 미세조정과 선호 학습이 이 차이를 메웁니다.

용어 정리

용어쉬운 뜻
사전학습대량의 글로 다음 토큰 예측을 학습하는 첫 단계
Common Crawl공개 웹 크롤 데이터 모음
중복 제거같거나 거의 같은 문서 · 문자열을 빼는 작업
데이터 배합출처별로 학습에 보여 줄 비율
에폭데이터 전체를 한 번 다 보는 단위
패킹문서를 이어 붙여 고정 길이로 잘라 빈칸 없이 학습 예제를 만드는 것
워밍업 · 코사인 스케줄학습률을 처음에 올리고 이후 코사인 모양으로 줄이는 방식
FLOPs부동소수점 연산 수. 학습 비용의 단위
기반 모델사전학습만 마친, 지시를 따르도록 다듬기 전의 모델

더 깊이 보려면

다음에 볼 것

라이선스

본문은 KAITABASE 자체 해설입니다. 표의 수치는 GPT-3 · LLaMA · Llama 2 · 중복 제거 · FineWeb 원 논문에서 확인한 값만 옮겼고, '해설용'이라고 밝힌 계산 예는 이 수업을 위해 만든 것입니다.

출처

AI 원리부터 이해하기 · NLP·트랜스포머 모듈

NLP·트랜스포머 모듈 학습

이 글은 NLP·트랜스포머 모듈의 학습 자료입니다. 전체 23개 자료 중 19번째입니다.

AI 기초 과정은 현재 진도 저장을 지원하지 않습니다.

출처·원문

원문 보기

요약만

본문 자체 작성 · 참고 자료 Stanford CS336 · arXiv 원 논문