Skip to content

Instantly share code, notes, and snippets.

@YangSiJun528
Last active February 6, 2026 02:39
Show Gist options
  • Select an option

  • Save YangSiJun528/5bcb1cf16552a710498bcb82f1dae54e to your computer and use it in GitHub Desktop.

Select an option

Save YangSiJun528/5bcb1cf16552a710498bcb82f1dae54e to your computer and use it in GitHub Desktop.
Deep Dive into LLMs - Andrej Karpathy.md

CS146S: The Modern Software Developer의 1주차 참고 자료여서 학습하고 메모한 건데, 대학 자료가 아닌 별도 자료기도 하고, 내용이 너무 길어서 따로 뻄.

Deep Dive into LLMs

관련 정보

강의: Andrej Karpathy, "Deep Dive into LLMs like ChatGPT" (2025.02)

발표자: Andrej Karpathy

  • OpenAI 공동 창립 멤버 (2015-2017, 2023-2024)
  • Tesla AI/Autopilot Vision 디렉터 (2017-2022)
  • Stanford 박사 (Fei-Fei Li 지도, 컴퓨터 비전/NLP). CS231n(딥러닝 강의) 설계 및 주강사
  • 현재 Eureka Labs 설립, AI 교육 콘텐츠 제작
  • "바이브 코딩(Vibe Coding)" 용어 창시 (2025.02, X 게시물)
  • 참고: 바이브 코딩은 LLM에 코딩을 맡기고 코드를 읽지 않는 방식을 뜻하지만, Karpathy 본인은 이걸 "throwaway weekend projects" 수준으로만 권장했고, 이후 자신의 프로젝트(Nanochat)에서는 직접 코딩으로 돌아감. 이 강의에서도 LLM에 모든 것을 위임하지 말고, 출력을 항상 검증하라는 입장을 명확히 함 (15번 들쭉날쭉한 지능 파트, 20번 RLHF 파트 후반부).
  • 관련 링크:

같이보면 좋을 추가 자료 (LLM 내부 원리 관련해서)

한국어 번역 프로젝트 관련

느낀점

TODO 내용 가공

  • AI의 동작 원리를 좀 더 잘 알게 되었다.
  • 프롬프팅이 뭔가 전문성 없어보이고 AI를 해킹하는 느낌이었는데, 알고 보니 LLM의 동작 특성을 이해하고 활용하는 올바르고 효과적인 방법이었다.
  • 최근 모델은 컨텍스트 윈도우 문제를 크게 체감한 적이 없어서 크기가 어떨지 궁금해져서 찾아봤는데, 수백 페이지 분량에 달할 만큼 매우 크다는 걸 알게 되었다.
  • DeepSeek-R1이 큰 반향을 일으킨 이유를 이해하게 되었다. SFT 없이 순수 RL만으로 모델이 Chain-of-Thought(단계적 추론)를 자발적으로 발현시켰다는 점. OpenAI o1과 비슷한 수준의 추론 성능을, 훨씬 적은 비용으로 달성했다는 점. 이 방법론과 모델을 오픈 웨이트로 공개하여 누구나 활용할 수 있게 한 점.
  • LLM 훈련 순서: 사전학습 -> SFT -> RLHF(RL) - 항상 이런건 아니다. 중간 단계가 추가되거나 건너뛰기도 하는 듯?
    • 사전학습으로 언어(게임 등)의 인과관계를 학습. SFT를 통해서 지시를 따르는 방법, 지시에 대한 올바른 응답의 연관관계 학습.
    • RLHF으로 스스로 올바른 방식을 찾게 학습.

자료 정리


2026-01-29

  1. 소개
  • 일반 청중도 이해 가능한 수준
  • LLM 전체 파이프라인 확인, LLM의 특징과 한계
  1. 사전학습 데이터 (인터넷)
  1. 토큰화
  • 신경망은 입력으로 기호(symbol)로 이루어진 1차원 시퀀스를 받는다
  • 시퀀스 길이는 신경망의 연산 비용에 직결되므로, 시퀀스가 짧을수록(= 토큰 하나가 표현하는 단위가 클수록) 효율이 좋다
  • 단, 한 토큰이 표현하는 단위가 클수록 동일한 학습 데이터에서도 고유한 토큰의 종류(vocabulary)가 많아지고, 이는 임베딩 행렬의 메모리 증가와 희귀 토큰의 학습 부족 문제로 이어진다
  • 따라서 BPE 등의 알고리즘을 통해 시퀀스 길이와 vocabulary 크기 사이의 균형을 맞추며 텍스트를 토큰 단위로 분할한다
  • https://tiktokenizer.vercel.app/?model=cl100k_base
  1. 신경망 입출력
  • 신경망은 토큰 시퀀스를 입력받아 다음 토큰의 확률 분포를 출력하는 함수
  • 입력: 가변 길이 토큰 시퀀스 (0 ~ 최대 컨텍스트 길이)
  • 출력: 어휘 내 모든 토큰에 대한 확률값. 합은 1
  • 훈련: 데이터셋에서 토큰 윈도우를 뽑고, 정답(레이블) 토큰의 확률을 높이는 방향으로 파라미터 조정
  • 배치 학습: (GPU를 사용해) 여러 윈도우를 동시에 처리하여 병렬로 파라미터 업데이트
  1. 신경망 내부 구조
  • 파라미터 = 조절 가능한 숫자, 수십억 개, 무작위 초기화 → 훈련으로 조정
  • 트랜스포머 = 어텐션 블록 + MLP 블록으로 구성된 구조. 현대 LLM은 이 구조를 쓴다.
    • 어텐션 블록: 토큰 간 문맥 관계 포착 (inter-token)
    • MLP 블록: 각 토큰 벡터를 개별 비선형 변환 (intra-token) (메모: 이해 못함. 일반 대중 대상 설명이라 수학적 세부사항은 핵심이 아니라고 해서 ㄱㅊ)
    • 한 층 = 어텐션 → MLP 순서로 통과. 이걸 N층 반복 적층
  • 임베딩 = 토큰을 벡터로 변환
  • 처리 흐름: 토큰 → 임베딩(벡터 변환) → [어텐션 블록 → MLP 블록] × N층 → softmax → 확률 분포
  • 핵심 성질: 상태 없는(stateless) 고정 수학 함수. 메모리 없음. 매번 입력에서 출력까지 처음부터 계산
  • 시각화: https://bbycroft.net/llm
  1. 추론
  • 훈련된 모델은 입력 텍스트의 다음 토큰을 확률 분포로 추론/예측한다
  • 결과로 생성된 모델은 더 이상 학습하지 않는다. 파라미터 값/가중치가 변하지 않음
  • 출력 시 확률 분포에서 샘플링의 무작위로 샘플링하므로 비결정적이다

2026-01-30 회사 점심시간

  1. GPT-2: 학습과 추론
  • 앞서 이론적으로 설명한 학습 과정을 실제 예시로 소개
  • GPT-2를 재현하는 llm.c 프로젝트를 시현
  • 결과물은 베이스 모델이고, 아직 토큰 예측기에 가까움. 목표하는 어시스턴트(대화형 AI)와는 다름.
  • llm.c 깃헙 링크
  1. Llama 3.1 베이스 모델 추론
  • 파라미터 표기: 1.5B, 45B 등에서 B는 Billion(10억). 모델의 파라미터 개수를 의미
  • 파라미터의 본질: 학습 데이터의 손실 압축(lossy compression)된 표현
  • 시연: GPT-2보다 대규모로 학습된 Llama 3.1 베이스 모델 사용
    • 동작 방식: 텍스트 완성(text completion) - 입력 문장의 다음 토큰을 예측, 질문에 답변하도록 학습되지 않음
    • 회상(Regurgitation): 자주 본 고품질 데이터(위키피디아 등)를 거의 그대로 출력
    • 환각(Hallucination): 학습 데이터에 없는 정보를 확률적으로 생성하여 그럴듯하게 만들어냄
    • 인컨텍스트 러닝(In-context Learning): 프롬프트 내 예시 패턴을 파악하여 새로운 입력에 적용

2026-02-01 집앞 셀렉토(24시간 카페) - 한 6시간동안

  1. 사전학습에서 후속학습으로
  • 베이스 모델(Base model) = 신경망 아키텍처(structure) + 학습된 파라미터(가중치 값)
  • 후속학습(Post-Training): 베이스 모델을 어시스턴트로 변환하는 추가 학습 단계
  • 후속학습은 비용을 상대적으로 적게 사용하지만 매우 중요함.
  1. 후속학습 데이터 (대화)
  • SFT(Supervised Fine-tuning, 지도 미세 조정)에 대한 설명 파트
  • 인간 라벨러가 수십만 개의 고품질 대화를 작성하고, 회사가 제공한 라벨링 지침에 따라 이상적인 어시스턴트 응답을 만든다.
    • 요즘엔 기계가 생성하고 인간이 검수한 모델을 사용함.
  • 이 과정을 통해 의도한 어시스턴트의 페르소나를 가지게 된다.
    • 라벨링으로 학습하지 않는 것도, 가지고 있는 학습한 인터넷 데이터 기반으로 페르소나에 적절한 답변을 하게 됨.
  • 대화는 특수 토큰(im_start, im_end 등)을 사용해 1차원 토큰 시퀀스로 변환하여 대화 패턴을 인식하게 함.
  • 웹에서 확인해보기(Tiktokenizer): https://tiktokenizer.vercel.app/
    • (메모: 마지막 파트에서 "성격이 정말로 나오는 곳은 SFT 과정"이라 함. 모델마다 성격이 다른 이유는 SFT 데이터셋과 라벨링 문서가 회사마다 다르기 때문이 주된 요인. RLHF와 시스템 프롬프트도 기여하지만 근본적 성격은 SFT에서 형성되는게 맞는듯. 인상깊어서 관련있는 여기에 메모)
  1. 환각, 도구 사용, 지식/작업 메모리
  • 환각(Hallucination): 모델이 모르는 정보를 자신있게 지어내는 현상
    • 모델 내부에는 불확실성을 나타내는 뉴런이 있지만, 그게 모르겠다는 출력으로 연결되어 있지 않음
    • 학습 데이터에 "모른다"고 답하는 예시가 없었음
  • 해결 1: 모델 심문 방식
    • 모델에 사실 질문을 반복하여 모르는 질문을 식별하고, "모르겠습니다"가 정답인 예시를 학습 데이터에 추가 → 내부 불확실성 신호가 거부 출력으로 연결됨
    • 출처: 논문 The Llama 3 Herd of Models
  • 해결 2: 도구 사용
    • 특수 토큰(예: search_start, search_end)을 방출하여 웹 검색 등 외부 도구를 호출
    • 검색 결과가 컨텍스트 윈도우(작업 메모리)에 삽입되어 모델이 직접 참조 가능
    • 도구 사용법은 학습 데이터에 예시 대화를 추가하여 학습
  • 지식/작업 메모리
    • 지식 메모리: 파라미터에 저장된 희미한 기억 (사전학습에서 습득)
    • 작업 메모리: 컨텍스트 윈도우에 있는 직접 접근 가능한 데이터
      • (메모: 최근 컨텍스트 크기: Claude 4.5 기준, 모든 모델이 20만 토큰, 약 500 페이지 분량)
    • 작업 메모리를 사용하면 더 정확한 답변을 생성한다. (인간도 마찬가지)
  1. 자기 인식
  • LLM은 대화마다 새로 시작되며 연속적 정체성 없음
  • 자기 자신에 대한 답변은 후속학습으로 주입하거나 시스템 프롬프트에 명시하여 제공
  1. 모델은 생각하기 위해 토큰이 필요하다
  • 토큰당 계산량이 고정 제한(모델 아키텍처마다 다르지만) → 중간 과정을 펼쳐야(chain-of-thought) 토큰당 계산 부담 분산 및 정확도 향상
  • 암산, 세기, 철자 등은 본질적으로 불안정 → 정확한 계산은 외부 도구 필수
  • 생각: 여러 유튜버 영상에서 왜 짦게 말하라 해도 길게 말하는지나 깊게 생각 시 결과를 출력하는지 알게 됨. 재밌는? 포인트
  1. 토큰화 재탐구: 철자 처리의 어려움
  • 모델은 개별 문자가 아닌 토큰(작은 텍스트 조각) 단위로 세계를 인식함
  • 따라서 문자 단위의 계산에는 부정확함 → 정확한 계산은 외부 도구 필수
  1. 들쭉날쭉한 지능(Jagged Intelligence)
  • LLM은 능력에 예상치 못한 구멍이 있어 어디서 실패할지 예측 어려움
  • 예: "9.11 > 9.9" 오류 — 토큰화 및 학습 데이터의 편향(성경 구절 등)이 원인으로 추정
  • 완전히 신뢰할 수 없는 확률적 시스템임을 인지하고 도구로서 사용할 것
  1. 지도 미세 조정(SFT)에서 강화학습(Reinforcement Learning)으로
  • 사전학습 → SFT(지도 미세 조정) → RL(강화학습) 순으로 진행. 실무에선 각 팀이 분리됨.
  • 교과서 비유를 통한 3단계 대응관계: - (LLM을 학교에 보낸다고 하는 표현이 좀 웃겼음)
    • 사전학습 = exposition(배경지식 읽기)
    • SFT = worked solutions(전문가 풀이가 있는 예제 모방)
    • RL = practice problems(최종 답만 주어지고 풀이는 스스로 시도)
  • 동기: SFT만으론 전문가 모방, RL을 통해 자체적 문제 해결 전략 탐색 및 개선 능력
  1. 강화학습(Reinforcement Learning)
  • 하나의 프롬프트에 다수의 풀이를 샘플링 → 정답 도달한 풀이를 강화. 수학·코딩 등 검증 가능한 영역에서 특히 효과적
  • 인간의 인지와 LLM 인지가 다름. 인간이 최적 풀이를 설계하기 어려움 (SFT 한계) → 모델이 스스로 최적 풀이를 발견
    • 그럼에도 SFT는 올바른 접근 방식을 제공하는 기반으로서 중요
  • SFT 대비 훨씬 초기 단계이며 세부 설정이 아직 미성숙
  1. DeepSeek-R1
  • RL을 LLM에 적용한 세부 사항을 최초로 공개한 논문 (중국에서 공개, 미국은 비공개로 개선 중이였음)
  • 핵심 발견: RL 과정에서 모델이 사고 전략(재평가, 역추적 등)을 자발적으로 발견 → 인간이 하드코딩 불가능한 창발적 chain-of-thought
  • 사고 모델은 복잡한 추론에, SFT 모델은 단순 질문에 적합
  • OpenAI는 증류(distillation, 사고 과정을 따라해서 유사한 모델 만들기) 위험 때문에 사고 과정을 요약만 표시. DeepSeek은 오픈 웨이트 모델이므로 전체 공개 (파라미터도 공개하는거라 오픈 웨이트라 구분하는 듯?)
  • 링크: https://chat.deepseek.com/
  1. AlphaGo
  • SFT는 인간 수준에서 천장, RL은 그 한계를 초월 (Move 37: 인간이 두지 않을 수를 발견)
  • LLM 함의(암시): RL로 인간이 모르는 추론 전략, 자체 사고 언어까지 발견할 가능성
  • 프론티어 연구: 다양한 도메인의 대규모 연습 문제를 만들어 RL 적용 - LLM이 사고를 연습할 수 있는 게임 환경으로서 중요
    • 프론티어(frontier, 최전선) 연구 뜻: 현재 활발히 시도 중이고, 부분적 성과는 있지만 완전히 해결되지 않은 연구
  1. 인간 피드백 강화학습 (RLHF)
  • 문제: 창작, 요약 등 검증 불가능한 영역에서는 정답이 없어 자동 채점 불가
  • 해결: 보상 모델(Reward Model) — 인간이 출력 순위만 매기고, 그 순위에 맞게 훈련된 신경망이 인간 판단을 시뮬레이션 → RL 수행
  • 장점: 인간에게 생성이 아닌 판별만 요구 (더 쉬운 작업(인간 라벨러보다), 더 높은 정확도)
  • 한계: 보상 모델 게이밍(reward hacking)
    • RL을 오래 돌리면 보상 모델의 허점을 찾아 무의미한 출력이 고득점 획득 (적대적 예시)
    • 실무: 수백 스텝만 돌리고 조기 중단. 약간의 개선 수준이지, 검증 가능 영역의 RL처럼 무한 확장 불가
  • GPT-4o 등 SFT 모델도 RLHF를 거치지만 효과는 제한적
  • (메모: 악용 측면에서OpneAI에서 술래잡기 게임 시켰던 거나가 생각남. 그리고 )
  1. 미래 전망
  • 멀티모달: 오디오·이미지를 토큰화하여 텍스트와 동일 방식으로 처리 (근본적 변화 아닌 토큰 확장)
  • 에이전트: 장기 실행 작업 수행 하지만 아직 불안정 → 인간이 감독자 역할
  • 컴퓨터 사용: 모델이 키보드·마우스 조작
  • 테스트 타임 트레이닝: 배포된 모델이 학습은 컨텍스트 윈도우 내 in-context learning만 가능.
    • 컨텍스트 윈도우는 유한한 자원이고, 장기 멀티모달 작업에서는 윈도우 확장만으로 한계. 따라서 새로운 접근 필요 (인간처럼 경험에서 학습)
  1. LLM 동향 추적하기
  1. LLM을 찾을 수 있는 곳
  2. 모델 접근 방법
  • 독점 모델: 각 제공자 웹사이트 (chat.openai.com, gemini.google.com 등)
  • 오픈 웨이트 모델: 추론 제공자 (together.ai 등)에서 다양한 오픈 모델 선택 가능
  • 베이스 모델: 대부분 추론 제공자가 호스팅하지 않음. hyperbolic 등에서 접근 가능
  • 로컬 실행: LM Studio 등으로 증류된 소형 모델을 낮은 정밀도로 노트북에서 실행 가능
  1. 전체 요약

용어 정리 (신경망 입출력 / 내부 구조)

햇갈리는게 많아서 AI한테 정리해달라 함. 강의 내용 외의 설명이 있을 수 있음.

용어 정리 (신경망 입출력 / 내부 구조)

햇갈리는게 많아서 AI한테 정리해달라 함. 강의 내용 외의 설명이 있을 수 있음.

== 사전학습 / 토큰화 (2~3번) ==

사전학습 (Pre-training)

  • 정의: 인터넷에서 수집한 대규모 텍스트 데이터로 다음 토큰 예측 능력을 학습하는 최초 훈련 단계
  • 결과물: 베이스 모델. 아직 어시스턴트가 아닌 토큰 예측기
  • 후속학습(post-training)과 구분됨

토큰 (Token)

  • 정의: 신경망이 처리하는 텍스트의 최소 단위. 작은 텍스트 조각(chunk)에 고유 ID를 부여한 것
  • 각 토큰은 정수 ID로 표현. ID 자체에 의미 없음, 단순 식별자
  • 시퀀스 길이는 신경망에서 비용이므로 짧을수록(= 토큰 하나의 데이터가 많을수록) 효율적
  • 예: "tokenization" → ["token", "ization"] (2토큰). tiktokenizer에서 직접 확인 가능

토큰화 (Tokenization)

  • 정의: 알고리즘을 통해 수집한 데이터를 적절한 vocabulary 수를 유지하면서 토큰 묶음으로 만드는 과정
  • 트레이드오프: 토큰 크기↑ → 시퀀스 길이↓(효율적) but 어휘 크기↑(메모리↑, 희귀 토큰 학습 부족)
  • 대표 알고리즘: BPE(Byte Pair Encoding) — 빈도 높은 바이트 쌍을 반복적으로 병합하여 어휘 구축 (Sennrich et al., "Neural Machine Translation of Rare Words with Subword Units", 2016)

어휘 (Vocabulary)

  • 정의: 모델이 인식하는 고유 토큰(심볼)의 전체 집합
  • 예: 100,277개 (강의에서 사용한 모델 기준)
  • 어휘에 없는 텍스트는 더 작은 서브워드/바이트 단위로 분해되어 표현됨

심볼 (Symbol)

  • 정의: 시퀀스를 구성하는 이산적 단위의 일반 용어. 이 강의에서는 토큰과 동의어로 사용
  • "신경망은 입력으로 기호(symbol)로 이루어진 1차원 시퀀스를 받는다"

== 신경망 입출력 / 내부 구조 (4~5번) ==

파라미터 (Parameter) / 가중치 (Weight)

  • 정의: 신경망을 구성하는 조절 가능한 숫자들
  • 초기에 무작위 설정 → 훈련 과정에서 반복 조정
  • 현대 모델은 수십억 개 보유. "1.5B 모델" = 파라미터 15억 개 (8번에서)
  • (개인 메모 내용) 모델을 설명할 때 쓰는 파라미터 수는 총 파라미터 개수이다.
    • 파라미터 수 ≈ 레이어 수 × 레이어당 파라미터 수
    • 따라서 파라미터 수는 대표적으로 모델의 성능을 표현/비교하는데 사용된다.
    • (총 개수가 높다고 무조건 좋은건 아니지만 실무에서 출시된 모델은 적절한 레이어/파라미터 비율을 유지하기 떄문에)
  • 비유: DJ 노브. 노브(파라미터) 설정을 바꾸면 같은 입력에 다른 출력
  • 수학적 표기: 신경망 함수 f(x; θ)에서 θ에 해당
  • 최적화 알고리즘(SGD, Adam 등)이 파라미터 조정을 수행 (Goodfellow et al., Deep Learning, 2016, Ch.6)
  • 엄밀히 파라미터 = 가중치(weight) + 편향(bias). 실무에서는 혼용

컨텍스트 윈도우 (Context Window)

  • 정의: 신경망에 입력되는 토큰 시퀀스의 최대 길이. 예: 8,000 토큰
  • 무한한 토큰을 처리하는 것은 계산적으로 너무 비싸므로 특정 길이에서 자름
  • 윈도우 밖의 토큰은 모델이 볼 수 없음
  • 비용의 원인: self-attention 연산이 입력 길이 n에 대해 O(n²) (Vaswani et al., 2017)
  • 모델별 크기: GPT-2 = 1,024 / GPT-4 = 128K

확률 분포 (Probability Distribution) 출력

  • 정의: 어휘의 모든 토큰 각각에 "다음 토큰일 확률"을 할당한 출력. 합은 1
  • 어휘 크기 100,277이면 정확히 그만큼의 숫자를 출력
  • logit → softmax를 거쳐 확률로 변환

레이블 (Label)

  • 정의: 훈련 데이터에서 주어진 입력에 대한 정답 토큰
  • 예: 입력 [bar, view, in, single] → 데이터셋에서 다음 토큰이 post → post가 레이블
  • "이것이 레이블입니다. 정답이 실제로 시퀀스에서 3962가 다음에 온다는 것을 알고 있습니다"

손실 (Loss)

  • 개념: "정답 토큰의 확률을 높이고 다른 모든 토큰의 확률은 낮추도록" 신경망을 조정 — 이 차이를 수치화한 것이 loss
  • LLM에서 주로 사용: 크로스 엔트로피(cross-entropy) — 정답 토큰에 부여한 확률이 높을수록 loss가 낮아짐
  • 파라미터 업데이트 방향은 loss의 기울기(gradient)로 결정 (Goodfellow et al., 2016, Ch.6)

배치 (Batch)

  • 정의: 여러 토큰 윈도우를 동시에 처리하는 묶음
  • "작은 윈도우 배치를 샘플링하고", "이 모든 것이 큰 배치에서 병렬로 일어나고"
  • 이것이 미니배치 경사 하강법(mini-batch gradient descent) (Goodfellow et al., 2016, Ch.8)

트랜스포머 (Transformer)

  • 정의: 현대 LLM의 핵심 아키텍처. 어텐션 블록과 MLP 블록으로 구성
  • 동일한 블록(layer)을 여러 번 쌓은 구조
  • 시각화 예시(85,000 파라미터): bbycroft.net/llm
  • 논문: Vaswani et al., "Attention Is All You Need" (2017)
  • GPT 계열은 디코더만 사용하는 변형(decoder-only transformer)

임베딩 (Embedding)

  • 정의: 토큰을 신경망 내부에서 표현하는 벡터(분산 표현)
  • "가능한 모든 토큰은 신경망 내부에서 그것을 나타내는 일종의 벡터를 가지고 있습니다"
  • 먼저 토큰을 임베딩하고, 그 값들이 네트워크를 통해 흐름
  • 구현: 임베딩 행렬 E (크기: 어휘 크기 × 임베딩 차원)에서 토큰 ID에 해당하는 행을 꺼내는 룩업 테이블
  • 임베딩 행렬도 파라미터의 일부 → 훈련 중 함께 학습
  • 학습 결과 의미가 유사한 토큰은 벡터 공간에서 가까이 위치 (Mikolov et al., "Efficient Estimation of Word Representations in Vector Space", 2013)

어텐션 (Attention)

  • 정의: 트랜스포머의 핵심 블록. 입력 토큰들 간의 관계를 학습하는 메커니즘
  • 강의는 "어텐션 블록"으로만 언급. 내부 수학은 의도적으로 생략 ("정확한 수학적 세부 사항은 그렇게 중요하지 않다")
  • 내부 동작: 각 토큰에서 Query(Q), Key(K), Value(V) 벡터 생성
  • Q와 K의 내적으로 관련도 점수 → softmax 정규화 → 가중치로 V를 가중합
  • 수식: Attention(Q, K, V) = softmax(QK^T / √d_k) V (Vaswani et al., 2017)
  • 예: "The cat sat on the mat"에서 "sat" 처리 시 "cat"에 높은 가중치 → 주어-동사 관계 포착

MLP (Multi-Layer Perceptron)

  • 정의: 트랜스포머 내에서 어텐션 블록 다음에 위치하는 정보 처리 블록
  • 강의는 "다층 퍼셉트론 블록"으로만 언급. 내부 구조 설명 없음
  • 구조: 입력 → 선형 변환(행렬 곱) → 비선형 활성화 함수(GELU 등) → 선형 변환 → 출력
  • 역할: 어텐션이 토큰 간 관계를 계산한 결과를 비선형 변환하여 더 복잡한 패턴 표현

순전파 (Forward Pass)

  • 개념: "상단에서 토큰 시퀀스인 입력을 받고, 정보가 신경망을 통해 흐르고 출력까지 간다"
  • 입력 → 임베딩 → 어텐션/MLP 블록들 → softmax → 확률 분포
  • 용어: 입력에서 출력 방향으로 한 번 계산하는 과정을 순전파(forward pass)라 부름

상태 없음 (Stateless)

  • 정의: 신경망은 입력에서 출력까지 기억 없이 고정된 수학적 표현식. 상태가 없다
  • "생물학적 뉴런은 기억 등을 가진 매우 복잡한 동적 과정입니다. 이 표현식에는 기억이 없습니다"
  • 함의: 이전 대화를 "기억"하는 것처럼 보이는 이유는 이전 대화가 컨텍스트 윈도우에 입력으로 포함되어 있기 때문. 신경망 내부에 저장된 것이 아님

== 추론 (6번) ==

추론 (Inference)

  • 정의: 훈련 완료된 모델에서 새로운 데이터를 생성하는 단계
  • 결과로 생성된 모델은 더 이상 학습하지 않는다. 파라미터 값/가중치가 변하지 않음
  • 생성 과정: 입력 → 확률 분포 → 샘플링 → 다음 토큰 생성 → 그 토큰을 입력에 추가 → 반복. 이것이 자기회귀(autoregressive) 생성

샘플링 (Sampling)

  • 정의: 확률 분포에서 무작위로 토큰을 선택하는 과정
  • "출력 시 확률 분포에서 무작위로 샘플링하므로 비결정적이다"
  • temperature 파라미터: 분포의 날카로움 조절. 낮을수록 고확률 토큰에 집중, 높을수록 균등하게 분산

자기회귀 생성 (Autoregressive Generation)

  • 정의: 이전에 생성한 토큰을 입력에 추가하여 다음 토큰을 순차적으로 생성하는 방식
  • 한 번에 한 토큰씩 생성. 생성된 토큰이 다음 스텝의 컨텍스트에 포함됨
  • 강의에서 이 용어 자체는 사용하지 않지만, 추론 과정의 동작이 이것임
  • GPT, Llama 등 현대 LLM의 표준 생성 방식

== 베이스 모델 (7~8번) ==

베이스 모델 (Base Model)

  • 정의: 신경망 아키텍처(structure) + 학습된 파라미터(가중치 값)
  • 사전학습만 완료된 모델. 아직 토큰 예측기에 가까움
  • 질문에 답변하도록 학습되지 않음. 텍스트 완성(text completion)을 수행

텍스트 완성 (Text Completion)

  • 정의: 입력 문장의 다음 토큰을 예측하는 동작. 베이스 모델의 기본 행동
  • 질문에 "답변"하는 게 아니라, 입력 패턴에 통계적으로 이어질 텍스트를 출력

손실 압축 (Lossy Compression)

  • 정의: 파라미터의 본질. 학습 데이터의 손실 압축(lossy compression)된 표현
  • 수조 토큰의 학습 데이터가 수십억 개 파라미터에 압축됨. 원본을 정확히 복원 불가

회상 (Regurgitation)

  • 정의: 자주 본 고품질 데이터(위키피디아 등)를 거의 그대로 출력하는 현상

환각 (Hallucination)

  • 정의: 학습 데이터에 없는 정보를 확률적으로 생성하여 그럴듯하게 만들어내는 현상
  • 원인: 모델 내부에 불확실성을 나타내는 뉴런이 있지만, "모르겠다"는 출력으로 연결되어 있지 않음. 학습 데이터에 "모른다"고 답하는 예시가 없었음
  • 해결 1: 모델 심문 — 모르는 질문을 식별하고 "모르겠습니다"가 정답인 예시를 학습 데이터에 추가 (출처: 논문 The Llama 3 Herd of Models)
  • 해결 2: 도구 사용 — 외부 검색 등으로 작업 메모리에 정보를 넣어 직접 참조

인컨텍스트 러닝 (In-context Learning)

  • 정의: 프롬프트 내 예시 패턴을 파악하여 새로운 입력에 적용하는 능력
  • 파라미터 업데이트 없이 동작. 컨텍스트 윈도우 내의 예시만으로 행동 변경
  • Brown et al., "Language Models are Few-Shot Learners" (GPT-3 논문, 2020)에서 체계적으로 보고

== 후속학습 (9~10번) ==

후속학습 (Post-Training)

  • 정의: 베이스 모델을 어시스턴트로 변환하는 추가 학습 단계
  • 비용을 상대적으로 적게 사용하지만 매우 중요함
  • 주요 단계: SFT → RL(RLHF 포함)

SFT (Supervised Fine-Tuning, 지도 미세 조정)

  • 정의: 인간 라벨러가 작성한 고품질 대화 예시(프롬프트-응답 쌍)로 베이스 모델을 추가 훈련하는 과정
  • 회사가 제공한 라벨링 지침에 따라 이상적인 어시스턴트 응답을 만든다
  • 요즘엔 기계가 생성하고 인간이 검수하는 방식 병행
  • 효과: 의도한 어시스턴트의 페르소나를 부여. "성격이 정말로 나오는 곳은 SFT 과정"
  • 라벨링으로 학습하지 않은 것도, 기존 인터넷 데이터 기반으로 페르소나에 적절한 답변을 하게 됨

특수 토큰 (Special Token)

  • 정의: 대화 구조를 표시하기 위해 사용하는 토큰 (im_start, im_end 등)
  • 대화를 1차원 토큰 시퀀스로 변환하여 대화 패턴을 인식하게 함

라벨러 (Labeler) / 어노테이터 (Annotator)

  • 정의: 훈련 데이터를 작성하거나 검수하는 인간 작업자
  • SFT에서 고품질 대화 작성, RLHF에서 출력 순위 평가 수행

== 도구 사용 / 메모리 (11~12번) ==

도구 사용 (Tool Use)

  • 정의: 모델이 특수 토큰(예: search_start, search_end)을 방출하여 외부 도구(웹 검색 등)를 호출하는 메커니즘
  • 검색 결과가 컨텍스트 윈도우(작업 메모리)에 삽입되어 모델이 직접 참조 가능
  • 도구 사용법은 학습 데이터에 예시 대화를 추가하여 학습

지식 메모리 (Knowledge Memory)

  • 정의: 파라미터에 저장된 희미한 기억. 사전학습에서 습득

작업 메모리 (Working Memory)

  • 정의: 컨텍스트 윈도우에 있는 직접 접근 가능한 데이터
  • 작업 메모리를 사용하면 더 정확한 답변을 생성한다 (인간도 마찬가지)

== Chain-of-Thought / 토큰화 한계 (13~15번) ==

Chain-of-Thought (CoT, 사고 연쇄)

  • 정의: 최종 답 전에 중간 추론 과정을 토큰으로 출력하는 것
  • 이유: 토큰당 계산량이 고정 제한 → 중간 과정을 펼쳐야(chain-of-thought) 토큰당 계산 부담 분산 및 정확도 향상
  • 모델이 길게 답하는 이유: 복잡한 추론에는 중간 토큰이 필수
  • 암산, 세기, 철자 등은 본질적으로 불안정 → 정확한 계산은 외부 도구 필수
  • Wei et al., "Chain-of-Thought Prompting Elicits Reasoning in Large Language Models" (2022)

들쭉날쭉한 지능 (Jagged Intelligence)

  • 정의: LLM의 능력에 예상치 못한 구멍이 있어 어디서 실패할지 예측이 어려운 성질
  • 예: "9.11 > 9.9" 오류 — 토큰화 및 학습 데이터의 편향(성경 구절 등)이 원인으로 추정
  • 함의: 완전히 신뢰할 수 없는 확률적 시스템. 도구로서 사용하되 검증 필요

== 강화학습 (16~20번) ==

강화학습 (Reinforcement Learning, RL)

  • LLM 맥락: 하나의 프롬프트에 다수의 풀이를 샘플링 → 정답에 도달한 풀이를 강화
  • 수학·코딩 등 검증 가능한 영역에서 특히 효과적
  • SFT와의 차이: SFT = 전문가 풀이 모방(ceiling이 인간 수준), RL = 모델이 스스로 최적 전략 탐색(인간 수준 초월 가능)
  • SFT 대비 훨씬 초기 단계이며 세부 설정이 아직 미성숙
  • 일반 정의: 에이전트가 환경에서 행동하고, 보상 신호를 기반으로 행동 전략을 개선하는 학습 패러다임 (Sutton & Barto, Reinforcement Learning: An Introduction, 2018)

SFT → RL 3단계 비유

  • 사전학습 = 교과서 배경지식 읽기(exposition)
  • SFT = 전문가 풀이가 있는 예제 모방(worked solutions)
  • RL = 최종 답만 주어진 연습 문제를 스스로 풀기(practice problems)

창발적 행동 (Emergent Behavior)

  • 개념: RL 과정에서 모델이 사고 전략(재평가, 역추적 등)을 자발적으로 발견
  • "인간이 하드코딩 불가능한 창발적 chain-of-thought"
  • DeepSeek-R1 논문에서 보고
  • 용어 정의: 명시적으로 프로그래밍하지 않았는데 훈련 과정에서 자발적으로 나타나는 능력이나 전략

증류 (Distillation)

  • 정의: 사고 과정을 따라해서 유사한 모델을 만드는 것
  • OpenAI가 사고 과정을 요약만 표시하는 이유 = 증류에 의한 모델 복제 방지
  • 형식적 정의: 대형 모델(teacher)의 출력을 소형 모델(student)의 학습 데이터로 사용하여 유사한 성능을 얻는 기법
  • Hinton et al., "Distilling the Knowledge in a Neural Network" (2015)

오픈 웨이트 (Open Weight)

  • 정의: 모델의 학습된 파라미터(가중치)를 공개하는 것
  • DeepSeek은 오픈 웨이트 모델이므로 전체 공개
  • 오픈 소스와 구분 ("파라미터도 공개하는거라 오픈 웨이트라 구분하는 듯")
  • 오픈 소스: 코드 + 데이터 + 학습 방법 전체 공개. 오픈 웨이트: 파라미터만 공개 (훈련 데이터·코드는 비공개일 수 있음)
  • 예: Llama, DeepSeek-R1은 오픈 웨이트. GPT-4는 비공개(독점)

사고 모델 (Reasoning Model)

  • 정의: RL로 훈련되어 복잡한 추론 시 사고 과정(chain-of-thought)을 확장하는 모델
  • 사고 모델은 복잡한 추론에, SFT 모델은 단순 질문에 적합

RLHF (Reinforcement Learning from Human Feedback, 인간 피드백 강화학습)

  • 문제: 창작, 요약 등 검증 불가능한 영역에서는 정답이 없어 자동 채점 불가
  • 해결: 보상 모델(Reward Model) — 인간이 출력 순위만 매기고, 그 순위에 맞게 훈련된 신경망이 인간 판단을 시뮬레이션 → RL 수행
  • 핵심 이점: 인간에게 생성이 아닌 판별만 요구 (더 쉬운 작업, 더 높은 정확도)
  • 한계: 보상 해킹. 수백 스텝만 돌리고 조기 중단
  • Ouyang et al., "Training language models to follow instructions with human feedback" (InstructGPT, 2022)

보상 모델 (Reward Model)

  • 정의: 인간이 출력 순위만 매기고, 그 순위에 맞게 훈련된 신경망. 인간 판단을 시뮬레이션
  • RLHF에서 RL의 보상 함수로 사용됨

보상 해킹 (Reward Hacking)

  • 정의: RL을 오래 돌리면 보상 모델의 허점을 찾아 무의미한 출력이 고득점을 획득하는 현상 (적대적 예시)
  • 보상 모델은 인간 판단의 근사치이므로 완벽하지 않음
  • 실무 대응: 수백 스텝만 돌리고 조기 중단. 검증 가능 영역의 RL처럼 무한 확장 불가

== 미래 전망 (21번) ==

멀티모달 (Multimodal)

  • 정의: 오디오·이미지를 토큰화하여 텍스트와 동일 방식으로 처리
  • 근본적 변화 아닌 토큰 확장

에이전트 (Agent)

  • 정의: 장기 실행 작업을 수행하는 시스템
  • 아직 불안정 → 인간이 감독자 역할

테스트 타임 트레이닝 (Test-Time Training)

  • 현재: 배포된 모델의 학습은 컨텍스트 윈도우 내 in-context learning만 가능
  • 컨텍스트 윈도우는 유한한 자원이고, 장기 멀티모달 작업에서는 윈도우 확장만으로 한계
  • 따라서 새로운 접근 필요 (인간처럼 경험에서 학습)
  • 형식적 정의: 배포된(deployed) 모델이 추론 시점에 새로운 데이터로부터 파라미터를 업데이트하는 것. 현재 LLM은 이것을 하지 않음
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment