vllm.model_executor
模块:
| 名称 | 描述 |
|---|---|
custom_op | |
layers | |
model_loader | |
models | |
parameter | |
pooling_metadata | |
sampling_metadata | |
utils | 模型执行器的实用工具。 |
__all__ module-attribute ¶
__all__ = [
"SamplingMetadata",
"SamplingMetadataCache",
"set_random_seed",
"BasevLLMParameter",
"PackedvLLMParameter",
]
BasevLLMParameter ¶
基类: Parameter
vLLM线性层的基础参数。通过接收线性权重加载器扩展了torch.nn.parameter。当调用提供的权重加载器时,会将加载的权重复制到参数中。
Source code in vllm/model_executor/parameter.py
__init__ ¶
初始化BasevLLMParameter
:param data: 包含参数数据的torch张量 :param weight_loader: 权重加载器可调用对象
:返回: 一个 torch.nn.parameter
Source code in vllm/model_executor/parameter.py
PackedvLLMParameter ¶
用于磁盘上打包的模型权重参数。例如:GPTQ Marlin权重为int4或int8,打包成int32。扩展了ModelWeightParameter以接收打包因子、打包维度,以及可选的marlin内核的marlin瓦片大小。通过考虑打包和可选的marlin瓦片大小,调整分片大小和分片偏移量以加载融合线性层模型权重。
Source code in vllm/model_executor/parameter.py
__init__ ¶
__init__(
packed_factor: Union[int, Fraction],
packed_dim: int,
marlin_tile_size: Optional[int] = None,
bitblas_tile_size: Optional[int] = None,
**kwargs,
)
Source code in vllm/model_executor/parameter.py
adjust_shard_indexes_for_packing ¶
Source code in vllm/model_executor/parameter.py
采样元数据 ¶
输入序列的元数据。用于采样器。
使用方法如下:
hidden_states = execute_model(...)
logits = hidden_states[sampling_metadata.selected_token_indices]
sample(logits)
def sample(logits):
# 使用categorized_sample_indices进行采样....
参数:
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
seq_groups | list[SequenceGroupToSample] | 批量序列组列表。 | required |
selected_token_indices | Tensor | (num_query_tokens_to_logprob)。用于从初始模型输出隐藏状态中查找对数概率的索引。 | required |
categorized_sample_indices | dict[SamplingType, Tensor] | SamplingType -> 要采样的token索引。每个token索引是一个2D张量,形状为(num_indices, num_indices),其中第一项表示在返回的logit中的采样索引(在修剪padding之前),第二项表示使用selected_token_indices修剪后的采样索引。例如,如果返回的logit是[1, 2, 3],我们选择[1, 2]进行采样,修剪后的logit将是[2, 3]。在这种情况下,第一个元组是[1, 2](原始logit中的采样索引),第二个元组是[0, 1](修剪后logit中的采样索引)。 | required |
num_prompts | int | seq_groups中的提示序列组数量。 | required |
skip_sampler_cpu_output | bool | 表示是否要跳过将令牌输出从GPU序列化到CPU的过程。 | False |
reuse_sampling_tensors | bool | 表示我们是否希望重用采样张量,这些张量是采样器前向传递的一部分。目前,它主要用于多步解码。 | False |
Source code in vllm/model_executor/sampling_metadata.py
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 | |
categorized_sample_indices instance-attribute ¶
__init__ ¶
__init__(
seq_groups: list[SequenceGroupToSample],
selected_token_indices: Tensor,
categorized_sample_indices: dict[SamplingType, Tensor],
num_prompts: int,
skip_sampler_cpu_output: bool = False,
reuse_sampling_tensors: bool = False,
) -> None
Source code in vllm/model_executor/sampling_metadata.py
准备 staticmethod ¶
prepare(
seq_group_metadata_list: list[SequenceGroupMetadata],
seq_lens: list[int],
query_lens: list[int],
device: str,
pin_memory: bool,
generators: Optional[dict[str, Generator]] = None,
cache: Optional[SamplingMetadataCache] = None,
) -> SamplingMetadata
Source code in vllm/model_executor/sampling_metadata.py
SamplingMetadataCache ¶
用于在调度器迭代之间缓存SamplingMetadata对象