vllm.entrypoints.pooling.score.utils ¶
ScoreMultiModalParam ¶
Bases: TypedDict
A specialized parameter type for scoring multimodal content
The reasons why don't reuse CustomChatCompletionMessageParam directly: 1. Score tasks don't need the 'role' field (user/assistant/system) that's required in chat completions 2. Including chat-specific fields would confuse users about their purpose in scoring 3. This is a more focused interface that only exposes what's needed for scoring
Source code in vllm/entrypoints/pooling/score/utils.py
_ensure_str ¶
_ensure_str(content: list[ConversationMessage]) -> str
Extract a single string prompt from parsed conversation content.
Source code in vllm/entrypoints/pooling/score/utils.py
compress_token_type_ids ¶
Return position of the first 1 or the length of the list if not found.
Source code in vllm/entrypoints/pooling/score/utils.py
compute_maxsim_score ¶
Compute ColBERT MaxSim score.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
q_emb | Tensor | Query token embeddings [query_len, dim] | required |
d_emb | Tensor | Document token embeddings [doc_len, dim] | required |
Returns:
| Type | Description |
|---|---|
Tensor | MaxSim score (sum over query tokens of max similarity to any doc token) |
Source code in vllm/entrypoints/pooling/score/utils.py
parse_score_data ¶
parse_score_data(
data_1: ScoreData,
data_2: ScoreData,
model_config: ModelConfig,
) -> tuple[
str,
str,
MultiModalDataDict | None,
MultiModalUUIDDict | None,
]
Parse a query-document pair into text prompts and shared multi-modal data.
Uses a single :class:MultiModalItemTracker so that multi-modal items from both inputs are merged into one mm_data dict. This is the correct behaviour for cross-encoder scoring, where query and document are concatenated into a single model prompt.
Source code in vllm/entrypoints/pooling/score/utils.py
parse_score_data_single ¶
parse_score_data_single(
data: ScoreData, role: str, model_config: ModelConfig
) -> tuple[
str,
MultiModalDataDict | None,
MultiModalUUIDDict | None,
]
Parse one ScoreData into a text prompt and its own multi-modal data.
Unlike :func:parse_score_data, each call creates an independent :class:MultiModalItemTracker so multi-modal items are kept separate. This is the correct behaviour for late-interaction scoring, where query and document are encoded independently.
Source code in vllm/entrypoints/pooling/score/utils.py
post_process_tokens ¶
post_process_tokens(
model_config: ModelConfig, prompt: TokensPrompt
) -> None
Perform architecture-specific manipulations on the input tokens.
Note
This is an in-place operation.
Source code in vllm/entrypoints/pooling/score/utils.py
score_data_to_prompts ¶
score_data_to_prompts(
data_list: list[ScoreData],
role: str,
model_config: ModelConfig,
) -> list[PromptType]
Convert a list of ScoreData into PromptType objects.
For plain text inputs, returns the string directly. For multimodal inputs (list of content parts), parses them into a :class:TextPrompt with attached multi_modal_data / multi_modal_uuids.
This is used by late-interaction scoring where each query/document is encoded independently.