Registry#

模块内容#

class vllm.multimodal.registry.ProcessingInfoFactory(*args, **kwargs)[source]#

从上下文中构建一个 MultiModalProcessor 实例。

class vllm.multimodal.registry.DummyInputsBuilderFactory(*args, **kwargs)[source]#

从上下文中构建一个 BaseDummyInputsBuilder 实例。

class vllm.multimodal.registry.MultiModalProcessorFactory(*args, **kwargs)[source]#

从上下文中构建一个 MultiModalProcessor 实例。

class vllm.multimodal.registry.MultiModalRegistry(*, plugins: Sequence[MultiModalPlugin] = DEFAULT_PLUGINS)[source]#

一个根据模型分派数据处理的注册表。

register_plugin(plugin: MultiModalPlugin) None[source]#

注册一个多模态插件,以便它可以被 vLLM 识别。

register_input_mapper(data_type_key: str, mapper: Callable[[InputContext, object | list[object]], MultiModalKwargs] | None = None)[source]#

为特定模态向模型类注册一个输入映射器。

有关更多详细信息,请参阅 MultiModalPlugin.register_input_mapper()

register_image_input_mapper(mapper: Callable[[InputContext, object | list[object]], MultiModalKwargs] | None = None)[source]#

为图像数据向模型类注册一个输入映射器。

有关更多详细信息,请参阅 MultiModalPlugin.register_input_mapper()

map_input(model_config: ModelConfig, data: Mapping[str, Any | list[Any]], mm_processor_kwargs: dict[str, Any] | None = None) MultiModalKwargs[source]#

将输入映射器应用于传递给模型的数据。

属于每种模态的数据被传递到相应的插件,插件反过来通过为该模型注册的输入映射器将数据转换为关键字参数。

有关更多详细信息,请参阅 MultiModalPlugin.map_input()

注意

这应在 init_mm_limits_per_prompt() 之后调用。

create_input_mapper(model_config: ModelConfig)[source]#

为特定模型创建一个输入映射器(参见 map_input())。

register_max_multimodal_tokens(data_type_key: str, max_mm_tokens: int | Callable[[InputContext], int] | None = None)[source]#

注册传递给模型类的语言模型的最大 token 数,该 token 数对应于属于特定模态的单个多模态数据实例。

register_max_image_tokens(max_mm_tokens: int | Callable[[InputContext], int] | None = None)[source]#

注册传递给模型类的语言模型的最大图像 token 数,该 token 数对应于单个图像。

get_max_tokens_per_item_by_modality(model_config: ModelConfig) Mapping[str, int][source]#

根据底层模型配置,获取每种模态的每个数据项的最大 token 数。

get_max_tokens_per_item_by_nonzero_modality(model_config: ModelConfig) Mapping[str, int][source]#

根据底层模型配置,获取每种模态的每个数据项的最大 token 数,排除用户通过 limit_mm_per_prompt 显式禁用的模态。

注意

目前,这仅在 V1 中直接用于分析模型的内存使用情况。

get_max_tokens_by_modality(model_config: ModelConfig) Mapping[str, int][source]#

获取每种模态的最大 token 数,用于分析模型的内存使用情况。

有关更多详细信息,请参阅 MultiModalPlugin.get_max_multimodal_tokens()

注意

这应在 init_mm_limits_per_prompt() 之后调用。

get_max_multimodal_tokens(model_config: ModelConfig) int[source]#

获取用于分析模型内存使用情况的最大多模态 token 数。

有关更多详细信息,请参阅 MultiModalPlugin.get_max_multimodal_tokens()

注意

这应在 init_mm_limits_per_prompt() 之后调用。

init_mm_limits_per_prompt(model_config: ModelConfig) None[source]#

初始化每个提示允许的模型类的每种模态的最大多模态输入实例数。

get_mm_limits_per_prompt(model_config: ModelConfig) Mapping[str, int][source]#

获取每个提示允许的模型类的每种模态的最大多模态输入实例数。

注意

这应在 init_mm_limits_per_prompt() 之后调用。

register_processor(processor: MultiModalProcessorFactory[_I], *, info: ProcessingInfoFactory[_I], dummy_inputs: DummyInputsBuilderFactory[_I])[source]#

向模型类注册一个多模态处理器。 处理器是惰性构建的,因此应传递工厂方法。

当模型接收到多模态数据时,将调用提供的函数以将数据转换为模型输入的字典。

另请参阅

多模态数据处理

has_processor(model_config: ModelConfig) bool[source]#

测试是否为特定模型定义了多模态处理器。

另请参阅

多模态数据处理

create_processor(model_config: ModelConfig, *, tokenizer: transformers.PreTrainedTokenizer | transformers.PreTrainedTokenizerFast | TokenizerBase | None = None, disable_cache: bool | None = None) BaseMultiModalProcessor[BaseProcessingInfo][source]#

为特定模型和分词器创建一个多模态处理器。

另请参阅

多模态数据处理

get_decoder_dummy_data(model_config: ModelConfig, seq_len: int, mm_counts: Mapping[str, int] | None = None) DummyDecoderData[source]#

创建用于分析模型内存使用情况的虚拟数据。

模型通过 model_config 标识。

get_encoder_dummy_data(model_config: ModelConfig, seq_len: int, mm_counts: Mapping[str, int] | None = None) DummyEncoderData[source]#

创建用于分析模型内存使用情况的虚拟数据。

模型通过 model_config 标识。