토큰 분류 사용법

토큰 분류 사용법 (Token Classification Usages)

토큰 분류(token classification)는 시퀀스 전체를 하나로 분류하는 대신, 입력 시퀀스 안의 각 토큰마다 분류 결과를 내놓는 pooling 태스크예요. 토큰 단위로 판단해야 하는 작업(예: 토큰별 리워드, NER 스타일의 태깅)에 쓰이죠. 시퀀스 분류와 어떻게 다른지부터 차근히 알아볼게요.

출처: vLLM 공식 문서 — models/pooling_models/token_classify

한눈에 보는 요약 (Summary)

  • 모델 사용 방식: 토큰 분류
  • 풀링 태스크: token_classify
  • 오프라인 API:
    • LLM.encode(..., pooling_task="token_classify")
  • 온라인 API:
    • Pooling API (/pooling)

(시퀀스) 분류와 토큰 분류의 핵심 차이는 출력의 세분화(granularity) 에 있어요. 시퀀스 분류는 입력 시퀀스 전체에 대해 단일 결과를, 토큰 분류는 시퀀스 안의 각 토큰마다 하나의 결과를 냅니다.

많은 분류 모델이 시퀀스 분류와 토큰 분류를 동시에 지원해요. 시퀀스 분류에 대한 자세한 내용은 이 페이지를 참고하세요.

참고: v0.21부터 pooling 멀티태스크 지원이 제거됐어요. 기본 풀링 태스크(classify)가 원하는 값이 아니라면, 오프라인에서는 PoolerConfig(task="token_classify")로, 온라인에서는 --pooler-config.task token_classify로 직접 지정해야 해요.

오프라인 추론 (Offline Inference)

풀링 파라미터 (Pooling Parameters)

다음 풀링 파라미터를 지원해요.

    use_activation: bool | None = None

LLM.encode

encode 메서드는 모든 pooling 모델에서 사용할 수 있어요.

토큰 분류 모델에서 LLM.encode를 쓸 때는 pooling_task="token_classify"로 설정해요.

온라인 서빙 (Online Serving)

Pooling API를 참고하고, 요청에 "task":"token_classify"를 사용하면 돼요.

더 많은 예제 (More examples)

더 많은 예제는 examples/pooling/token_classify에서 찾을 수 있어요.

지원 기능 (Supported Features)

토큰 분류 기능은 (시퀀스) 분류와 일관돼요. 자세한 내용은 이 페이지를 참고하세요.

더 알아보기 (Learn more)