输入处理#
每个模型可以通过 INPUT_REGISTRY
和 MULTIMODAL_REGISTRY
覆盖 vLLM 的 输入处理管道 的部分内容。
目前,该机制仅在 多模态 模型中用于预处理多模态输入数据以及输入提示,但在需要时可以扩展到纯文本语言模型。
指南#
模块内容#
LLM 引擎输入#
- vllm.inputs.LLMInputs#
TokenInputs
的别名
注册表#
- vllm.inputs.INPUT_REGISTRY = <vllm.inputs.registry.InputRegistry object>#
全局
InputRegistry
,由LLMEngine
用于根据目标模型分派数据处理。参见
输入处理管道
- class vllm.inputs.registry.InputContext(model_config: ModelConfig)[源代码]#
基类:
object
包含可能用于修改输入的模型信息。
- get_hf_config(hf_config_type: Type[C] = PretrainedConfig) C [源代码]#
获取模型的 HuggingFace 配置(
transformers.PretrainedConfig
),并额外检查其类型。- 抛出:
TypeError – 如果模型不是指定类型。
- model_config: ModelConfig#
模型的配置。
- vllm.inputs.registry.InputProcessor#
预处理模型的输入。
Callable
[[InputContext
,TokenInputs
],TokenInputs
] 的别名
- class vllm.inputs.registry.InputRegistry[源代码]#
基类:
object
一个根据目标模型分派数据处理的注册表。
- 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()
之前。参见
输入处理管道