본문으로 건너뛰기

단돈 2달러로 LLM을 정밀한 분류기로 변환하는 방법

LLM의 다음 토큰 예측 확률을 클래스 레이블로 활용하고 파인튜닝을 통해 별도의 보정 없이도 정밀한 분류 성능을 얻는 기법을 소개합니다.

섹션별 상세

01
LLM 아키텍처를 수정하지 않고 특정 토큰(예: 'Sports', 'Business')을 클래스로 매핑하여 분류기로 활용하는 'Tokens as Classes' 접근법을 제안합니다. 이 방식은 표준 파인튜닝 및 추론 API와 완벽하게 호환되며 구현이 간결합니다.
LLM 입력부터 토큰 확률 분포를 거쳐 보정된 클래스 확률이 나오는 전체 워크플로우 다이어그램
Diagram프롬프트가 입력되면 생성 모델이 다음 토큰 분포를 생성하고, 이 중 특정 클래스 토큰(예: Sports)의 확률이 신뢰도 점수로 변환되는 과정을 시각화합니다. 파인튜닝 후에는 모델이 자연스럽게 레이블 토큰에 집중하므로 별도의 재정규화가 필요 없음을 보여줍니다.
02
파인튜닝 과정에서 모델은 정답 클래스 토큰과 나머지 토큰 사이의 로짓 간격을 자연스럽게 벌리도록 학습됩니다. 부록의 수학적 증명에 따르면 학습이 진행됨에 따라 확률 질량이 클래스 토큰으로 집중되어 별도의 재정규화 없이도 원시 토큰 확률이 보정된 클래스 확률로 기능하게 됩니다.
보정(Calibration) 지표를 계산하는 수학적 공식
Other예측된 확률의 합을 실제 정답 레이블의 합으로 나누어 모델의 확신도가 실제 정확도와 얼마나 일치하는지 측정하는 공식을 제시합니다. 이 값이 1에 가까울수록 모델의 확률 예측이 정확함을 의미합니다.
03
AG News 데이터셋을 활용한 실험에서 Qwen-4B 모델을 LoRA로 파인튜닝한 결과 학습 배치가 진행됨에 따라 정확도와 보정 지표가 동시에 1.0에 수렴함을 확인했습니다. 이 과정에 소요된 비용은 Fireworks AI 플랫폼 기준 약 2달러에 불과했습니다.
python
import math
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("FIREWORKS_API_KEY"),
    base_url="https://api.fireworks.ai/inference/v1",
)

model = "accounts/fireworks/models/deepseek-v3p1-terminus"
categories = ["yes", "no"]
messages = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Is the sky high? Answer yes or no."},
]

# Get response with logprobs
response = client.chat.completions.create(model=model, messages=messages, logprobs=True)

# Extract matching tokens
matches = []
for choice in response.choices:
    if choice.logprobs and choice.logprobs.content:
        for idx, token_info in enumerate(choice.logprobs.content):
            if token_info.token.lower() in categories:
                matches.append({
                    "position": idx,
                    "token": token_info.token,
                    "logprob": token_info.logprob,
                })

# Print results
for match in matches:
    prob = 100 * math.exp(match["logprob"])
    print(f"Category '{match['token']}' probability: {prob:.1f}%")

Fireworks AI API를 사용하여 특정 토큰의 로그 확률을 추출하고 이를 클래스 확률로 변환하는 예시 코드

학습 배치에 따른 정확도와 보정 지표의 변화를 보여주는 그래프
Chart학습이 진행됨에 따라 정확도(Accuracy)와 보정(Calibration) 지표가 모두 빠르게 상승하여 1.0 근처에서 안정화되는 것을 보여줍니다. 이는 파인튜닝만으로도 추가 로직 없이 정밀한 확률 기반 분류가 가능함을 실증합니다.
04
파인튜닝이 어려운 환경에서는 Fireworks AI의 Embeddings API를 활용하여 특정 토큰들에 대한 소프트맥스 확률을 직접 계산하는 대안을 제시합니다. return_logits=true 옵션을 사용하면 서버 측에서 선택한 토큰들에 대해서만 정규화된 확률 분포를 반환받을 수 있습니다.

용어 해설

보정(Calibration)
모델이 예측한 확률값이 실제 정답의 빈도와 일치하는 정도를 의미한다. 예를 들어 모델이 90% 확률로 '긍정'이라고 예측했다면, 실제로 해당 데이터 중 90%가 긍정이어야 보정이 잘 된 모델이다.
로그 확률(Logprobs)
모델이 다음에 올 각 토큰에 대해 계산한 확률값의 로그 형태이다. 이를 지수 함수로 변환하면 0에서 1 사이의 확률값을 얻을 수 있으며, 분류 작업에서 모델의 확신도를 측정하는 핵심 지표로 쓰인다.
재정규화(Renormalization)
특정 부분 집합의 확률 합이 1이 되도록 다시 계산하는 과정이다. LLM 분류에서는 전체 어휘 사전 확률 중 클래스 토큰들의 확률만 따로 떼어 합이 1이 되도록 조정하는 작업을 의미한다.
지도 미세 조정(SFT)
사람이 작성한 정답 데이터를 사용하여 모델을 학습시키는 파인튜닝 기법이다. 특정 입력에 대해 모델이 원하는 특정 토큰(클래스 레이블)을 출력하도록 유도하는 데 필수적이다.

기술

  • Fireworks AI
  • Qwen
  • LoRA
  • Python
  • OpenAI API

활용 사례

  • 콘텐츠 안전성 및 모더레이션
  • 고객 문의 자동 분류 및 라우팅
  • 도메인 특화 문서 태깅
  • 사용자 의도 파악
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 02. 21.수집 2026. 02. 21.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.