输入处理
每个模型都可以通过 INPUT_REGISTRY 和 MULTIMODAL_REGISTRY 覆盖 vLLM 的输入处理管道 input_processing_pipeline 的部分内容。
目前,这种机制仅在多模态模型中用于预处理多模态输入数据以及输入提示,但如有需要,也可以扩展到仅处理文本的语言模型。
指南
模块内容
LLM 引擎输入
vllm.inputs.DecoderOnlyInputs
TokenInputs
的别名
注册
vllm.inputs.INPUT_REGISTRY = <vllm.inputs.registry.InputRegistry object> LLMEngine 使用全局
InputRegistry
来根据目标模型调度数据处理。
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 – 如果模型不属于指定类型。
获取模型的 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
标识。
register_dummy_data(factory: DummyDataFactory) [源代码]
为模型类注册一个虚拟数据工厂。
在进行内存分析期间,将调用提供的函数来创建要输入到模型中的虚拟数据。由此生成的内存使用量应该是模型在推理时使用的内存使用量的上限。
register_dummy_encoder_data**(factory:DummyDataFactory)** [源代码]
为模型类注册一个虚拟编码器数据工厂。
这与 register_dummy_data()
,类似,但针对编码器输入。
register_input_processor(processor: Callable[[InputContext, LLMInputs], LLMInputs]) [源代码]
为模型类注册一个输入处理器。
在模型的每个输入上调用所提供的函数。这发生在 map_input()
之前。