Skip to main content

输入处理

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

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

指南

输入处理管道

模块内容

LLM 引擎输入

vllm.inputs.DecoderOnlyInputs  TokenInputs 的别名

注册

vllm.inputs.INPUT_REGISTRY = <vllm.inputs.registry.InputRegistry object> LLMEngine 使用全局 InputRegistry 来根据目标模型调度数据处理。

另见 Input Processing Pipeline

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

基类:Protocol

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

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

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, LLMInputs], LLMInputs]

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

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

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 标识。

另见 Enabling Multimodal Inputs

注意:

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

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

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

该模型由 model_config 标识。

另见 Input Processing Pipeline

register_dummy_data(factory: DummyDataFactory) [源代码]

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

在进行内存分析期间,将调用提供的函数来创建要输入到模型中的虚拟数据。由此生成的内存使用量应该是模型在推理时使用的内存使用量的上限。

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

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

这与 register_dummy_data(),类似,但针对编码器输入。

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

为模型类注册一个输入处理器。

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

另见 Input Processing Pipeline