输入定义#

用户界面输入#

vllm.multimodal.inputs.MultiModalDataDict[source]#

一个字典,其中包含每种模态类型的输入条目。

内置模态由 MultiModalDataBuiltins 定义。

别名 Mapping[str, Union[Any, list[Any]]]

内部数据结构#

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

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

示例

提示:AAAA BBBB What is in these images?

图像 A 和 B 将具有

A: PlaceholderRange(offset=0, length=4)
B: PlaceholderRange(offset=5, length=4)
is_embed: torch.Tensor | None = None[source]#

形状为 (length,) 的布尔掩码,指示在 offsetoffset + length 之间要分配嵌入的位置。

length: int[source]#

占位符的长度。

offset: int[source]#

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

vllm.multimodal.inputs.NestedTensors[source]#

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

别名 Union[list[NestedTensors], list[Tensor], Tensor, tuple[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])[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)[source]#

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

参数:
  • modality – 使用此关键字参数的多模态项目的模态。

  • slices – 对于每个多模态项目,用于提取与其对应的数据的切片大小。

示例

Given:
    size_per_item: [3, 4, 2]

Input:
    Data: [AAABBBBCC]

Output:
    Element 1: [AAA]
    Element 2: [BBBB]
    Element 3: [CC]
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[str, MultiModalFieldElem]

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

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

基类:UserDict[str, Union[list[NestedTensors], list[Tensor], Tensor, tuple[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 中占位符令牌的信息。

prompt: str[source]#

已处理的提示文本。

prompt_token_ids: list[int][source]#

已处理的令牌 ID,其中包括占位符令牌。

token_type_ids: NotRequired[list[int]][source]#

提示的令牌类型 ID。

type: Literal['multimodal'][source]#

输入的类型。