목록으로

Stanford CME295 Transformers & LLMs | Autumn 2025 | Lecture 1 - Transformer

Stanford Online AI 요약 생성: January 24, 2026

CME 295: Transformers & Large Language Models – 오리엔테이션 및 기초 NLP 정리

Executive Summary

CME 295는 Transformer와 LLM(대형 언어 모델) 을 중심으로 NLP 전반을 다루는 2유닛 스탠포드 강의로, 이론(Transformer·Attention·언어 모델링)과 실전 LLM 활용을 함께 목표로 한다. 수업은 기본 ML/선형대수 배경을 전제로 하며, 중간·기말 2회 시험(코딩 없음) 으로만 성적을 평가한다.

Key Takeaways

  • 강의 개요
    • 과목명: CME 295 – Transformers and Large Language Models
    • 담당: Afshine & Shervine (쌍둥이 형제, Uber·Google·Netflix LLM 실무 경험)
    • 배경: 2020년부터 NLP 워크샵 → 2023/24부터 스탠포드 정식 과목
  • 수강 대상
    • LLM/NLP를 연구·산업 커리어로 삼고 싶은 학생
    • LLM 기반 개인 프로젝트를 하고 싶은 학생
    • 비전공이지만 자신의 도메인에 LLM/GenAI를 적용해 보고 싶은 사람
  • 선수 지식
    • 기본 ML 개념: 모델 학습 과정, 신경망이 무엇인지
    • 기본 선형대수: 특히 행렬 곱 개념
  • 운영 및 평가
    • 시간: 매주 금요일 3:30–5:20, 녹화 제공
    • 학점: 2 units, Letter Grade 또는 Credit/No Credit
    • 과제 없음, 시험 2개만:
      • 중간: 10월 24일(5주차), 기말: 12월 8일 전후(날짜 추후 공지)
      • 코딩 문제 없음, 수업·슬라이드·개념 중심
      • 성적 비중: 중간 50% + 기말 50%
      • 기말은 후반부 내용 위주로 출제 예정
  • 자료 및 커뮤니케이션
    • 슬라이드·녹화·실라버스: 과목 웹사이트 + Canvas 링크
    • 교재: “Super Study Guide – Transformer LLMs”
    • 요약 자료: VIP Cheat Sheet (GitHub, 다국어 번역)
    • 공지: Canvas, 질문: Canvas의 Ed 탭, 이메일/메일링리스트
  • 수업 핵심 내용
    • NLP 주요 태스크 3분류: 분류 / 다중-분류 / 생성
    • 토크나이제이션: Word / Subword / Character 수준 비교
    • 임베딩: One-hot 한계, Word2vec (CBOW, Skip-gram), 코사인 유사도
    • 시퀀스 모델: RNN, LSTM, 장기 의존성·Vanishing Gradient 문제
    • Attention 개념 도입: 과거 전체를 직접 참조
    • Transformer 구조:
      • Encoder–Decoder 구조
      • Self-Attention / Cross-Attention / Masked Self-Attention
      • Multi-Head Attention, Position Embedding, FFN
    • 학습 기법: Label Smoothing, Perplexity, BLEU/ROUGE 등

핵심 요약: 이 수업은 LLM이 ‘어떻게 작동하는지’(Transformer·Attention)와 ‘어떻게 학습·활용하는지’를 체계적으로 이해하게 하는 NLP·LLM 입문~중급 강의이다.


Detailed Summary

1. 강의·강사 소개 및 수업 목표

  • 강사 배경

    • Afshine & Shervine: 쌍둥이 형제
    • 학력:
      • Centrale Paris (프랑스 공대)
      • Afshine: MIT
      • Shervine: Stanford ICME 석사
    • 경력:
      • Uber → Google → Netflix에서 Large Language Models 관련 업무
    • 지난 수년간 NLP/LLM 워크샵 진행 → 수요 증가로 정식 과목 개설
  • 과목 목적

    • LLM이 “요즘 뜨는 도구”를 넘어서,
      1. Transformer 구조와 내부 메커니즘 이해
      2. LLM 학습 방법과 응용 분야 이해
    • 대상:
      • 연구자/ML Scientist 지망생
      • LLM 기반 애플리케이션/개인 프로젝트 개발자
      • 비전공 도메인에서 GenAI/LLM 적용 방향을 알고 싶은 사람
  • 수업 난이도·필요 배경

    • 기본 ML: 지도학습, 신경망 학습, 손실·역전파 개념
    • 기본 선형대수: 벡터·행렬, 행렬 곱
    • 기초가 완벽하지 않아도 수업에서 도움 제공

2. 수업 운영 및 평가 방식

  • 시간·형식

    • 매주 금요일 3:30–5:20, 같은 강의실
    • 강의 녹화: 매주 금요일 밤 또는 토요일에 업로드
    • 시간 충돌이 있어도 녹화 시청으로 대체 가능
  • 수강 형태

    • 2 units
    • Letter Grade 또는 Credit / No Credit 선택 가능
  • 평가

    • 과제(Homework): 없음
    • 시험 2회
      • Midterm: 5번째 수업(10/24)
      • Final: 12/8 주간, 정확한 날짜는 추후 공지
    • 출제 범위·유형
      • 코딩 문제 없음
      • 수업에서 다룬 개념·슬라이드 기반 이론 문제
      • 기말은 후반부 내용 중심으로 출제할 가능성 큼
    • 성적 비중
      • 중간고사 50%
      • 기말고사 50%
  • 자료·커뮤니케이션

    • 슬라이드 및 녹화:
      • 과목 웹사이트에 업로드
      • Canvas에도 링크 공유
    • 교재
      • Super Study Guide – Transformer LLMs
      • 강의 내용과 개념 대부분 포함
    • 요약 자료
      • VIP Cheat Sheet (GitHub 공개, 다국어 번역 제공)
      • 본인 언어가 없으면 제안 가능
    • 공지
      • Canvas에 공지
    • 질문 채널
      • Canvas의 Ed 탭에 질문 작성 → 강사들이 답변
      • 이메일/메일링리스트, 직접 연락도 가능
    • 질문이 녹화에 잘 안 들릴 수 있어, 강사가 질문을 반복해 말해 줄 예정
  • 수강 신청·대기자

    • 대기자 수: 대략 6명 정도
    • 시간표 조정·수강 취소 등으로 대부분 등록 가능할 것으로 예상
    • 여전히 대기 상태면 직접 강사에게 이야기할 것

3. NLP 전반 개관: 태스크와 지표

3.1 NLP(Natural Language Processing)의 세 가지 큰 범주

  1. 분류(Classification) – 텍스트 → 하나의 라벨

    • 예시:
      • 감성 분석: 영화 리뷰 → 긍/부/중립
      • Intent Detection: “내일 알람 설정해 줘” → intent = “알람 생성”
      • 언어 식별(Language Detection): 문장이 어느 언어인지 판별
      • 토픽 분류 등
    • 평가 지표:
      • Accuracy: 전체 중 맞춘 비율
      • Precision: 긍정이라고 예측한 것들 중 진짜 긍정 비율
      • Recall: 실제 긍정 중, 긍정으로 맞춘 비율
      • F1 Score: Precision·Recall의 조화 평균
    • 이유:
      • 클래스 불균형(예: 99%가 Positive)에서 Accuracy만 보면 오해 가능
        → Precision/Recall/F1이 중요
  2. 다중-분류(Multi-label / Token-level Classification) – 텍스트 → 여러 라벨

    • 대표 태스크:
      • Named Entity Recognition (NER):
        문장 속에서 인물, 장소, 시간, 조직명 등 엔티티 태깅
      • Part-of-Speech Tagging: 품사 태깅 (명사·동사·형용사 등)
      • 구문 분석(Dependency / Constituency Parsing) 등
    • 평가:
      • 토큰 단위, 엔티티 타입 단위로 Precision/Recall/F1 등 계산
  3. 생성(Generation) – 텍스트 → 텍스트 (길이 가변)

    • 예시:
      • 기계 번역 (Machine Translation): EN → FR/DE 등
      • 질의응답 / 대화형 모델: ChatGPT, Gemini와 같은 Assistant
      • 요약(Summarization): 문서·기사 요약
      • 코드·시·이야기 생성
    • 데이터:
      • 번역의 경우, 쌍(pair) 데이터 필요 (예: WMT, Europarl EN–FR/EN–DE)
    • 평가:
      • BLEU: 참조 번역과의 n-gram 겹침 정도(높을수록 좋음)
      • ROUGE: 요약·번역 품질 평가용 n-gram 기반 지표(역시 높을수록 좋음)
      • Perplexity:
        모델이 실제 텍스트에 얼마나 놀라는지(불확실한지) 측정
        낮을수록 좋음
    • 한계:
      • BLEU/ROUGE는 참조(reference) 문장 필요 → 라벨링 비용이 큼
      • LLM 발전 이후 Reference-free 평가(LLM-as-a-judge) 연구 활발

4. 텍스트 처리의 기초: 토크나이제이션과 임베딩

4.1 토크나이제이션(Tokenization)

  • 목표: 텍스트를 모델이 다룰 수 있는 최소 단위(token) 로 분해
  • 예시 문장: “a cute teddy bear is reading”

토크나이제이션 수준 비교

  1. Word-level

    • 공백 기준 단어 단위 분할
    • 장점:
      • 단순, 직관적
    • 단점:
      • 단어 변형이 모두 다른 토큰으로 취급
        • 예: “bear” vs “bears”, “run” vs “runs”
      • Out-of-Vocabulary(OOV) 문제 심각
        • 학습 시 보지 못한 단어는 [UNK] 토큰으로 처리해야 함
      • 유사 단어 간 관계를 임베딩으로 따로 배워야
  2. Subword-level

    • 단어를 더 작은 부분(어근·접두사·접미사) 단위로 분해
    • 예:
      • “bears” → “bear” + “s”
      • “running” → “run” + “ning” 등
    • 장점:
      • 어근 공유를 통해 유사 단어 간 의미 공유
      • 완전한 OOV는 줄어듦(새 단어도 서브워드 조합으로 표현 가능)
    • 단점:
      • 시퀀스 길이가 Word-level보다 길어짐
      • 시퀀스 길이는 곧 연산량과 메모리 사용량 증가로 직결
  3. Character-level

    • 문자 하나하나를 토큰으로 사용
    • 장점:
      • 오탈자·철자 변형·대소문자 차이에 강건
      • 이론적으로 OOV 없음
    • 단점:
      • 시퀀스 길이 극단적으로 길어짐
      • 문자 단위 임베딩은 의미 해석이 어렵고
        상위 구조(단어·구문)를 모델이 모두 학습해야 하므로 비용 큼

정리: 실전 LLM 대부분은 Subword-level 토크나이저를 사용해
의미·OOV·연산량을 균형 있게 맞춘다.

  • 어휘 크기(Vocabulary Size)
    • 단일 언어(예: 영어): 수만 개 규모
    • 다국어 + 코드 포함 LLM: 수십만 개 규모
    • 중국어 등은 문자 체계가 달라, 해당 문자 기반 subword/character 전략을 사용

4.2 토큰 표현(임베딩)과 유사도

(1) One-Hot Encoding의 한계
  • 어휘 크기 V일 때, 각 토큰을 길이 V의 벡터로 표현
    • 예: vocab = {book, soft, teddy_bear}
      • soft → [1, 0, 0]
      • teddy → [0, 1, 0]
      • book → [0, 0, 1]
  • 문제:
    • 모든 벡터가 서로 직교(코사인 유사도 0)
      “soft”와 “teddy_bear”가 실제로는 연관 있지만 숫자상 아무 관계 없음
    • 의미·유사성을 반영하지 못함
(2) 분산 표현(Distributed Representation)과 코사인 유사도
  • 목표:
    • 의미적으로 가까운 단어는 비슷한 방향의 벡터를 갖게 만드는 것
    • 예:
      • teddy_bear ↔ soft: 높은 유사도
      • teddy_bear ↔ book: 낮은 유사도
  • 코사인 유사도:
    • 두 벡터의 각도를 기준으로 유사도를 측정
    • 방향만 보고, 길이(노름)는 정규화로 상쇄
(3) Word2vec: CBOW·Skip-Gram
  • 아이디어:
    • 대량의 원시 텍스트에서, “언어의 패턴”을 학습하는 프록시 태스크
      단어 임베딩을 학습
  • 두 가지 프록시 태스크:
    1. CBOW (Continuous Bag-of-Words)
      • 주변 단어(context)들을 보고 중심 단어(target) 를 예측
    2. Skip-Gram
      • 중심 단어를 보고 주변 단어들(context) 을 예측
  • 특징:
    • 실제 학습 목표는 “정확한 다음 단어 예측”이 아니라,
      그 과정에서 생기는 임베딩(가중치)을 얻는 것
    • 결과적으로,
      • king - man + woman ≈ queen
      • Paris - France + Germany ≈ Berlin
        같은 해석 가능한 벡터 연산이 가능해짐
(4) 간단한 예: “a cute teddy bear is reading”
  • 프록시 태스크: 다음 단어 예측(next-word prediction)
  • 모형:
    • 입력 차원 V, 은닉 차원 d의 간단한 신경망
    • 입력: one-hot(“a”) → W1 → 은닉 h → W2 + softmax → 다음 단어 분포
  • 학습:
    • 예측 분포와 실제 다음 단어(one-hot) 간 cross-entropy loss 최소화
    • 역전파로 W1, W2 업데이트
    • 이를 모든 토큰에 대해 반복
  • 임베딩 추출:
    • 학습된 W1(또는 은닉층 표현)을 단어 임베딩으로 사용

5. 시퀀스 모델: RNN, LSTM, 그리고 한계

5.1 RNN (Recurrent Neural Network)

  • 목적:
    • 문장의 순서 정보를 반영해 문장 표현을 얻기
  • 구조:
    • 각 시점 t마다:
      • 입력: 현재 단어 임베딩 x_t, 이전 hidden state h_{t-1}
      • 출력: 새로운 hidden state h_t, (필요시) 출력 y_t
  • 해석:
    • h_t는 t번째까지의 문맥 정보를 요약한 벡터
  • 활용:
    • 분류: 마지막 hidden state h_T → 문장 임베딩 → 클래스 예측
    • 토큰 분류: 각 시점의 h_t → 토큰 태깅(NER 등)
    • 생성(번역 등):
      • Encoder RNN으로 전체 문장 인코딩 → 최종 hidden state를 context로 사용
        → Decoder RNN으로 출력 문장 생성

5.2 문제점: 장기 의존성·Vanishing Gradient

  • 모든 정보가 하나의 hidden state에 누적
  • 문장이 길어질수록:
    • 오래전 정보는 잘 반영되지 못함 (장기 의존성 문제)
    • 역전파 시, 시간축을 따라 긴 곱셈 연산
      0<|값|<1인 항의 반복 곱 → gradient가 0에 수렴(vanishing gradient)
      • 반대로 1보다 크면 exploding gradient
  • 결과:
    • 문장이 길어질수록 앞 부분 정보를 기억하기 어려움
    • 학습도 불안정·느려짐

5.3 LSTM (Long Short-Term Memory)

  • RNN을 개선한 구조:
    • hidden state 외에 cell state c_t를 추가
    • 여러 게이트(input, forget, output gate)를 통해
      • “무엇을 기억/버릴지” 선택적으로 조절
  • 목표:
    • 장기 의존성 문제를 완화
  • 하지만:
    • 여전히 순차적 연산에 의존 → 병렬화 어려움, 학습 느림
    • 아주 긴 시퀀스에서 완벽한 해결은 아님

6. Attention: 장기 의존성 해결의 핵심 아이디어

6.1 Attention 개념

  • 동기:
    • RNN/LSTM은 과거 정보를 순차적으로만 전달 →
      “중요한 과거 단어”를 직접 참조하기 어렵다.
  • Attention의 아이디어:
    • 현재 예측하려는 위치에서,
      시퀀스 전체의 표현들을 직접 보고 가중합을 계산
  • 예: 번역
    • 입력: “a cute teddy bear is reading”
    • 출력: “un ours en peluche lit”
    • 특정 프랑스어 단어를 생성할 때,
      • 해당하는 영어 단어에 직접 가중치를 크게 두어 참고

6.2 Self-Attention & Q-K-V (Query, Key, Value)

  • Self-Attention:
    • 한 문장 내에서 모든 토큰이 서로를 참조하도록 하는 메커니즘
    • 예: “teddy bear”의 표현을 만들 때
      “cute”, “reading” 등 다른 토큰들을 함께 고려
  • Q (Query), K (Key), V (Value):
    • Query: “내가 지금 알고 싶은 것”을 나타내는 벡터
    • Key: 각 토큰의 “색인/주소 정보” 역할
    • Value: 실제로 가중합에 사용될 내용 벡터
  • 메커니즘:
    1. Query와 각 Key의 유사도(주로 dot product) 계산
    2. softmax로 정규화 → 어텐션 가중치
    3. 이 가중치로 각 Value를 가중합 → 새로운 토큰 표현

해석: Query 기준으로 “어떤 토큰을 얼마나 참고할지”를 결정한 뒤,
그에 해당하는 Value들의 가중합으로 새로운 표현을 만든다.

6.3 행렬 연산 형태

  • 입력 임베딩 X (d_model × N)
  • 학습되는 가중치 행렬:
    • W_Q, W_K, W_V (각각 d_model × d_k/d_v)
  • 계산:
    • Q = X W_Q, K = X W_K, V = X W_V
    • Attention(Q, K, V) = softmax( Q Kᵀ / √d_k ) V
  • 의미:
    • QKᵀ: 각 토큰 쿼리가 다른 모든 토큰 키와 맺는 유사도 행렬
    • softmax: 각 쿼리별 확률 분포(어텐션 가중치)
    • 가중합: 이 분포를 기반으로 Value들의 가중 평균 계산
  • √d_k로 나누는 이유:
    • d_k가 커질수록 dot product 값의 분산이 커짐 → softmax가 과도하게 쏠림
    • 이를 정규화해 학습 안정화

7. Transformer 구조: Attention is All You Need

7.1 전체 구조 개요

  • 2017년 논문 “Attention is All You Need” 에서 제안
  • 순차적 RNN 구조를 버리고,
    전적으로 Self-Attention(및 변형) 에 기반한 구조 사용
  • 크게 EncoderDecoder의 두 부분으로 구성
  • 대표 응용: 기계 번역

7.2 입력 처리: 토큰 임베딩 + 위치 인코딩

  1. 토크나이즈: BOS, EOS 포함
  2. 임베딩 레이어: 각 토큰 → d_model 차원 벡터
  3. Positional Encoding(위치 인코딩):
    • 단순 Self-Attention은 순서를 모름 → 위치 정보를 추가해야 함
    • 논문에서는 sin/cos 주기 함수로 위치 정보를 인코딩
    • 임베딩 + 위치 인코딩을 원소별 더하기로 결합

7.3 Encoder 블록

각 Encoder Layer는 다음으로 구성:

  1. Multi-Head Self-Attention
    • 입력: 길이 N의 시퀀스 임베딩
    • 각 토큰이 모든 토큰을 참조하여 새로운 표현 생성
    • Head별로 서로 다른 Q/K/V 투영을 학습 → 다양한 관계 포착
    • 여러 head 결과를 concat 후, W_O로 다시 d_model 차원으로 투영
  2. Feed-Forward Network (FFN)
    • 입력 차원 d_model → 중간 차원 d_ff → 다시 d_model
    • 비선형 변환으로 표현력을 확장
    • d_ff는 d_model보다 더 크게 잡아 모델 용량 확보
  3. (논문에는 Residual Connection + LayerNorm도 있지만, 내용상 언급만)
  • 여러 개(예: N=6)를 쌓아서 사용
  • 최종 Encoder 출력: 입력 시퀀스의 문맥-aware 임베딩 세트

7.4 Decoder 블록

각 Decoder Layer는 세 종류의 Attention을 포함:

  1. Masked Multi-Head Self-Attention
    • Decoder의 이전 출력 토큰들에 대해 Self-Attention
    • 미래 토큰을 보지 못하도록 마스킹(causal mask) 적용
      • 시점 t에서 t 이후 토큰은 attention 대상에서 제외
  2. Cross-Attention (Encoder-Decoder Attention)
    • Query: Decoder의 현재 hidden 표현
    • Key/Value: Encoder 출력(입력 문장 임베딩)
    • 역할:
      • “지금 생성 중인 번역 토큰”이 입력 문장의 어느 부분을 참고해야 할지 학습
  3. Feed-Forward Network
    • Encoder와 동일 구조, 표현력 확장
  • 역시 여러 개의 Decoder Layer를 스택으로 사용
  • 마지막 Decoder Layer 출력 → 최종 Linear + Softmax → 다음 토큰 확률

7.5 Multi-Head Attention

  • 하나의 Attention만 쓰지 않고, 여러 Head(h개)를 병렬로 사용
  • 각 Head:
    • Q = X W_Q^(head_i), K = X W_K^(head_i), V = X W_V^(head_i)
    • 서로 다른 투영 행렬을 사용하므로 다른 관점의 관계를 학습
  • 모든 Head의 출력을 concat 후, 다시 W_O로 d_model 차원으로 투영
  • 장점:
    • 문법적 관계, 의미적 관계, 장거리 의존 등 다양한 패턴을 분리 학습

8. Transformer를 이용한 번역 과정 (End-to-End 예시)

문장: “a cute teddy bear is reading” → “un ours en peluche lit”

  1. 인코딩 단계

    • 입력 문장을 토크나이즈 + 임베딩 + 위치 인코딩
    • 여러 Encoder Layer를 통과하면서:
      • 각 토큰이 문장 내 다른 토큰들과의 관계를 통해 문맥 정보 포함 표현으로 변환
    • 최종 Encoder 출력:
      길이 N의 컨텍스트 인코딩 벡터들 (각 토큰당 하나씩)
  2. 디코딩 시작

    • Decoder 입력: BOS 토큰
    • 첫 시점:
      • Masked Self-Attention: BOS만 참조 (의미 없음, 자기 자신)
      • Cross-Attention: Encoder 출력 전체를 Key/Value로 참고
      • FFN 통과 후 Linear + Softmax → 첫 출력 토큰(예: “un”) 확률 분포
    • Argmax/샘플링으로 “un” 선택
  3. 두 번째 토큰 생성

    • Decoder 입력: [BOS, “un”]
    • Masked Self-Attention:
      • “un”의 표현은 [BOS, “un”]에 대해 자기-어텐션
    • Cross-Attention:
      • 해당 시점의 Decoder 표현을 Query로, Encoder 출력을 Key/Value로 사용
    • 출력: “ours” 확률 ↑ → “ours” 선택
  4. 반복

    • [BOS, “un”, “ours”, “en”, “peluche”, …] 를 입력으로 계속 디코딩
    • 각 단계에서:
      • 이전 번역 토큰들에 대한 Masked Self-Attention
      • Encoder 출력에 대한 Cross-Attention
    • EOS 토큰이 생성될 때까지 반복 → 번역 종료

9. 학습 테크닉: Label Smoothing

  • NLP 생성 태스크(번역 등)에서 다음 단어 정답은 여러 개일 수 있음
    • 예: “What a great ___” → “day”, “idea”, “lecture” 등
  • 기존: 정답 토큰에 확률 1, 나머지는 0인 one-hot 라벨
  • Label Smoothing:
    • 정답 토큰 확률: 1 − ε
    • 나머지 토큰들: ε / (V−1) 로 조금씩 분산
  • 효과:
    • 모델이 너무 확신(Over-confident) 하지 않도록 억제
    • 일반화 성능, BLEU 점수 등 개선 보고
  • 구현 관점:
    • “softmax 출력에 라벨 스무딩을 적용”하는 것이 아니라,
      손실 계산에 사용하는 정답 분포를 부드럽게 바꾸는 것

마무리

  • 이 강의는 다음을 목표로 한다:
    • NLP 태스크와 평가 지표의 기본 이해
    • 토크나이제이션·임베딩·Word2vec·RNN/LSTM의 한계 파악
    • Attention·Self-Attention·Multi-Head·Transformer Encoder–Decoder 구조의 이해
    • 이를 바탕으로 LLM의 구조·학습·활용을 심도 있게 다룰 예정
  • 수업과 교재, VIP Cheat Sheet, 그리고 매주 업로드되는 슬라이드·녹화를 잘 활용하면
    현대 LLM 시스템의 동작 원리를 상당히 깊게 이해할 수 있다.