可选接口#

模块内容#

class vllm.model_executor.models.interfaces.SupportsMultiModal(*args, **kwargs)[source]#

所有多模态模型所需的接口。

supports_multimodal: ClassVar[Literal[True]] = True[source]#

一个标志,指示此模型支持多模态输入。

注意

如果此类在您的模型类的 MRO 中,则无需重新定义此标志。

get_multimodal_embeddings(**kwargs) T | None[source]#

返回从多模态 kwargs 生成的多模态嵌入,以便与文本嵌入合并。

输出嵌入必须是以下格式之一

  • 2D 张量的列表或元组,其中每个张量对应于每个输入多模态数据项(例如,图像)。

  • 单个 3D 张量,其批次维度将 2D 张量分组。

注意

返回的多模态嵌入的顺序必须与其对应的多模态数据项在输入提示中出现的顺序相同。

get_input_embeddings(input_ids: torch.Tensor, multimodal_embeddings: T | None = None, attn_metadata: 'AttentionMetadata' | None = None) torch.Tensor[source]#
get_input_embeddings(input_ids: torch.Tensor, multimodal_embeddings: T | None = None) torch.Tensor

@overload 的助手,用于在调用时引发异常。

class vllm.model_executor.models.interfaces.SupportsLoRA(*args, **kwargs)[source]#

所有支持 LoRA 的模型所需的接口。

supports_lora: ClassVar[Literal[True]] = True[source]#

一个标志,指示此模型支持 LoRA。

注意

如果此类在您的模型类的 MRO 中,则无需重新定义此标志。

class vllm.model_executor.models.interfaces.SupportsPP(*args, **kwargs)[source]#

所有支持流水线并行的模型所需的接口。

supports_pp: ClassVar[Literal[True]] = True[source]#

一个标志,指示此模型支持流水线并行。

注意

如果此类在您的模型类的 MRO 中,则无需重新定义此标志。

make_empty_intermediate_tensors(batch_size: int, dtype: torch.dtype, device: torch.device) IntermediateTensors[source]#

当 PP 秩 > 0 时调用,用于性能分析目的。

forward(*, intermediate_tensors: IntermediateTensors | None) torch.Tensor | IntermediateTensors[source]#

当 PP 秩 > 0 时,接受 IntermediateTensors

仅为最后一个 PP 秩返回 IntermediateTensors

class vllm.model_executor.models.interfaces.HasInnerState(*args, **kwargs)[source]#

所有具有内部状态的模型所需的接口。

has_inner_state: ClassVar[Literal[True]] = True[source]#

一个标志,指示此模型具有内部状态。具有内部状态的模型通常需要访问 scheduler_config 以获取 max_num_seqs 等。例如,Mamba 和 Jamba 均为 True。

class vllm.model_executor.models.interfaces.IsAttentionFree(*args, **kwargs)[source]#

所有像 Mamba 这样缺少注意力机制,但确实具有状态(其大小相对于 token 数量是恒定的)的模型的接口。

is_attention_free: ClassVar[Literal[True]] = True[source]#

一个标志,指示此模型没有注意力机制。用于块管理器和注意力后端选择。Mamba 为 True,但 Jamba 不为 True。

class vllm.model_executor.models.interfaces.IsHybrid(*args, **kwargs)[source]#

所有像 Jamba 这样既有注意力模块又有 Mamba 模块的模型的接口,指示 hf_config 具有 ‘layers_block_type’

is_hybrid: ClassVar[Literal[True]] = True[source]#

一个标志,指示此模型同时具有 Mamba 和注意力模块,也指示该模型的 hf_config 具有 ‘layers_block_type’

class vllm.model_executor.models.interfaces.SupportsCrossEncoding(*args, **kwargs)[source]#

所有支持交叉编码的模型的接口。

class vllm.model_executor.models.interfaces.SupportsQuant(*args, **kwargs)[source]#

所有支持量化的模型所需的接口。

class vllm.model_executor.models.interfaces.SupportsTranscription(*args, **kwargs)[source]#

所有支持转录的模型所需的接口。