왜 대형 모델 추론 비용이 문제가 되는가

수십억~수천억 파라미터 모델은 품질은 좋지만, 토큰당 지연 시간과 GPU 메모리 점유가 크다. 특히 분류·추출·라우팅처럼 정답 범위가 좁은 작업에 범용 대형 모델을 그대로 붙이면, 실제 필요한 능력의 극히 일부만 쓰면서 전체 비용을 지불하게 된다. 트래픽이 늘수록 이 비효율은 선형이 아니라 인프라 증설(추가 GPU, 오토스케일)로 비선형 확대된다.

지식 증류(Knowledge Distillation)는 대형 교사(teacher) 모델의 출력 분포를 소형 학생(student) 모델이 모방하도록 학습시켜, 특정 작업에서 교사에 근접한 품질을 훨씬 적은 파라미터로 재현하는 기법이다.

증류의 기본 원리: 하드 라벨 vs 소프트 라벨

일반 지도학습은 정답 하나(하드 라벨)만 학습한다. 증류는 교사가 내놓는 전체 확률 분포(소프트 라벨)를 학습한다. "고양이 0.7, 개 0.2, 여우 0.1" 같은 분포에는 클래스 간 유사도 정보가 담겨 있어, 학생이 더 풍부한 신호로 일반화한다. 온도(temperature) T로 분포를 부드럽게 만들어 이 정보를 강조한다.

import torch.nn.functional as F

def distill_loss(student_logits, teacher_logits, labels, T=2.0, alpha=0.5):
    # 소프트 라벨: 교사 분포 모방 (KL 발산)
    soft = F.kl_div(
        F.log_softmax(student_logits / T, dim=-1),
        F.softmax(teacher_logits / T, dim=-1),
        reduction="batchmean",
    ) * (T * T)
    # 하드 라벨: 실제 정답
    hard = F.cross_entropy(student_logits, labels)
    return alpha * soft + (1 - alpha) * hard

T²를 곱하는 이유는 소프트 항의 기울기 크기가 1/T²로 줄기 때문에 스케일을 맞추기 위함이다.

실무 파이프라인: 데이터 수집부터 학습까지

실전에서는 로짓 접근이 어려운 API 기반 교사가 많다. 이때는 교사에게 실제 트래픽 프롬프트를 대량 통과시켜 (입력, 교사 응답) 쌍을 만드는 시퀀스 수준 증류를 쓴다. 운영 로그를 그대로 학습 데이터로 재활용할 수 있다는 점이 핵심 이점이다.

# 운영 로그에서 증류용 데이터셋 추출
SELECT
    request_id,
    input_text,
    teacher_output,
    latency_ms
FROM inference_logs
WHERE model = 'teacher-large'
  AND created_at >= NOW() - INTERVAL '30 days'
  AND feedback_score >= 4      -- 품질 검증된 응답만
ORDER BY created_at DESC
LIMIT 100000;

주의할 점은 교사의 오류까지 그대로 복제된다는 것이다. 반드시 사람 피드백 점수나 규칙 기반 필터로 저품질 응답을 걸러내야 한다.

모델·비용 비교

구성상대 파라미터상대 추론 비용작업 정확도
교사(대형)100x100기준
학생(증류)3~10x10~20-1~3%p
소형(증류 없음)3~10x10~20-8~15%p

같은 크기의 소형 모델이라도 증류 여부에 따라 정확도 격차가 크다. 비용은 거의 동일하므로, 증류는 사실상 "공짜 품질 향상"에 가깝다.

서빙 설정 예시

증류된 학생 모델은 크기가 작아 배치 크기를 키우고 GPU 하나에 여러 복제본을 올릴 수 있다.

model:
  name: student-distilled-v1
  dtype: float16
serving:
  max_batch_size: 64        # 소형이라 배치 확대 가능
  max_concurrent_requests: 256
  gpu_memory_utilization: 0.85
autoscaling:
  min_replicas: 2
  max_replicas: 8
  target_queue_latency_ms: 50

주의점과 실패 모드

증류는 만능이 아니다. 몇 가지를 반드시 점검하라.

  • 작업 범위 축소는 필수: 소형 학생은 특정 도메인에 특화될 때 강하다. 교사의 범용성까지 기대하면 실패한다.
  • 분포 이동: 학습 시점 트래픽과 운영 트래픽이 달라지면 품질이 급락한다. 정기적 재증류 주기를 두어야 한다.
  • 편향 증폭: 교사의 편향과 오류가 학생에 압축·고착된다. 평가셋에 엣지 케이스를 포함하라.
  • 과신 방지: 오프라인 정확도만 보지 말고, 운영 A/B로 실제 사용자 지표를 확인한 뒤 전환하라.

정리

지식 증류는 "좁고 명확한 작업"에서 대형 모델의 품질을 소형 모델 비용으로 얻는 검증된 방법이다. 운영 로그를 학습 데이터로 재활용하고, 소프트 라벨로 신호를 풍부하게 만들며, 필터링과 재증류 주기를 갖추면 안정적으로 추론 비용을 크게 낮출 수 있다. 다만 교사 오류 복제와 분포 이동을 감시하는 운영 체계가 함께 있어야 실효를 본다.