ML

최준병·2026년 5월 4일

1. 모델의 기초 (Model Basics)

  • 모델 (Model): 아키텍처(Architecture) + 파라미터(Parameters)
    • 아키텍처: 모델의 뼈대이자 구조. (비유: 함수의 코드 로직)
    • 파라미터 (가중치): 아키텍처 내부를 채우는 수많은 숫자들. 학습을 통해 얻어진 결과물. (비유: 그 함수가 사용하는 거대한 상수 테이블)
  • 사전 학습된 모델 (Pre-trained Model): 아키텍처의 구조는 그대로 둔 채, 방대한 텍스트 데이터를 학습시켜 파라미터 값을 최적의 상태로 채워 넣은 완성된 모델.

2. 모델은 어떻게 배우는가? (학습 프로세스)

비어있던 파라미터를 똑똑하게 갱신하여 모델을 만드는 과정입니다.

  1. Forward Pass (순전파): 입력값을 모델에 통과시켜 결과 예측값인 Logits을 반환받음.
    • 예) 입력: "오늘 저녁에 밥" \rightarrow 모델 통과 \rightarrow Logits 출력
  2. Loss 계산 (오차 측정): 모델의 예측(Logits)과 실제 정답 토큰(예: " 먹었어")을 비교.
    • 정답 토큰에 모델이 매긴 점수가 낮다면 틀렸다고 판정하고, 그 격차만큼 오차(Loss)를 계산함.
  3. Backward Pass (역전파): 이 오차(Loss)를 줄이기 위해, 수많은 파라미터 각각을 '어느 방향으로, 얼마나 바꿔야 하는지' 역으로 계산하며 내려감.
  4. 파라미터 갱신: 계산된 방향대로 파라미터(숫자들)를 미세하게 조정함.

(이 과정을 수만 번 반복하며, 학습이 완전히 끝나면 파라미터는 고정됨)

3. 모델은 어떻게 글을 생성하는가? (추론 프로세스)

학습이 끝나고 고정된 파라미터를 이용해 실제로 답변을 만들어내는 과정입니다.

핵심 동작 원리

  • 자기회귀 생성 (Autoregressive Generation): 모델이 입력을 받아 바로 다음에 올 '가장 적절한 토큰 1개'를 생성하고, 그것을 다시 기존 입력 뒤에 붙여서(append) 다음 토큰을 예측하는 행위. 이를 지정된 횟수(max_new_tokens)만큼 반복하여 문장을 완성함.
  • 추론 시의 Forward Pass: 입력을 모델에 한 번 통과시켜 다음 토큰에 대한 점수판(Logits)을 얻어내는 1회성 과정.

점수에서 확률로 (Logits & Softmax)

  • Logits (로짓): 모델이 어휘집(Vocabulary) 전체의 모든 토큰 각각에 대해 매긴 원시 점수 벡터.
    • 벡터의 길이는 어휘집 크기와 동일.
    • 확률이 아니므로 음수도 될 수 있고, 총합이 1도 아님.
  • Softmax (소프트맥스): 다루기 힘든 Logits 점수들을 "총합이 1인 확률 분포"로 예쁘게 변환해 주는 수학 함수.

어떤 단어를 선택할 것인가? (디코딩 전략)

Softmax를 통해 확률 분포가 나왔다면, 이제 다음 토큰을 뽑을 차례입니다.

  • Greedy (탐욕 탐색): 1등만 뽑는다. 확률 분포 중 무조건 가장 확률이 높은 토큰만 선택. (항상 똑같은 답변이 나옴)
  • Sampling (샘플링): 확률대로 뽑는다. 분포 비율에 비례한 '추첨'을 통해 토큰을 선택. (창의적이고 다양한 답변이 나옴)

💡 다양한 샘플링 기법 (Temperature & Top-p)

  • Temperature (온도 조절): Softmax를 적용하기 전, Logits 값을 TT로 나누어 분포의 모양 자체를 바꿈.
    • T>1T > 1 일 때 (예: 2로 나눔): 값들이 전체적으로 작아지며 토큰 간의 점수 격차가 줄어듦 \rightarrow 확률 분포가 평탄해짐 (다양하고 엉뚱한 단어가 나올 확률 증가).
    • T<1T < 1 일 때 (예: 0.5로 나눔): 0.5로 나누는 것은 2를 곱하는 것과 같음. 값들이 커지며 점수 격차가 벌어짐 \rightarrow 확률 분포가 뾰족해짐 (1등 단어가 뽑힐 확률이 압도적으로 높아짐).
  • Top-p (후보 압축): 확률이 높은 순서대로 누적합을 구하다가, 지정한 pp값(예: 0.9)에 도달하면 그 아래의 꼬리(확률이 낮은 토큰들)를 추첨 후보에서 아예 잘라버림.
    • 분포의 모양(비율)은 유지하되, 지나치게 엉뚱한 단어가 나오는 것을 막아주는 보수적인 추첨 방식.

4. 완성된 모델을 입맛에 맞게 쓰는 법

  • 프롬프트 엔지니어링 (Prompt Engineering):
    • 파라미터 변경 없음.
    • 원하는 응답의 형태나 맥락을 입력값(프롬프트)에 잘 적어서 원하는 결과를 유도하는 방식.
    • In-context Learning (문맥 내 학습): 프롬프트 엔지니어링의 핵심 원리로, 모델이 문맥을 읽고 그 패턴을 따라 하도록 만드는 것.
    • Few-shot (퓨샷): 모델에게 소수의 예시(2~5개)를 직접 프롬프트에 제공하여 새로운 작업에 빠르게 적응하도록 유도하는 대표적인 기법.
  • 파인튜닝 (Fine-Tuning):
    • 파라미터 변경 있음 (영구적).
    • 특정 도메인이나 말투에 맞게 모델을 '추가 학습' 시켜 내부 파라미터를 살짝 깎고 다듬는 작업.
profile
나의 기록

0개의 댓글