vllm.inputs
模块:
| 名称 | 描述 |
|---|---|
data | |
parse | |
preprocess | |
registry | |
DecoderOnlyInputs module-attribute ¶
DecoderOnlyInputs = Union[
TokenInputs, EmbedsInputs, "MultiModalInputs"
]
LLMEngine 中在传递给模型执行器之前的输入。这指定了仅解码器模型所需的数据。
INPUT_REGISTRY module-attribute ¶
INPUT_REGISTRY = InputRegistry()
全局的InputRegistry,被LLMEngine用于根据目标模型分发数据处理。
ProcessorInputs module-attribute ¶
ProcessorInputs = Union[
DecoderOnlyInputs, EncoderDecoderInputs
]
PromptType module-attribute ¶
PromptType = Union[
SingletonPrompt, ExplicitEncoderDecoderPrompt
]
LLM输入可能采用的架构集合,包括仅解码器和编码器/解码器输入类型:
- 文本提示(
str或TextPrompt) - 经过分词的提示词 (
TokensPrompt) - 一个嵌入提示 (
EmbedsPrompt) - 一个单一的数据结构,同时包含编码器和解码器提示(
ExplicitEncoderDecoderPrompt)
SingletonInputs module-attribute ¶
SingletonInputs = Union[
TokenInputs, EmbedsInputs, "MultiModalInputs"
]
一个处理过的SingletonPrompt,可以传递给vllm.sequence.Sequence。
SingletonPrompt module-attribute ¶
SingletonPrompt = Union[
str, TextPrompt, TokensPrompt, EmbedsPrompt
]
单个提示的可能模式集合:
- 文本提示(
str或TextPrompt) - 经过分词的提示词 (
TokensPrompt) - 一个嵌入提示 (
EmbedsPrompt)
请注意,"singleton"(单例)与封装多个提示的数据结构相对,即当用户需要明确表达编码器和解码器提示时,可用于编码器/解码器模型的那类结构,例如ExplicitEncoderDecoderPrompt
类型为SingletonPrompt的提示词可用于以下场景:(1) 作为仅解码器模型的输入,(2) 在未显式指定解码器提示的情况下,作为编码器/解码器模型中编码器的输入,或 (3) 作为封装多个提示的更大数据结构(如ExplicitEncoderDecoderPrompt)的成员
__all__ module-attribute ¶
__all__ = [
"TextPrompt",
"TokensPrompt",
"PromptType",
"SingletonPrompt",
"ExplicitEncoderDecoderPrompt",
"TokenInputs",
"EmbedsInputs",
"token_inputs",
"embeds_inputs",
"DecoderOnlyInputs",
"EncoderDecoderInputs",
"ProcessorInputs",
"SingletonInputs",
"build_explicit_enc_dec_prompt",
"to_enc_dec_tuple_list",
"zip_enc_dec_prompts",
"INPUT_REGISTRY",
"DummyData",
"InputContext",
"InputProcessingContext",
"InputRegistry",
]
虚拟数据 ¶
基类: NamedTuple
用于性能分析的模拟数据。
注意:这仅在V0版本中使用。
Source code in vllm/inputs/registry.py
multi_modal_data class-attribute instance-attribute ¶
multi_modal_data: Optional[MultiModalDataDict] = None
multi_modal_placeholders class-attribute instance-attribute ¶
multi_modal_placeholders: Optional[
MultiModalPlaceholderDict
] = None
EncoderDecoderInputs ¶
基类: TypedDict
LLMEngine 中的输入数据在传递给模型执行器之前的状态。
这指定了编码器-解码器模型所需的数据。
Source code in vllm/inputs/data.py
ExplicitEncoderDecoderPrompt ¶
基类: TypedDict, Generic[_T1_co, _T2_co]
表示一个编码器/解码器模型的输入提示,包含显式的编码器提示和解码器提示。
编码器和解码器的提示词可以分别按照SingletonPrompt中的任意一种模式进行格式化,且不要求采用相同的模式。
只有编码器提示可能包含多模态数据。mm_processor_kwargs应位于顶层,不应在编码器/解码器提示中设置,因为它们与编码器/解码器无关。
请注意,ExplicitEncoderDecoderPrompt不能作为仅解码器模型的输入,且该数据结构的encoder_prompt和decoder_prompt字段本身必须是SingletonPrompt实例。
Source code in vllm/inputs/data.py
输入上下文 dataclass ¶
包含有关模型的信息,可用于修改输入。
Source code in vllm/inputs/registry.py
get_hf_config ¶
获取模型的HuggingFace配置(transformers.PretrainedConfig),并额外检查其类型。
抛出异常:
| 类型 | 描述 |
|---|---|
TypeError | 如果配置不是指定的类型。 |
Source code in vllm/inputs/registry.py
get_hf_image_processor_config ¶
get_hf_processor ¶
get_hf_processor(
typ: Union[
type[_P], tuple[type[_P], ...]
] = ProcessorMixin,
/,
**kwargs: object,
) -> _P
获取模型的HuggingFace处理器(transformers.ProcessorMixin),并额外检查其类型。
抛出异常:
| 类型 | 描述 |
|---|---|
TypeError | 如果处理器不是指定类型。 |
Source code in vllm/inputs/registry.py
get_mm_config ¶
init_processor ¶
初始化一个类似HuggingFace的处理器类,将关键字参数与模型配置中的参数合并。
Source code in vllm/inputs/registry.py
InputProcessingContext dataclass ¶
基础类: InputContext
Source code in vllm/inputs/registry.py
call_hf_processor ¶
call_hf_processor(
hf_processor: ProcessorMixin,
data: Mapping[str, object],
kwargs: Mapping[str, object] = {},
) -> Union[BatchFeature, JSONTree]
使用可配置选项kwargs对提示data(文本、图像、音频等)调用hf_processor。
Source code in vllm/inputs/registry.py
InputRegistry ¶
注意:这仅在V0版本中使用。
Source code in vllm/inputs/registry.py
dummy_data_for_profiling ¶
dummy_data_for_profiling(
model_config: ModelConfig,
seq_len: int,
mm_registry: MultiModalRegistry,
is_encoder_data: bool = False,
) -> DummyData
为分析模型的内存使用情况创建模拟数据。
模型由model_config标识。
Source code in vllm/inputs/registry.py
TextPrompt ¶
基类: TypedDict
文本提示的架构。
Source code in vllm/inputs/data.py
mm_processor_kwargs instance-attribute ¶
mm_processor_kwargs: NotRequired[dict[str, Any]]
可选的多模态处理器参数,将转发给多模态输入映射器和处理器。请注意,如果针对所考虑的模型注册了多个模态的映射器等,我们会尝试将mm_processor_kwargs参数传递给每个映射器。
multi_modal_data instance-attribute ¶
multi_modal_data: NotRequired[MultiModalDataDict]
如果模型支持,可传递给模型的可选多模态数据。
TokenInputs ¶
基类: TypedDict
表示基于令牌的输入。
Source code in vllm/inputs/data.py
TokensPrompt ¶
基类: TypedDict
标记化提示的模式。
Source code in vllm/inputs/data.py
mm_processor_kwargs instance-attribute ¶
mm_processor_kwargs: NotRequired[dict[str, Any]]
可选的多模态处理器参数,将转发给多模态输入映射器和处理器。请注意,如果针对所考虑的模型注册了多个模态的映射器等,我们会尝试将mm_processor_kwargs参数传递给每个映射器。
multi_modal_data instance-attribute ¶
multi_modal_data: NotRequired[MultiModalDataDict]
如果模型支持,可传递给模型的可选多模态数据。
build_explicit_enc_dec_prompt ¶
build_explicit_enc_dec_prompt(
encoder_prompt: _T1,
decoder_prompt: Optional[_T2],
mm_processor_kwargs: Optional[dict[str, Any]] = None,
) -> ExplicitEncoderDecoderPrompt[_T1, _T2]
Source code in vllm/inputs/data.py
embeds_inputs ¶
embeds_inputs(
prompt_embeds: Tensor, cache_salt: Optional[str] = None
) -> EmbedsInputs
从可选值构建EmbedsInputs。
Source code in vllm/inputs/data.py
to_enc_dec_tuple_list ¶
to_enc_dec_tuple_list(
enc_dec_prompts: Iterable[
ExplicitEncoderDecoderPrompt[_T1, _T2]
],
) -> list[tuple[_T1, Optional[_T2]]]
Source code in vllm/inputs/data.py
token_inputs ¶
token_inputs(
prompt_token_ids: list[int],
token_type_ids: Optional[list[int]] = None,
prompt: Optional[str] = None,
cache_salt: Optional[str] = None,
) -> TokenInputs
从可选值构建TokenInputs。
Source code in vllm/inputs/data.py
zip_enc_dec_prompts ¶
zip_enc_dec_prompts(
enc_prompts: Iterable[_T1],
dec_prompts: Iterable[Optional[_T2]],
mm_processor_kwargs: Optional[
Union[Iterable[dict[str, Any]], dict[str, Any]]
] = None,
) -> list[ExplicitEncoderDecoderPrompt[_T1, _T2]]
将编码器和解码器的提示压缩成一个ExplicitEncoderDecoderPrompt实例列表。
mm_processor_kwargs 也可以提供;如果传入的是字典,则相同的字典将用于每个编码器/解码器提示。如果提供的是可迭代对象,它将与编码器/解码器提示一起压缩。