Skip to main content
Version: Next

输入定义

*在线运行 vLLM 入门教程:零基础分步指南

面向用户的输入

vllm.multimodal.inputs.MultiModalDataDict

[source]

一个包含每种模态类型输入的字典。

内置的模态类型由 MultiModalDataBuiltins 定义。

别名为 Mapping[strUnion[Anylist[Any]]]

内部数据结构

class vllm.multimodal.inputs.PlaceholderRange(offset: int, length: int, is_embed: torch.Tensor | None = None)

[source]

基类:TypedDict

多模态数据的占位符位置信息。

示例

提示:AAAA BBBB What is in these images?

图像 A 和 B 将具有:

A: { "offset": 0, "length": 4 }
B: { "offset": 5, "length": 4 }

is_embed_: torch.Tensor | None_ _= None

[source]#

一个形状为 (length,) 的布尔掩码,用于指示在偏移量 offset 和 offset + length 之间的哪些位置需要分配嵌入向量。

length: int

[source]

占位符的长度。

offset: int

[source]

占位符在提示中的起始索引。

vllm.multimodal.inputs.NestedTensors

[source]

如果每个元素的维度不匹配,则使用列表而不是张量。

别名为 Union[list[NestedTensors], list[Tensor], Tensortuple[Tensor, …]]

class vllm.multimodal.inputs.MultiModalFieldElem(modality: str, key: str, data: list[typing.Union[list[ForwardRef('NestedTensors')], list[torch.Tensor], torch.Tensor, tuple[torch.Tensor, ...]]] | list[torch.Tensor] | torch.Tensor | tuple[torch.Tensor, ...], field: BaseMultiModalField)

[source]

表示 MultiModalKwargs 中多模态项的对应关键字参数。

data: list[typing.Union[list[ForwardRef('NestedTensors')], list[torch.Tensor], torch.Tensor, tuple[torch.Tensor, ...]]] | list[torch.Tensor] | torch.Tensor | tuple[torch.Tensor, ...]

[source]

该字段在 MultiModalKwargs 中的张量数据,即传递给模型的关键字参数的值。

field: BaseMultiModalField

[source]

定义如何将该字段的张量数据与其他字段组合,以便为模型推理批量处理多模态项。

key: str

[source]

该字段在 MultiModalKwargs 中的键,即传递给模型的关键字参数的名称。

modality: str

[source]

对应多模态项的模态类型。每个多模态项可以由多个关键字参数组成。

class vllm.multimodal.inputs.MultiModalFieldConfig(field: BaseMultiModalField, modality: str)

[source]

static batched(modality: str)

[source]

定义一个字段,其中批次中的元素通过索引底层数据的第一维获得。

参数:

modality – 使用此关键字参数的多模态项的模态类型。

示例

Input:
Data: [[AAAA]
[BBBB]
[CCCC]]


Output:
Element 1: [AAAA]
Element 2: [BBBB]
Element 3: [CCCC]

static flat(modality: str, slices: Sequence[slice] | Sequence[Sequence[slice]], dim: int = 0)

[source]

定义一个字段,其中批次中的元素通过沿底层数据的第一维切片获得。

参数:

  • modality – 使用此关键字参数的多模态项的模态类型。
  • slices – 对于每个多模态项,用于提取其对应数据的切片。

示例

Given:
slices: [slice(0, 3), slice(3, 7), slice(7, 9)]


Input:
Data: [AAABBBBCC]


Output:
Element 1: [AAA]
Element 2: [BBBB]
Element 3: [CC]

static flat_from_sizes(modality: str, size_per_item: torch.Tensor, dim: int = 0)

[source]

定义一个字段,其中批次中的元素通过沿底层数据的第一维切片获得。

参数:

  • modality – 使用此关键字参数的多模态项的模态类型。
  • slices – 对于每个多模态项,用于提取其对应数据的切片大小。

示例

Given:
size_per_item: [3, 4, 2]


Input:
Data: [AAABBBBCC]


Output:
Element 1: [AAA]
Element 2: [BBBB]
Element 3: [CC]

另请参阅

MultiModalFieldConfig.flat()

static shared(modality: str, batch_size: int)

[source]

定义一个字段,其中批次中的元素通过获取底层数据的全部内容获得。

这意味着批次中的每个元素的数据是相同的。

参数:

  • modality – 使用此关键字参数的多模态项的模态类型。
  • batch_size – 共享此数据的多模态项的数量。

示例

Given:
batch_size: 4


Input:
Data: [XYZ]


Output:
Element 1: [XYZ]
Element 2: [XYZ]
Element 3: [XYZ]
Element 4: [XYZ]

class vllm.multimodal.inputs.MultiModalKwargsItem(dict=None, /, **kwargs)

[source]

基类:UserDict[strMultiModalFieldElem]

与 MultiModalDataItems 中的数据项对应的 MultiModalFieldElem 集合。

class_ vllm.multimodal.inputs.MultiModalKwargs(data: ]], *, items: Sequence[MultiModalKwargsItem] | None = None)

[source]

基类:UserDict[strUnion[list[NestedTensors], list[Tensor], Tensortuple[Tensor, …]]]

表示 forward() 的关键字参数的字典。

元数据 items 使我们能够通过 get_item() 和 get_items() 获取与 MultiModalDataItems 中每个数据项对应的关键字参数。

static batch(inputs_list: list[vllm.multimodal.inputs.MultiModalKwargs]) → ]]

[source]

将多个输入批量处理为一个字典。

生成的字典具有与输入相同的键。如果每个输入的对应值是一个张量且它们共享相同的形状,则输出值是一个批处理后的张量;否则,输出值是一个包含每个输入原始值的列表。

static from_items(items: Sequence[MultiModalKwargsItem])

[source]

从多个项构造一个新的 MultiModalKwargs

get_item(modality: str, item_index: int) → MultiModalKwargsItem

[source]

获取由其模态类型和索引标识的项对应的关键字参数。

get_item_count(modality: str) → int

[source]

获取属于某个模态类型的项的数量。

get_items(modality: str) → Sequence[MultiModalKwargsItem]

[source]

获取属于某个模态类型的每个项对应的关键字参数。

class vllm.multimodal.inputs.MultiModalInputs

[source]

基类:TypedDict

表示 vllm.multimodal.processing.BaseMultiModalProcessor 的输出,准备传递给 vLLM 内部。

mm_hashes_: MultiModalHashDict | None

[source]

多模态数据的哈希值。

mm_kwargs_: MultiModalKwargs

[source]

批处理后直接传递给模型的关键字参数。

mm_placeholders_: Mapping[str, Sequence[PlaceholderRange]]

[source]

对于每种模态类型,prompt_token_ids 中占位符 token 的信息。

prompt: str

[source]

处理后的提示文本。

prompt_token_ids_: list[int]

[source]

包含占位符 token 的处理后的 token ID。

token_type_ids_: NotRequired[list[int]]

[source]

提示的 token 类型 ID。

type_: Literal['multimodal']

[source]

输入的类型。