输入定义#
用户界面输入#
内部数据结构#
- 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,) 的布尔掩码,指示在 offset 和 offset + length 之间要分配嵌入的位置。
- 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
中的张量数据,即要传递给模型的关键字参数的值。
- key: str[source]#
此字段在
MultiModalKwargs
中的键,即要传递给模型的关键字参数的名称。
- 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]
定义一个字段,其中批次中的元素通过获取基础数据的全部内容来获得。
这意味着对于批次中的每个元素,数据都是相同的。
- 参数:
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_items(modality: str) Sequence[MultiModalKwargsItem] [source]#
获取与属于某种模态的每个项目对应的关键字参数。
- class vllm.multimodal.inputs.MultiModalInputs[source]#
基类:
TypedDict
表示
vllm.multimodal.processing.BaseMultiModalProcessor
的输出,准备传递给 vLLM 内部组件。- mm_kwargs: MultiModalKwargs[source]#
在批处理后直接传递给模型的关键字参数。
- mm_placeholders: Mapping[str, Sequence[PlaceholderRange]][source]#
对于每种模态,关于
prompt_token_ids
中占位符令牌的信息。
- token_type_ids: NotRequired[list[int]][source]#
提示的令牌类型 ID。