점수 계산 사용법

점수 계산 사용법 (Scoring Usages)

Scoring(점수 계산)은 두 입력 사이의 관련성이나 유사도를 숫자로 매기는 pooling 태스크예요. 주로 reranker(재순위화), cross-encoder, bi-encoder, late-interaction 모델에서 쓰이죠. RAG 시스템에서 검색 결과를 다시 정렬할 때 아주 유용해요. 이 페이지에서는 vLLM에서 scoring 모델을 쓰는 방법을 살펴볼게요.

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

지원되는 모델 (Supported Models)

멀티모달 모델 (Multimodal Models)

C 표시가 붙은 모델은 --convert embed로 자동으로 임베딩 모델로 변환돼요. 변환된 모델의 기능 지원 범위는 원래 모델과 동일해요.

텍스트 전용 모델 (Text-only Models)

텍스트만 처리하는 scoring 모델을 지원해요. ssmits/Qwen2-7B-Instruct-embed-base 모델은 Sentence Transformers config가 제대로 정의돼 있지 않아서, --pooler-config '{"pooling_type": "MEAN"}'로 mean pooling을 직접 설정해줘야 해요.

BAAI/bge-m3 모델은 sparse 임베딩과 colbert 임베딩용 추가 가중치를 갖고 있어요. 자세한 내용은 이 페이지를 참고하세요.

멀티모달 모델 (Multimodal Models)

아키텍처 모델 입력 예시 HF 모델 LoRA PP
Phi3VForCausalLMC Phi-3-Vision 기반 T + I TIGER-Lab/VLM2Vec-Full

C 표시가 붙은 모델은 모델 변환에 따라 자동으로 임베딩 모델로 변환되며, 기능 지원 범위는 원래 모델과 동일해요.

온라인 서빙 (Online Serving)

Score API

Score API를 쓰면 쿼리와 문서 쌍 사이의 점수를 계산할 수 있어요.

예제 (Examples)

멀티모달 입력 (Multi-modal inputs)

요청에서 이미지 같은 멀티모달 입력 리스트를 담은 content를 넘기면 scoring 모델에도 멀티모달 입력을 전달할 수 있어요. 예를 들어 JinaVL-Reranker 모델을 서빙할 때는 jinaai/jina-reranker-m0 모델과 queries, documents 필드를 사용해요.

"jinaai/jina-reranker-m0",
"queries": "slm markdown",
"documents": [
    {
        "content": [...]
    }
]

Cohere Rerank API

/rerank, /v1/rerank, /v2/rerank API는 Jina AI의 rerank API 인터페이스Cohere의 rerank API 인터페이스와 호환돼서, 널리 쓰이는 오픈소스 도구들과 잘 맞아요.

파라미터 (Parameters)

request_id 관련 파라미터가 지원돼요. 호출자가 설정하지 않으면 랜덤 UUID가 자동 생성돼요.

지원 기능 (Supported Features)

Score 템플릿 (Score Template)

쿼리와 문서 내용에 접근하려면 Jinja의 selectattr 필터를 사용해요.

  • 쿼리: {{ (messages | selectattr("role", "eq", "query") | first).content }}
  • 문서: {{ (messages | selectattr("role", "eq", "document") | first).content }}

더 알아보기 (Learn more)