Recent Posts
Recent Comments
반응형
«   2025/11   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
Archives
Today
Total
관리 메뉴

오늘도 공부

CS 336: 언어 모델을 밑바닥부터 만들기 - 강의 요약 본문

AI

CS 336: 언어 모델을 밑바닥부터 만들기 - 강의 요약

행복한 수지아빠 2025. 10. 29. 11:04
반응형

 

 

CS 336: 언어 모델을 밑바닥부터 만들기 - 강의 요약

스탠퍼드 대학의 CS 336 강좌는 언어 모델을 처음부터 끝까지 직접 구현하며 배우는 과정입니다. Percy Liang 교수와 Tatsu Hashimoto 교수가 공동으로 진행하는 이 강의는 AI 연구자들이 기술의 근본을 이해하도록 돕기 위해 만들어졌습니다.

왜 이 강의가 필요한가?

현재 AI 연구는 위기를 맞고 있습니다. 연구자들이 점점 더 기술의 근본에서 멀어지고 있기 때문입니다.

  • 8년 전: 연구자들이 직접 모델을 구현하고 학습
  • 6년 전: BERT 같은 모델을 다운로드해서 파인튜닝
  • 현재: 많은 사람들이 그냥 프롬프트만 작성

프롬프팅이 나쁜 것은 아니지만, 추상화 계층만 사용하다 보면 근본적인 연구를 수행하기 어렵습니다. 데이터, 시스템, 모델을 함께 설계하는 능력이 필요합니다.

현실적인 제약

GPT-4는 1.8조 개의 파라미터를 가지고 있으며 학습에 1억 달러가 들었다고 합니다. xAI는 20만 개의 H100 GPU 클러스터를 구축하고 있습니다.

하지만 걱정하지 마세요. 이 강의에서는 작은 언어 모델을 만듭니다. 규모는 작지만, 다음 세 가지를 배울 수 있습니다:

  1. 메커니즘 (Mechanics): 트랜스포머가 무엇인지, 모델 병렬화가 어떻게 GPU를 효율적으로 활용하는지
  2. 사고방식 (Mindset): 하드웨어를 최대한 활용하고 스케일링을 진지하게 받아들이는 태도
  3. 직관 (Intuitions): 어떤 데이터와 모델링 결정이 좋은 모델로 이어지는지 (부분적으로만 전달 가능)

Bitter Lesson의 올바른 해석

"스케일만 중요하고 알고리즘은 중요하지 않다"는 것이 아닙니다. 올바른 해석은:

"스케일에서의 알고리즘이 중요하다"

모델의 정확도 = 효율성 × 투입 자원

실제로 OpenAI 같은 곳은 수억 달러를 쓰기 때문에 우리보다 훨씬 더 효율적으로 운영합니다. 2012년부터 2019년까지 ImageNet 학습의 알고리즘 효율성은 44배 향상되었습니다. 이는 무어의 법칙보다 빠릅니다.

강의 구성: 5개 과제

Assignment 1: 기초 (Basics)

  • BPE 토크나이저 구현
  • 트랜스포머, Cross-Entropy Loss 구현
  • AdamW 옵티마이저와 학습 루프 작성
  • 리더보드: OpenWebText 퍼플렉시티 최소화 (H100에서 90분)

주의: 첫 번째 과제만으로 CS 224n의 모든 과제와 파이널 프로젝트를 합친 것과 비슷한 작업량입니다.

Assignment 2: 시스템 (Systems)

  • 커널 최적화: Triton으로 커스텀 커널 작성
  • 병렬화: 데이터 병렬화, FSDP 구현
  • 추론 최적화: Speculative decoding

GPU는 거대한 공장과 같습니다. 메모리는 창고이고, 컴퓨트는 공장입니다. 가장 큰 병목은 데이터 이동 비용입니다.

Assignment 3: 스케일링 법칙 (Scaling Laws)

  • 작은 규모에서 실험을 수행
  • 큰 규모에서의 하이퍼파라미터와 손실 예측
  • Chinchilla 최적화: 모델 크기 N에 대해 20N 토큰으로 학습
  • 예: 14억 파라미터 모델 → 280억 토큰 학습

FLOPs 예산이 주어지면, 여러 모델을 학습시켜 데이터를 수집하고, 스케일링 법칙을 피팅한 후, 더 큰 규모에서 최적의 하이퍼파라미터를 예측합니다.

Assignment 4: 데이터 (Data)

  • 평가 방법: 퍼플렉시티, MMLU 같은 표준화된 테스트
  • 데이터 큐레이션:
    • Common Crawl 원시 덤프 처리
    • HTML → 텍스트 변환
    • 필터링 (고품질 데이터 확보, 유해 콘텐츠 제거)
    • 중복 제거
  • 리더보드: 토큰 예산 내에서 퍼플렉시티 최소화

중요: "인터넷에서 학습시킨다"는 말은 의미가 없습니다. 데이터는 항상 적극적으로 수집되어야 합니다. Common Crawl의 대부분은 스팸 사이트입니다!

Assignment 5: 정렬 (Alignment)

베이스 모델은 "다음 토큰 완성"만 할 수 있습니다. 정렬은 모델을 유용하게 만드는 과정입니다:

  • Supervised Fine-Tuning (SFT): 사용자-어시스턴트 대화 쌍으로 학습
  • 선호도 학습: DPO (Direct Preference Optimization) 구현
  • 강화 학습: GRPO (Group Relative Preference Optimization)

토크나이제이션 깊게 살펴보기

실패한 시도들

  1. 문자 기반: 유니코드 코드포인트 사용
    • 문제: 희귀 문자가 많아 어휘가 비효율적 (12만+ 크기)
  2. 바이트 기반: UTF-8 바이트 사용
    • 문제: 압축률 1.0, 시퀀스가 너무 길어짐
  3. 단어 기반: 정규표현식으로 분할
    • 문제: 어휘 크기 무한대, UNK 토큰 필요

BPE (Byte Pair Encoding) - 1994년의 해법

Philip Gage가 데이터 압축을 위해 개발한 알고리즘입니다. 핵심 아이디어:

1. 텍스트를 바이트 시퀀스로 변환
2. 가장 자주 나타나는 인접한 토큰 쌍을 반복적으로 병합
3. 새로운 토큰을 생성하여 어휘에 추가

예시: "the cat and the hat"

  • 초기: [116, 104, 101, 32, 99, 97, 116, ...]
  • 1차 병합: (116, 104) → 256 // "th"
  • 2차 병합: (256, 101) → 257 // "the"
  • 3차 병합: (257, 32) → 258 // "the "

압축률: GPT-2 토크나이저는 약 1.6바이트/토큰

핵심 원칙: 효율성

모든 설계 결정은 효율성을 중심으로 이루어집니다:

  • 데이터 처리: 나쁜 데이터에 컴퓨트 낭비 방지
  • 토크나이제이션: 바이트 모델은 우아하지만 비효율적
  • 모델 아키텍처: 트랜스포머의 모든 변형은 효율성 개선
  • 학습: 대부분 단일 에폭 (더 많은 데이터를 빨리 보기 위해)
  • 스케일링 법칙: 적은 컴퓨트로 하이퍼파라미터 결정

현재 vs 미래

현재: 컴퓨트 제약

  • 데이터는 많지만 GPU는 부족
  • 단일 에폭 학습
  • 공격적인 필터링

미래: 데이터 제약

  • 프론티어 랩들은 이미 데이터 부족
  • 다중 에폭 학습 가능
  • 완전히 다른 아키텍처 등장 가능

강의의 가치

이 강의는 다음과 같은 분들에게 적합합니다:

✅ 작동 원리를 원자 단위까지 이해하고 싶은 강박이 있는 분

✅ 연구와 엔지니어링 능력을 레벨업하고 싶은 분

✅ 대규모 ML 시스템 구축에 능숙해지고 싶은 분

마치며

모든 강의 자료와 과제는 온라인에 공개되어 있으며, 강의 영상도 YouTube에 업로드됩니다. Together AI가 H100 클러스터를 제공하여 학생들이 실제로 모델을 학습시킬 수 있습니다.

"이해하려면 직접 만들어야 한다"는 철학으로, CS 336은 언어 모델의 모든 것을 밑바닥부터 구축하는 여정을 제공합니다.

반응형