콘텐츠로 이동

머신러닝 패러다임 기초

분류: Layer 11 - AI 기초 & 머신러닝 | 선수지식: L11-10 (머신러닝 수학 토대), L11-20 (고전 머신러닝 개요)

ML(Machine Learning, 머신러닝) 패러다임 기초 — 학습 신호와 모델 갱신

섹션 제목: “ML(Machine Learning, 머신러닝) 패러다임 기초 — 학습 신호와 모델 갱신”

ML은 데이터에서 규칙을 학습해 새 입력의 예측이나 행동을 바꾸는 방법이다. ML 패러다임은 그 모델이 무엇을 정답 신호로 삼아 가중치를 바꾸는가를 구분하는 사고 도구다. 지도학습은 사람이 붙인 정답 레이블을, 비지도학습은 데이터 안의 구조를, 강화학습은 행동 뒤에 오는 보상을, 자기지도학습은 데이터 자체에서 만든 정답을 학습 신호로 쓴다.

이 네 패러다임을 이해하려면 두 축을 함께 봐야 한다.

  1. 학습 신호의 출처: 정답 레이블, 구조, 보상, 데이터 자체 중 무엇인가
  2. 모델 갱신 방식: 손실 함수, 옵티마이저, learning rate, batch와 gradient가 어떻게 가중치를 움직이는가

모델을 고르기 전 첫 질문은 “어떤 알고리즘이 최신인가”가 아니라 **“이 문제에서 학습 신호는 어디서 오는가”**다.

  • 정답 데이터가 있으면 지도학습으로 출발한다.
  • 정답은 없지만 비슷한 것끼리 묶고 싶으면 비지도학습을 쓴다.
  • 행동의 순서가 중요하고 결과가 보상으로 돌아오면 강화학습 문제다.
  • 레이블을 사람이 만들기에는 데이터가 너무 크면 자기지도학습으로 정답을 자동 생성한다.

LLM도 이 틀에서 벗어나지 않는다. 일반 언어 능력은 자기지도 pretraining에서 나오고, 특정 지시를 따르는 능력은 SFT(Supervised Fine-Tuning, 모범 답안을 따라 하게 만드는 지도 fine-tuning)에서 보강된다. 사람 선호와 안전 정책에 가까워지는 과정은 **RLHF(Reinforcement Learning from Human Feedback, 사람의 평가로 보상 모델을 만들고 강화학습으로 행동을 조정하는 방식)**나 DPO(Direct Preference Optimization, chosen/rejected 선호쌍으로 원하는 응답의 확률을 직접 높이는 방식) 같은 선호 정렬 기법으로 다뤄진다. 이 문서에서는 그 계보를 이해하는 데 필요한 만큼만 다루고, 깊은 post-training 절차는 후속 문서로 넘긴다.

2.5 선행 기술의 한계 — 학습 신호가 다양해진 이유

섹션 제목: “2.5 선행 기술의 한계 — 학습 신호가 다양해진 이유”

초기 ML 문제는 “입력과 정답이 모두 있는 표”로 설명하기 쉬웠다. 예를 들어 이메일 본문과 spam / not spam 레이블이 있으면 모델은 입력에서 정답으로 가는 함수를 배운다. 이 방식은 명확하지만, 사람이 모든 정답을 붙여야 한다는 비용 한계가 있다.

그 한계 때문에 학습 신호가 다양해졌다.

  1. 레이블이 있는 문제 → 지도학습 정답이 있으니 loss를 직접 계산할 수 있다. 분류·회귀·의도 분류처럼 “맞았는지 틀렸는지”를 정의할 수 있는 업무에 강하다. 대신 레이블 품질, class imbalance, train/test leakage가 그대로 모델 품질을 결정한다.
  2. 레이블이 부족한 문제 → 비지도학습 정답은 없지만 데이터의 거리, 밀도, 분산 같은 구조는 있다. 군집화·차원 축소·이상 탐지에 유용하다. 대신 군집이 비즈니스 의미와 일치한다는 보장이 없고, “그럴듯한 패턴”을 실제 원인으로 착각하기 쉽다.
  3. 행동과 결과가 이어지는 문제 → 강화학습 한 번의 정답보다 여러 행동 뒤 보상이 중요하다. 게임, 로봇, 추천 정책, 대화 정책처럼 “지금 선택이 나중 결과를 바꾸는” 문제를 다룬다. 대신 보상 설계가 틀리면 모델은 목표를 달성하는 척하면서 보상만 해킹한다.
  4. 레이블 비용이 너무 큰 문제 → 자기지도학습 텍스트의 다음 토큰, 가려진 단어, 같은 이미지의 다른 augmentation처럼 데이터 자체에서 정답을 만든다. 대규모 pretraining을 가능하게 하지만, “다음 토큰을 잘 맞힘”이 곧 “사실을 말함”이나 “사용자 의도를 따름”은 아니다.
  5. 일반 능력과 제품 목표의 간극 → fine-tuning과 정렬 pretraining 모델은 언어 패턴을 잘 알지만 특정 도메인 포맷, 정책, 선호를 자동으로 따르지는 않는다. SFT는 좋은 답안을 모방하게 하고, RLHF/DPO는 사람 선호 쪽으로 행동을 밀어준다. 이 단계의 실패는 loss보다 제품 지표와 안전 지표에서 먼저 드러나는 경우가 많다.

이 문서의 목표는 각 기법 이름을 외우는 것이 아니라, 새 방법을 만났을 때 “학습 신호가 어디서 오고, 어떤 실패 모드를 새로 만드는가”를 먼저 묻는 습관을 만드는 것이다.

3.1 지도학습(Supervised Learning) — 정답 레이블에서 배우기

섹션 제목: “3.1 지도학습(Supervised Learning) — 정답 레이블에서 배우기”

학습 신호는 사람이 붙였거나 시스템이 기록한 (input, target) 쌍이다. 모델은 입력을 보고 target에 가까운 출력을 내도록 손실을 줄인다.

푸는 문제는 정답을 비교적 명확히 정의할 수 있는 예측이다.

  • 분류: 이메일이 스팸인지 아닌지, 문의가 결제 문제인지 계정 문제인지
  • 회귀: 집값, 배송 시간, 다음 달 사용량처럼 연속값 예측
  • 시퀀스 출력: 질문에 대한 모범 답변, 번역문, 요약문 생성

작은 예시 — 라벨 있는 분류

입력: "무료 쿠폰을 받으려면 지금 클릭하세요"
정답 레이블: spam
모델 예측: spam 확률 0.82
손실: 정답 spam에 더 높은 확률을 주면 작아지고, not spam에 높은 확률을 주면 커진다

이 예시에서 학습 신호는 “정답이 spam이다”라는 레이블이다. cross-entropy loss는 모델이 정답 클래스에 확률을 얼마나 줬는지로 틀린 정도를 계산한다. 옵티마이저는 그 loss를 줄이는 방향으로 가중치를 조금씩 바꾼다.

생기는 실패 모드

  • 레이블이 틀리면 모델은 틀린 기준을 성실히 학습한다.
  • class imbalance가 크면 accuracy는 높아도 minority class recall이 0에 가까울 수 있다.
  • train loss는 떨어지는데 validation loss가 오르면 overfitting이다.
  • 학습 데이터와 운영 데이터가 달라지면, 학습 때는 좋던 분류기가 운영에서 갑자기 약해진다.

지도학습은 정답이 있을 때 가장 직접적이다. 하지만 “정답이 있다”는 말은 “좋은 레이블이 충분하고, 운영 데이터도 같은 분포이며, 제품 목표와 레이블이 맞다”는 강한 가정까지 포함한다.

3.2 비지도학습(Unsupervised Learning) — 정답 없이 구조 찾기

섹션 제목: “3.2 비지도학습(Unsupervised Learning) — 정답 없이 구조 찾기”

학습 신호는 명시적 정답이 아니라 데이터 사이의 거리, 밀도, 분산, 재구성 오차 같은 구조다. 모델은 “무엇이 정답인지”가 아니라 “무엇이 서로 비슷한지”, “어느 방향으로 정보가 많이 퍼져 있는지”를 찾는다.

푸는 문제는 레이블이 없거나 레이블을 붙이기 전 탐색이 필요한 상황이다.

  • 군집화: 비슷한 고객, 비슷한 문서, 비슷한 장애 티켓 묶기
  • 차원 축소: 고차원 임베딩을 2~3차원으로 줄여 시각화하기
  • 이상 탐지: 대부분의 패턴과 다른 입력 찾기

작은 예시 — 레이블 없는 군집

티켓 6개를 임베딩으로 바꾼 뒤 k-means(k=3)를 적용한다.
Cluster A: "환불", "결제 취소"
Cluster B: "비밀번호 재설정", "로그인 실패"
Cluster C: "배송 지연", "송장 조회"

여기에는 “정답 클러스터”가 없다. 모델은 문장 임베딩 사이의 거리가 가까운 것끼리 묶었을 뿐이다. 사람이 나중에 Cluster A를 “결제/환불”, Cluster B를 “계정”, Cluster C를 “배송”이라고 해석한다.

생기는 실패 모드

  • 군집은 수학적으로는 깔끔해도 업무 의미와 다를 수 있다.
  • k-means는 k를 미리 정해야 하므로, 실제 주제가 5개인데 k=3을 주면 서로 다른 문제가 섞인다.
  • 이상 탐지는 “드문 것”을 찾지만, 드문 것이 항상 위험한 것은 아니다.
  • 시각화용 차원 축소 결과를 원인 분석으로 과해석하기 쉽다.

비지도학습은 정답이 없을 때 출발점을 만들어준다. 다만 결과는 “발견된 구조”이지 “검증된 원인”이 아니다. 후속 라벨링, 샘플 검토, 제품 지표 확인이 붙어야 한다.

3.3 강화학습(Reinforcement Learning) — 행동 뒤 보상에서 배우기

섹션 제목: “3.3 강화학습(Reinforcement Learning) — 행동 뒤 보상에서 배우기”

학습 신호는 정답 레이블이 아니라 행동 뒤에 돌아오는 reward다. 모델은 어떤 상태에서 어떤 행동을 할지 정하는 policy를 학습하고, 긴 시간 동안 누적 reward가 커지는 방향으로 갱신된다.

푸는 문제는 단일 예측보다 행동 순서와 장기 결과가 중요한 문제다.

  • 게임에서 지금 수가 몇 턴 뒤 승률을 바꾼다.
  • 추천 시스템에서 지금 추천이 다음 방문, 구매, 이탈에 영향을 준다.
  • 대화 모델에서 한 응답이 다음 사용자 반응과 안전성 평가를 바꾼다.

작은 예시 — 보상 설계 실패

목표: 고객지원 봇이 사용자의 문제를 해결하게 한다.
잘못 둔 보상: "상담 종료 버튼을 누르면 +1"
모델이 찾은 행동: 충분히 해결하지 않고 빠르게 종료를 유도한다.
겉보기 지표: 종료율 상승
실제 제품 지표: 재문의율 상승, 사용자 만족도 하락

모델은 “문제 해결”이라는 사람의 의도를 직접 본 것이 아니라, “종료 버튼”이라는 proxy reward를 본다. proxy가 목표와 어긋나면 모델은 의도와 다른 방식으로 reward를 높인다. 이것이 reward hacking의 기본 모양이다.

LLM 정렬과의 연결

RLHF는 사람 선호를 보상 모델로 학습한 뒤, 그 보상을 높이는 방향으로 언어 모델을 조정하는 방식이다. DPO는 (prompt, chosen, rejected) 같은 선호 쌍에서 직접 preference loss를 만들고, 별도의 강화학습 루프를 줄인 방식으로 이해하면 충분하다. 여기서는 “정답 1개를 맞히는 문제”가 아니라 “사람이 더 선호하는 행동을 고르는 문제”로 바뀌었다는 점만 잡으면 된다.

생기는 실패 모드

  • 보상이 희소하면 어떤 행동이 좋은지 배우기 어렵다.
  • 탐험이 부족하면 이미 아는 행동만 반복하고 더 좋은 전략을 못 찾는다.
  • 보상 설계가 틀리면 reward hacking이 생긴다.
  • 학습 환경에서는 좋아진 정책이 운영 분포에서는 이상한 행동을 할 수 있다.

강화학습은 강력하지만, “정답을 제공하지 않아도 된다”는 말이 “목표 설계가 쉽다”는 뜻은 아니다. 오히려 무엇을 reward로 둘지가 핵심 난도다.

3.4 자기지도학습(Self-Supervised Learning) — 데이터 자체에서 정답 만들기

섹션 제목: “3.4 자기지도학습(Self-Supervised Learning) — 데이터 자체에서 정답 만들기”

학습 신호는 사람이 붙인 레이블이 아니라 데이터 안에서 자동으로 만든 target이다. 형식적으로는 지도학습처럼 loss를 계산하지만, 정답을 사람이 만들지 않는다는 점이 다르다.

푸는 문제는 대규모 원시 데이터에서 표현을 학습하는 것이다. 텍스트, 이미지, 음성처럼 데이터는 많지만 모든 샘플에 정답을 붙이기 어려운 영역에서 특히 중요하다. 이미지 수천만 장에도 사람이 라벨을 붙이는 비용은 크고, 웹 텍스트 수조 토큰에 “정답 문장”을 붙이는 것은 사실상 불가능하다. 자기지도학습은 이 병목을 “데이터 일부를 가리고 맞히기” 또는 “다음 조각을 예측하기”로 바꾼다. 레이블 비용을 줄인 대신, 데이터에 들어 있는 편향과 오류도 함께 배울 수 있다는 대가가 생긴다.

작은 예시 — next-token prediction

문장: "오늘 회의는 오후 세 시에 시작한다"
입력: "오늘 회의는 오후 세 시에"
target: "시작한다"

모델은 앞 토큰들을 보고 다음 토큰 확률분포를 만든다. target 토큰의 확률이 낮으면 cross-entropy loss가 커지고, 높으면 작아진다. 이 과정을 엄청나게 많은 텍스트에서 반복하면 문법, 사실 패턴, 추론의 일부가 가중치에 압축된다.

작은 예시 — masked language modeling

원문: "데이터베이스는 트랜잭션을 로그에 기록한다"
입력: "데이터베이스는 [MASK]을 로그에 기록한다"
target: "트랜잭션"

가려진 토큰을 맞히는 방식이다. next-token 방식이 왼쪽 문맥으로 다음을 예측한다면, masked 방식은 양쪽 문맥을 보고 빠진 부분을 복원한다.

생기는 실패 모드

  • 다음 토큰을 잘 맞히는 능력은 사실 검증 능력과 다르다.
  • 인터넷 텍스트의 편향과 오류를 그대로 흡수할 수 있다.
  • pretraining loss가 낮아져도 특정 제품 과업의 성공률이 자동으로 올라가지는 않는다.
  • 사람 선호, 안전 정책, 도메인 포맷은 별도 fine-tuning이나 정렬이 필요하다.

자기지도학습은 스케일 문제를 해결하지만 목표 정렬 문제를 해결하지는 않는다. 그래서 LLM 시스템은 보통 pretraining 이후 SFT, preference tuning, 평가 데이터셋을 추가로 사용한다.

패러다임학습 신호 출처잘 푸는 문제대표 실패 모드
지도학습사람이 붙인 레이블, 시스템 로그 target분류, 회귀, 모범 답안 모방레이블 오류, leakage, imbalance, overfitting
비지도학습거리, 밀도, 분산, 재구성 오차군집화, 차원 축소, 이상 탐지의미 없는 군집, 과해석, false positive
강화학습행동 뒤 reward순차 의사결정, 정책 최적화reward hacking, 탐험 부족, sparse reward
자기지도학습데이터 자체에서 만든 target대규모 표현 학습, pretraining목표 불일치, 편향 흡수, 제품 지표와 괴리

패러다임이 달라도 모델을 갱신하는 기본 문장은 비슷하다.

예측을 만든다 -> loss를 계산한다 -> gradient를 구한다 -> optimizer가 가중치를 바꾼다

Training은 데이터로 loss를 계산하고 gradient를 통해 가중치를 바꾸는 과정이다. 특히 foundation model을 처음부터 대규모 데이터로 학습하는 단계를 pretraining이라고 부른다.

Inference는 이미 학습된 가중치를 고정하고 입력에 대한 출력을 계산하는 과정이다. 이때는 gradient를 계산하지 않고 가중치도 바꾸지 않는다. prompt에 예시를 넣어 행동을 바꾸는 in-context learning도 가중치 관점에서는 inference다.

Fine-tuning은 이미 학습된 모델을 출발점으로 삼아 특정 데이터에서 다시 가중치를 조금 바꾸는 과정이다. SFT는 모범 답안을 따라 하게 만드는 지도 fine-tuning이고, **LoRA(Low-Rank Adaptation)**는 전체 가중치 대신 작은 저랭크 행렬만 학습해 메모리와 계산 비용을 줄이는 방식이다. QLoRA(Quantized LoRA)는 base model을 양자화한 채 LoRA adapter를 학습해 메모리를 더 줄인다. Adapter는 기존 모델 옆에 붙이는 작은 학습 모듈, 저랭크 행렬은 큰 가중치 변화를 더 작은 두 행렬의 곱으로 근사하는 표현, 양자화는 숫자를 더 적은 bit로 저장해 메모리를 줄이는 기법이라고 잡으면 된다.

구분가중치 변경입력 데이터주 비용실패 신호
Pretraining크게 변경대규모 원시 데이터학습 연산일반 능력 부족, pretraining loss 정체
Fine-tuning일부 또는 전체 변경작업/도메인 데이터재학습과 검증overfitting, catastrophic forgetting
Inference변경 없음사용자 입력, prompt, retrieved context매 호출 지연/토큰지연 증가, 답변 품질 변동

비용은 정확한 달러 숫자보다 자릿수로 보는 편이 안전하다. pretraining은 모델 크기와 데이터 규모가 함께 커지는 큰 고정 비용이고, fine-tuning은 그보다 작은 일회성 비용이며, LoRA/QLoRA 같은 adapter 방식은 학습되는 파라미터를 줄여 더 싸게 만든다. inference는 한 번은 작아 보여도 요청이 많으면 누적 비용과 latency가 제품 비용이 된다.

**RAG(Retrieval-Augmented Generation)**는 외부 문서를 검색해 결과를 prompt context에 넣는 방식이다. 가중치를 바꾸지 않고 최신 지식을 주입하므로, 학습 비용 대신 검색·입력 토큰 비용이 누적된다.

결정먼저 볼 수치해석
pretraining토큰 수, 파라미터 수, GPU 시간대부분의 팀에는 직접 수행보다 모델 선택 문제
full fine-tuning데이터 수, epoch, 검증 비용행동은 바뀌지만 forgetting 위험이 큼
LoRA/QLoRAadapter rank, 학습 GPU 메모리싸고 되돌리기 쉽지만 표현력은 제한
inference요청 수, output token, p95 latency호출량이 커지면 작은 단가도 제품 비용이 됨

자릿수 감각은 다음처럼 둔다. 비용 범위는 규모 차이를 이해하기 위한 가상 anchor이며 견적이 아니다. 데이터 열은 행 수가 아니라 실제 선택을 좌우하는 증거를 적는다.

선택지가상 비용 자릿수필요한 데이터 증거읽는 법
pretraining보통 $M~$100M+급으로 논의tokenizer·domain coverage와 scaling curve대부분의 제품팀은 직접 학습보다 모델 선택과 평가 문제로 본다
full SFT$K~$100K급으로 넓게 변동검수된 과업 coverage, held-out learning curve, forgetting regression행동을 크게 바꿀 수 있지만 평가와 rollback 비용도 같이 생긴다
LoRA/QLoRA$10~$K급도 가능base capability gap, adapter rank sweep, domain-shift slice싸고 실험이 빠르지만 base model 능력 밖의 일을 만들지는 못한다
prompt/RAG/in-context학습 비용은 거의 없음, 호출 비용은 per-call 누적최신성·근거 회수 필요, context 적합성, retrieval coverage시작은 싸지만 100만 호출 단위가 되면 latency와 토큰 단가가 핵심이 된다

이 표의 숫자는 벤더 가격표나 방식 선택 threshold가 아니라 의사결정 anchor다. 실제 비용은 모델 크기, context 길이, 출력 토큰 수, GPU 대여 방식, 평가·재학습 비용에 따라 크게 달라진다. Prompt, LoRA/QLoRA, full SFT 중 무엇을 택할지는 데이터 행 수로 자르지 않고 base model의 현재 능력, 바꾸려는 행동, 과업 난도, domain shift, learning curve, 회귀 위험으로 정한다. 그래도 “pretraining은 예산 항목 자체가 다르고, fine-tuning은 데이터와 평가가 비용이며, inference는 트래픽이 비용을 만든다”는 구분은 유지된다.

이 구분을 놓치면 의사결정이 흔들린다. 새 지식이 자주 바뀌는 문제를 fine-tuning으로 풀면 재학습 비용이 커지고, 출력 포맷이나 톤 문제를 RAG만으로 풀면 검색은 좋아져도 행동은 잘 바뀌지 않는다.

4.2 Loss function — 무엇을 틀렸다고 볼 것인가

섹션 제목: “4.2 Loss function — 무엇을 틀렸다고 볼 것인가”

Loss function은 모델의 출력이 target에서 얼마나 멀리 있는지를 숫자로 바꾸는 함수다. loss가 있어야 gradient를 계산할 수 있고, gradient가 있어야 optimizer가 가중치를 바꿀 수 있다.

문제흔한 loss직관
이진 분류Binary cross-entropy정답 클래스 확률이 낮을수록 큰 벌점
다중 분류, 다음 토큰 예측Cross-entropy정답 분포와 예측 분포의 차이
회귀MSE, MAE, Huber예측값과 실제값의 거리
임베딩/검색Contrastive, triplet, InfoNCE가까워야 할 쌍은 가깝게, 멀어야 할 쌍은 멀게
선호 정렬Pairwise preference loss, DPO losschosen이 rejected보다 더 높은 점수를 받게 함

loss가 낮아져도 제품 지표가 나빠지는 예시

목표: 문의 자동 분류로 상담 시간을 줄인다.
학습 target: 상담원이 마지막에 고른 카테고리
문제: 상담원은 애매한 건을 "기타"로 자주 저장했다.
학습 결과:
- validation cross-entropy는 0.42 -> 0.31로 좋아짐
- 모델은 "기타"를 더 자주 예측함
- 제품 지표에서는 자동 라우팅 성공률이 떨어짐

여기서 loss는 주어진 레이블을 더 잘 맞히도록 내려갔다. 하지만 레이블 자체가 제품 목표인 “정확한 라우팅”과 어긋나 있었기 때문에 제품 지표는 나빠졌다. loss는 모델 갱신의 기준이지 제품 성공의 완전한 대리자가 아니다.

Optimizer는 gradient를 보고 가중치를 얼마나, 어떤 방식으로 움직일지 정한다.

  • SGD: 현재 gradient 방향으로 단순히 이동한다. 이해하기 쉽고 작은 문제의 기준선으로 좋다.
  • SGD + Momentum: 이전 gradient 방향의 관성을 더해 진동을 줄인다.
  • Adam: parameter마다 gradient의 평균과 분산을 추적해 학습률을 다르게 적용한다.
  • AdamW: Adam에서 weight decay를 분리해 regularization이 더 예측 가능하게 동작한다. 신경망 fine-tuning의 기본 선택지로 자주 쓰인다.

Learning rate는 한 번 업데이트할 때 가중치를 얼마나 크게 움직일지 정하는 값이다.

  • 너무 크면 loss가 튀거나 NaN/Inf가 된다.
  • 너무 작으면 loss가 거의 줄지 않는다.
  • warmup은 초반에 learning rate를 천천히 올려 큰 모델의 초기 불안정을 줄인다.
  • decay는 학습 후반에 learning rate를 낮춰 수렴을 안정화한다.

Schedule은 learning rate를 시간에 따라 바꾸는 계획이다. constant는 고정, linear decay는 직선 감소, cosine decay는 완만하게 줄어드는 곡선, warmup + decay는 초반 안정성과 후반 수렴을 함께 노린다. AdamW가 자주 기본값이 되는 이유는 gradient 크기가 feature나 layer마다 다를 때도 update를 비교적 안정적으로 맞춰주고, weight decay를 loss의 regularization과 분리해 튜닝하기 쉽기 때문이다. Warmup은 큰 모델 초반의 불안정한 gradient가 한 번에 가중치를 크게 망가뜨리는 실패를 줄이고, decay는 후반에 너무 큰 발걸음으로 최소점 주변을 흔드는 문제를 줄인다.

옵티마이저와 schedule의 실패는 보통 로그에 먼저 나타난다.

관측먼저 의심할 것이유
loss가 갑자기 폭발learning rate 과대, gradient clipping 부재한 번의 update가 너무 큼
loss가 거의 안 움직임learning rate 과소, 모델 capacity 부족가중치 변화가 작거나 표현력이 부족
train loss만 계속 감소overfitting, validation 분포 불일치학습 데이터만 외우는 중
validation은 좋지만 제품 지표 악화target과 제품 목표 불일치proxy loss가 실제 목표를 못 대변

Gradient는 loss를 가장 빠르게 증가시키는 방향이고, 학습은 그 반대 방향으로 가중치를 움직인다. L11-10의 w_new = w_old - eta * gradient가 여기서 그대로 쓰인다.

Batch는 한 번의 update를 계산할 때 묶는 샘플 수다. batch size가 1이면 샘플 하나의 noisy한 gradient를 쓰고, batch size가 커지면 여러 샘플의 평균 gradient를 쓴다.

정량 감각

micro-batch size = 8
gradient accumulation steps = 4
effective batch size = 8 * 4 = 32

메모리가 부족해 한 번에 32개 샘플을 넣지 못해도, 8개씩 4번 forward/backward를 한 뒤 한 번 update하면 effective batch는 32에 가까워진다. 다만 activation 저장, optimizer state, 통신 비용 때문에 실제 throughput은 별도로 측정해야 한다.

Batch 관련 실패 신호

  • batch가 너무 작으면 gradient 분산이 커져 loss curve가 심하게 흔들린다.
  • batch가 너무 크면 메모리가 터지거나, update 횟수가 줄어 같은 epoch에서도 학습이 둔해질 수 있다.
  • gradient norm이 갑자기 커지면 exploding gradient를 의심하고 clipping을 검토한다.
  • mixed precision에서는 overflow/underflow로 NaN이 생길 수 있어 loss scaling이나 bf16 사용 여부를 확인한다.

Distribution shift는 학습할 때 본 데이터 분포와 운영에서 만나는 데이터 분포가 달라지는 현상이다. **OOD(Out-of-Distribution)**는 모델이 학습 분포 밖에서 온 입력을 만나는 경우다.

종류무엇이 바뀌는가작은 예시
Covariate shift입력 X의 분포기존 사용자는 짧은 문의를 보냈는데, 새 채널 유입 후 긴 복합 문의가 많아짐
Label shift정답 Y의 비율스팸 비율이 5%에서 40%로 급증
Concept driftP(Y|X) 관계예전에는 특정 문구가 정상 안내였지만 정책 변경 후 오해 소지가 있는 답변이 됨
OOD학습에서 거의 못 본 입력한국어 상담 모델에 로그 덤프, 코드, 다른 언어가 섞인 입력이 들어옴

작은 예시 — 분포 변화

학습 데이터:
- 평일 업무 시간의 고객 문의
- 짧은 한국어 문장
- 기존 상품군 중심
운영 데이터:
- 새벽 장애 상황의 긴 문의
- 에러 코드와 스크린샷 OCR 텍스트 포함
- 출시된 지 하루 된 신규 상품 문의
결과:
- confidence는 높지만 실제 라우팅 성공률이 떨어진다.

이 경우 모델이 “자신 있게 틀리는” 일이 생긴다. train/validation이 모두 과거 분포에서 만들어졌다면 validation loss는 여전히 좋아 보일 수 있다. 그래서 운영에서는 input length, null rate, 카테고리 비율, confidence, 거부율, 사람이 검수한 고정 평가셋(gold dataset) 성능을 함께 본다.

분포 변화 대응의 핵심은 모델을 바로 다시 학습하는 것이 아니라 변화가 입력 분포인지, 정답 비율인지, 정답 규칙 자체인지를 먼저 구분하는 것이다.

  • 입력 분포가 바뀌었으면 샘플링·모니터링·도메인 적응을 검토한다.
  • 정답 비율이 바뀌었으면 threshold와 calibration을 먼저 본다.
  • 정답 규칙이 바뀌었으면 레이블 정책과 평가 데이터셋 자체를 갱신해야 한다.
  • OOD가 많으면 거부, fallback, human review 경로가 필요하다.

Alignment는 모델 행동이 사람의 의도, 안전 정책, 제품 목표에 맞게 조정되는 정도다. 여기서는 RLHF나 DPO의 수학을 깊게 다루지 않고, post-training 이후 어떤 조용한 실패가 생기는지만 본다.

아래 수치는 특정 제품의 배포 차단선이 아니라, 한 가상 baseline에서 행동 변화 방향을 읽는 예시다. 실제 alert는 모델, 과업 위험, 언어·길이 분포, baseline 변동성에 맞춰 보정한다.

신호겉보기가상 관측 예실제 의미먼저 확인할 것
Reward hackingreward 점수는 오르지만 사람이 보기엔 나쁨reward는 오르는데 gold set/제품 지표 하락proxy reward가 목표를 잘못 대표샘플 리뷰, gold set, 제품 지표
Verbosity drift답이 지나치게 길어짐baseline 대비 평균 길이 30% 증가, 해결률 정체선호 데이터가 긴 답을 보상했을 수 있음길이별 품질, 불필요 문장 비율
Shortness collapse답이 짧고 회피적임평균 길이 급감, 거절률·재문의율 증가거절/안전 보상이 과하게 작동해결률, 재문의율, 거절 사유
Sycophancy사용자 주장에 과하게 동의반대 근거 제시 실패율 증가선호 학습이 “맞장구”를 보상반대 근거 제시 평가
Catastrophic forgetting특정 과업은 좋아졌지만 일반 능력 저하공통 benchmark나 다국어·코딩 점수 하락fine-tuning이 기존 능력을 덮음공통 benchmark, replay 샘플
OOD exploit학습 분포 밖 입력에서 이상 행동OOD/adversarial set 성공률 하락선호 데이터 범위가 좁음OOD 샘플, adversarial set

silent failure가 위험한 이유는 loss 하나로 잘 보이지 않기 때문이다. 예를 들어 DPO 후 validation preference loss는 내려갔는데, 실제 제품에서는 답변이 장황해져 사용자가 더 빨리 이탈할 수 있다. 이때 필요한 것은 “loss가 내려갔으니 성공”이라는 결론이 아니라, loss, gold set, 제품 지표, 안전 지표를 나눠 보는 습관이다. 예를 들어 평균 답변 길이가 40% 늘었는데 해결률은 그대로라면, preference loss 개선이 실제 사용자 가치로 이어졌다고 보기 어렵다. 반대로 평균 길이가 줄었지만 거절률과 재문의율이 함께 늘면 shortness collapse를 의심한다. 이 가상 숫자는 절대 기준이 아니라 “행동이 한쪽으로 밀리고 있는가”를 읽는 방법을 보여 준다.

RLHF 계열은 보통 reference model과 너무 멀어지지 않게 KL penalty나 beta 같은 제약을 둔다. Reference model은 정렬 전 기준 모델이고, KL penalty는 새 모델의 출력 분포가 기준 모델에서 너무 멀어질 때 주는 벌점이다. Beta는 이 벌점의 세기를 조절하는 손잡이라고 읽으면 된다. 이 제약이 너무 약하면 reward hacking이 쉬워지고, 너무 강하면 행동이 거의 바뀌지 않는다.

DPO는 RL 루프를 줄이지만 (prompt, chosen, rejected) 선호쌍의 편향과 품질에 더 민감하다.

다음 이름은 선택 심화다. 첫 회독에서는 세부 loss보다 어떤 학습 신호를 쓰는지만 구분한다.

  • KTO(Kahneman-Tversky Optimization): 짝지은 선호쌍 없이도 각 응답의 desirable/undesirable 이진 피드백으로 효용을 최적화하는 정렬 방식이다.
  • ORPO(Odds Ratio Preference Optimization): chosen/rejected 선호쌍의 odds ratio를 SFT loss와 함께 최적화해 별도 reference model 없이 정렬하는 방식이다.
  • GRPO(Group Relative Policy Optimization): 한 prompt에서 여러 응답을 뽑고 그룹 안의 상대 reward로 advantage를 계산해 별도 critic 없이 정책을 갱신하는 강화학습 방식이다.
  • RLVR(Reinforcement Learning with Verifiable Rewards): 수학 정답이나 코드 테스트처럼 자동 검증 가능한 결과를 reward로 쓰는 학습 설정이다. GRPO 같은 optimizer와 달리 reward의 출처를 가리킨다.

따라서 처음에는 “이진 피드백, 선호쌍, 그룹 상대 보상, 검증 가능한 reward 중 무엇을 쓰는가”로만 분류하면 충분하다.

새 알고리즘이나 LLM post-training 방법을 보면 아래 다섯 질문으로 먼저 분해한다.

  1. 학습 신호는 어디서 오는가? 정답 레이블, preference pair, reward, 데이터 자체 target, 운영 로그 중 무엇인가?
  2. 어떤 데이터 형태와 비용이 필요한가? 단일 label, paired preference, binary feedback, trajectory, 문서 corpus 중 무엇이며, 수집·검수 비용은 $K급인지 $M급인지?
  3. 무엇을 최적화하는가? cross-entropy, MSE, contrastive loss, reward, preference loss 중 무엇인가?
  4. 가중치는 어떻게 갱신되는가? full fine-tuning인가, LoRA인가, RL loop인가, closed-form preference loss인가?
  5. 어떤 silent failure가 생기는가? overfitting, reward hacking, OOD exploit, catastrophic forgetting, 제품 지표 악화 중 무엇을 봐야 하는가?

이 질문은 지도학습, 비지도학습, 강화학습, 자기지도학습 모두에 적용된다. 기법 이름이 낯설어도 학습 신호와 실패 모드를 찾으면 절반은 읽은 것이다.

LLM 앱에서 자주 헷갈리는 결정은 “모델을 다시 학습할 것인가, 검색으로 지식을 넣을 것인가, prompt만 바꿀 것인가”다. §4.1에서 정의한 RAG는 가중치를 바꾸지 않기 때문에 지식 갱신은 쉽지만, 모델의 말투·추론 습관 자체가 자동으로 바뀌지는 않는다.

목표1차 선택이유
자주 바뀌는 지식 반영RAG문서를 바꾸면 검색 결과가 바뀌고, 가중치 재학습이 필요 없다
답변 톤, 포맷, 도메인 스타일 변경fine-tuning같은 입력에도 모델 행동 자체를 바꿔야 한다
규칙 몇 개와 예시로 충분한 작업prompt가장 싸고 되돌리기 쉽다
여러 도구 호출과 단계적 처리prompt + orchestration모델 가중치보다 실행 흐름 설계가 핵심이다
기존 능력 유지가 매우 중요RAG 또는 작은 adapterfull fine-tuning은 forgetting 위험이 있다

행 수만으로 prompt, LoRA, full SFT를 고르는 보편 임계값은 없다. 같은 1K 예시라도 base 모델이 이미 아는 짧은 JSON 형식을 교정하는 일과, 낯선 법률 도메인에서 추론 정책을 바꾸는 일은 필요한 update 용량이 다르다. 반대로 데이터가 많아도 중복이 심하고 label 기준이 흔들리면 full fine-tuning의 근거가 되지 않는다.

선택은 다음 요인을 함께 본다.

판단 요인Prompt/RAG 쪽 근거LoRA/SFT·full FT를 비교할 근거
바꾸려는 것최신 지식, 자주 바뀌는 규칙, orchestration반복되는 말투·형식·행동, 모델 내부 표현의 적응
base 모델의 시작 능력few-shot만으로도 실패가 빠르게 줄어듦prompt를 바꿔도 같은 실패 유형이 반복됨
데이터 품질·다양성label spec이 아직 변하고 실패 taxonomy가 불안정함중복 제거·검수된 예시가 과업과 실패 유형을 덮음
domain shift검색 근거로 설명 가능한 최신성 차이base 분포와 달라 held-out domain에서도 학습 이득이 남음
learning curve와 회귀subset을 늘려도 이득이 없거나 회귀가 커짐token을 늘릴수록 held-out 이득이 재현되고 회귀가 허용됨
자원·배포 제약빠른 변경·rollback·낮은 학습비가 중요추론 prompt 비용 절감이 학습·검증·배포 비용을 상쇄

행 수는 이 요인을 측정하기 위한 가상 실험 시작점으로만 남길 수 있다. 예를 들어 100 → 1K → 10K의 중복 제거 subset을 만들고 base model, 과업, domain shift, 목적함수, token budget, seed를 기록해 held-out learning curve를 그린다. 숫자 구간이 방법을 결정하는 것이 아니라, 곡선과 회귀가 다음 실험을 정한다.

작은 결정 예시

상황: 사내 정책 Q&A 봇
문제 A: 최신 휴가 규정이 자주 바뀐다.
선택: RAG
이유: 지식이 바뀌는 문제라 문서 인덱스를 갱신하는 편이 낫다.
판단: 문서가 바뀔 때마다 재학습하지 않고 검색 corpus만 갱신한다.
문제 B: 답변이 매번 너무 장황하고 내부 문서 포맷을 지키지 않는다.
선택: SFT 또는 preference tuning 검토
이유: 지식보다 행동 양식이 문제다.
가상 실험 조건: 이 팀이 가진 8K 검수 Q&A를 `500 → 2K → 8K` subset으로 나누고, 동일 base·split·token budget에서 포맷 준수율이나 해결률의 learning curve를 확인한다.
판단: RAG만으로는 포맷 습관이 잘 바뀌지 않으므로, RAG + LoRA/SFT hybrid를 비교한다.
성공 기준: gold dataset 해결률, 포맷 준수율, 평균 응답 길이, 호출 비용을 같이 본다.
문제 C: 특정 키워드가 있으면 고정 안내문을 붙이면 된다.
선택: prompt 또는 후처리 규칙
이유: 가중치를 바꾸는 비용과 위험이 과하다.
상황먼저 볼 패러다임피해야 할 오해
정답 레이블이 충분하다지도학습accuracy 하나만 보지 않는다
레이블은 없고 구조 탐색이 필요하다비지도학습군집을 원인으로 단정하지 않는다
행동이 장기 보상에 영향을 준다강화학습reward 설계를 과소평가하지 않는다
원시 데이터는 많고 레이블은 비싸다자기지도학습pretraining objective가 제품 목표와 같다고 보지 않는다
pretraining 모델을 업무에 맞춘다fine-tuning/정렬loss만 보고 성공 판단하지 않는다
개념 A개념 B차이점
지도학습자기지도학습둘 다 target으로 loss를 계산하지만, 지도학습 target은 사람이 제공하고 자기지도 target은 데이터에서 자동 생성한다
비지도학습자기지도학습비지도는 구조 발견이 목적이고, 자기지도는 자동 target으로 표현을 학습한다
TrainingInferencetraining은 가중치를 바꾸고, inference는 가중치를 고정한다
Fine-tuningIn-context learningfine-tuning은 가중치를 바꾸고, in-context learning은 prompt만 바꾼다
LossProduct metricloss는 학습용 대리 목표이고, product metric은 실제 성공 기준이다
OptimizerLearning rate scheduleoptimizer는 갱신 규칙이고, schedule은 갱신 크기의 시간 계획이다
Batch sizeGradient accumulationbatch size는 한 update의 샘플 수이고, accumulation은 작은 micro-batch를 모아 큰 effective batch를 흉내 낸다
Distribution shiftOODshift는 분포가 달라진 상태 전반이고, OOD는 학습 분포 밖 입력을 특히 가리킨다
RLHFDPORLHF는 보상 모델과 RL 갱신을 쓰고, DPO는 preference pair로 직접 loss를 만든다

지도학습 손실과 제품 지표 분리

섹션 제목: “지도학습 손실과 제품 지표 분리”
  • 작은 분류 데이터셋에서 train/validation loss와 F1을 함께 기록한다.
  • class imbalance를 일부러 만든 뒤 accuracy와 minority recall이 어떻게 달라지는지 본다.
  • validation loss가 내려가도 특정 class recall이 떨어질 수 있음을 확인한다.
  • 문장 20개를 임베딩하고 k-means로 3개 군집을 만든다.
  • 군집별 샘플을 사람이 직접 읽고, “거리상 가까움”과 “업무상 같은 주제”가 항상 같지 않음을 확인한다.
  • k를 2, 3, 5로 바꿔 군집 해석이 얼마나 흔들리는지 본다.
  • 문장 하나에서 next-token target을 손으로 여러 개 만들어 본다.
  • 같은 문장에서 masked token target을 만들어 보고, next-token과 어떤 문맥 사용 차이가 있는지 비교한다.
  • “다음 토큰을 잘 맞힘”과 “사실을 검증함”이 다른 목표임을 예시로 설명한다.
  • 학습/운영 샘플의 입력 길이, 카테고리 비율, null rate를 비교한다.
  • 성능이 떨어졌을 때 covariate shift, label shift, concept drift 중 어디에 가까운지 분류해 본다.
  • OOD 샘플에는 높은 confidence보다 거부나 human review가 더 안전한 경우를 적어 본다.

ML 패러다임 기초 체크

  • 지도학습, 비지도학습, 강화학습, 자기지도학습을 학습 신호 출처로 구분할 수 있다
  • 각 패러다임이 푸는 문제와 새로 만드는 실패 모드를 하나씩 설명할 수 있다
  • training, inference, fine-tuning의 차이를 가중치 변경 여부로 설명할 수 있다
  • loss function이 학습 기준이고 product metric과 다를 수 있음을 예시로 설명할 수 있다
  • optimizer, learning rate schedule, batch, gradient가 모델 갱신에서 맡는 역할을 설명할 수 있다
  • distribution shift와 OOD를 구분하고 작은 운영 예시를 들 수 있다
  • RLHF/DPO를 깊은 수식 없이도 선호 정렬의 계보로 설명할 수 있다
  • alignment silent failure를 loss, gold set, 제품 지표, 안전 지표로 나눠 모니터링해야 함을 설명할 수 있다

이 절은 첫 회독 필수가 아니라 선택 심화용 이름 지도다. 특히 **PCA(Principal Component Analysis)**는 분산이 큰 선형 축으로 데이터를 투영하는 차원 축소, **UMAP(Uniform Manifold Approximation and Projection)**은 이웃 관계를 보존해 저차원에 배치하는 비선형 차원 축소, **HDBSCAN(Hierarchical Density-Based Spatial Clustering of Applications with Noise)**은 밀도가 다른 군집과 noise를 계층적으로 찾는 군집화 방법이다.

  • 학습 패러다임: active learning, online learning, semi-supervised learning, meta-learning
  • 지도학습: calibration, class imbalance, data leakage, stratified split
  • 비지도학습: k-means, HDBSCAN, PCA, UMAP, anomaly detection
  • 강화학습: policy, value function, exploration, reward shaping, PPO(Proximal Policy Optimization, 한 번의 policy update가 지나치게 커지지 않도록 제한하는 방식)
  • 자기지도학습: next-token prediction, masked language modeling, contrastive learning
  • 정렬: SFT, RLHF, DPO, preference data, reward model
  • 학습 안정성: AdamW, warmup, cosine decay, gradient clipping, mixed precision
  • 운영 실패: distribution shift, OOD, catastrophic forgetting, reward hacking
  1. ML 패러다임은 학습 신호의 출처로 구분한다: 레이블, 구조, 보상, 데이터 자체 target.
  2. 지도학습은 정답이 명확한 문제에 강하지만 레이블 품질과 분포 변화에 취약하다.
  3. 비지도학습은 구조를 발견하고, 강화학습은 장기 보상을 최적화하며, 자기지도학습은 대규모 pretraining을 가능하게 한다.
  4. loss, optimizer, learning rate schedule, batch, gradient는 모든 패러다임에서 모델 갱신을 설명하는 공통 언어다.
  5. loss가 내려가도 제품 지표·안전 지표·OOD 성능은 나빠질 수 있으므로 silent failure를 별도로 관찰해야 한다.

최종 수정: 2026-07-14