输入处理#

每个模型可以通过 INPUT_REGISTRYMULTIMODAL_REGISTRY 覆盖 vLLM 的 输入处理管道 的部分内容。

目前,该机制仅在 多模态 模型中用于预处理多模态输入数据以及输入提示,但在需要时可以扩展到纯文本语言模型。

指南#

模块内容#

LLM 引擎输入#

vllm.inputs.LLMInputs#

TokenInputs 的别名

注册表#

vllm.inputs.INPUT_REGISTRY = <vllm.inputs.registry.InputRegistry object>#

全局 InputRegistry ,由 LLMEngine 用于根据目标模型分派数据处理。

参见

输入处理管道

class vllm.inputs.registry.DummyDataFactory(*args, **kwargs)[源代码]#

基类:Protocol

class vllm.inputs.registry.InputContext(model_config: ModelConfig)[源代码]#

基类:object

包含可能用于修改输入的模型信息。

get_hf_config(hf_config_type: Type[C] = PretrainedConfig) C[源代码]#

获取模型的 HuggingFace 配置(transformers.PretrainedConfig),并额外检查其类型。

抛出:

TypeError – 如果模型不是指定类型。

get_hf_image_processor_config() Dict[str, Any][源代码]#

获取模型的 HuggingFace 图像处理器配置。

model_config: ModelConfig#

模型的配置。

vllm.inputs.registry.InputProcessor#

预处理模型的输入。

Callable[[InputContext, TokenInputs], TokenInputs] 的别名

class vllm.inputs.registry.InputRegistry[源代码]#

基类:object

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

create_input_processor(model_config: ModelConfig)[源代码]#

为特定模型创建一个输入处理器(参见 _process_input())。

dummy_data_for_profiling(model_config: ModelConfig, seq_len: int, mm_registry: MultiModalRegistry, is_encoder_data: bool = False) Tuple[SequenceData, MultiModalDataDict | None][源代码]#

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

该模型由 model_config 标识。

参见

启用多模态输入

备注

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

process_input(model_config: ModelConfig, inputs: TokenInputs) TokenInputs[源代码]#

将输入处理器应用于模型输入的实例。

该模型由 model_config 标识。

参见

输入处理管道

register_dummy_data(factory: DummyDataFactory)[源代码]#

将一个虚拟数据工厂注册到一个模型类。

在内存分析过程中,提供的函数被调用以创建虚拟数据,这些数据将被输入到模型中。由此产生的内存使用量应为模型在推理时使用的内存上限。

register_dummy_encoder_data(factory: DummyDataFactory)[源代码]#

将一个虚拟编码器数据工厂注册到一个模型类

这与 register_dummy_data() 类似,但用于编码器输入。

register_input_processor(processor: Callable[[InputContext, TokenInputs], TokenInputs])[源代码]#

将输入处理器注册到模型类。

提供的函数会在模型的每个输入上调用。这发生在 map_input() 之前。

参见

输入处理管道