특정 모델 예시
특정 모델 예시 (Specific Model Examples)
vLLM의 pooling 모델 중에는 특별한 설정이 필요한 모델들이 몇 개 있어요. 이 페이지에서는 ColBERT 계열, ColQwen3, BAAI/bge-m3 같은 특수 모델을 어떻게 다루는지 구체적인 예시로 보여드릴게요. 일반적인 모델이라면 좀 더 간단한데, 이들은 아키텍처 특성상 손을 좀 봐줘야 해요.
ColBERT 지연 상호작용 모델 (ColBERT Late Interaction Models)
BERT 기반 ColBERT 모델은 별다른 설정 없이 바로 작동해요.
vllm serve answerdotai/answerai-colbert-small-v1
BERT가 아닌 백본(backbone) 을 쓰는 모델은 --hf-overrides로 올바른 아키텍처를 설정해줘야 해요.
ColQwen3 멀티모달 지연 상호작용 모델 (ColQwen3 Multi-Modal Late Interaction Models)
ColBERT가 텍스트 전용 토큰 임베딩을 다루는 반면, ColPali/ColQwen3는 텍스트와 이미지 (예: PDF 페이지, 스크린샷, 다이어그램)를 모두 토큰별 L2-정규화된 벡터로 임베딩할 수 있어요. 그리고 MaxSim 스코어링으로 관련성을 계산하죠.
멀티모달 스코어링과 재순위화 (Multi-modal scoring and reranking)
/score에는 data_1/data_2 필드, /rerank에는 documents 필드를 사용해 이미지 문서를 전달해요. 이 필드들은 image_url과 text 부분을 담은 content 리스트를 받아요. 형식은 기존 방식과 동일해요.
ColQwen3.5 멀티모달 지연 상호작용 모델 (ColQwen3.5 Multi-Modal Late Interaction Models)
Qwen3.5 하이브리드 백본(linear + full attention)을 사용하고, MaxSim 스코어링을 위한 토큰별 L2-정규화 벡터를 생성해요.
Llama Nemotron 멀티모달 (Llama Nemotron Multimodal)
임베딩 모델 (Embedding Model)
오버라이드 템플릿은 메시지 role을 이용해 적절한 접두사를 자동으로 붙여줘요. 쿼리("query")에는 query: 접두사를, 문서("document")에는 passage: 접두사를 붙이고, 그 외 role은 접두사를 생략해요. 텍스트 쿼리 임베딩은 이렇게 수행할 수 있어요.
BAAI/bge-m3
전체 모델 가중치를 로드하려면 아키텍처를 다음과 같이 오버라이드해야 해요.
vllm serve BAAI/bge-m3 --hf-overrides ...
구체적인 방법은 tests/models/language/pooling/test_bge_m3.py의 테스트를 참고하세요.