注册表#

模块内容#

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]#

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

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

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

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

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

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

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

注意

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

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

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

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

注意

这应该在 init_mm_limits_per_prompt() 之后调用。

get_max_multimodal_tokens(model_config: ModelConfig) int[source]#

获取最大多模态令牌数,以分析模型的内存使用情况。

有关更多详细信息,请参阅 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) BaseMultiModalProcessor[BaseProcessingInfo][source]#

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

另请参阅

多模态数据处理