@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 93f2c0aa08
Fork 0

A high-throughput and memory-efficient inference and serving engine for LLMs

Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git

Synced Nov 14, 05:30 UTC

[Models] Improve iteration over layers (#26425)

Signed-off-by: Lukas Geiger <lukas.geiger94@gmail.com>

Lukas Geiger committed Oct 8, 2025 at 21:48 UTC 93f2c0aa083173256796b607db2bcb19ec132696
8 files changed +23 -22
vllm/model_executor/models/apertus.py
+4 -1
@@ -26,6 +26,7 @@
26 """Inference-only Apertus model compatible with HuggingFace weights."""
27
28 from collections.abc import Iterable
29 +from itertools import islice
30 from typing import Any, Optional, Union
31
32 import torch
@@ -412,7 +413,9 @@ class ApertusModel(nn.Module):
413 residual = intermediate_tensors["residual"]
414
415 aux_hidden_states = []
415 - for idx, layer in enumerate(self.layers[self.start_layer : self.end_layer]):
416 + for idx, layer in enumerate(
417 + islice(self.layers, self.start_layer, self.end_layer)
418 + ):
419 if idx in self.aux_hidden_state_layers:
420 aux_hidden_states.append(hidden_states + residual)
421 hidden_states, residual = layer(positions, hidden_states, residual)
vllm/model_executor/models/falcon_h1.py
+2 -2
@@ -3,6 +3,7 @@
3 """Inference-only FalconH1 model."""
4
5 from collections.abc import Iterable
6 +from itertools import islice
7 from typing import Optional
8
9 import torch
@@ -480,8 +481,7 @@ class FalconH1Model(nn.Module):
481 assert intermediate_tensors is not None
482 hidden_states = intermediate_tensors["hidden_states"]
483
483 - for i in range(self.start_layer, self.end_layer):
484 - layer = self.layers[i]
484 + for layer in islice(self.layers, self.start_layer, self.end_layer):
485 hidden_states = layer(
486 positions=positions,
487 hidden_states=hidden_states,
vllm/model_executor/models/hunyuan_v1.py
+5 -6
@@ -26,6 +26,7 @@
26
27 import typing
28 from collections.abc import Callable, Iterable
29 +from itertools import islice
30 from typing import Any, Optional, Union
31
32 import regex as re
@@ -672,8 +673,9 @@ class HunYuanModel(nn.Module):
673
674 cla_factor = _get_cla_factor(self.config)
675 prev_kv_states = None
675 - for i in range(self.start_layer, self.end_layer):
676 - layer = self.layers[i]
676 + for i, layer in enumerate(
677 + islice(self.layers, self.start_layer, self.end_layer)
678 + ):
679 hidden_states, residual, kv_states = layer(
680 positions,
681 hidden_states,
@@ -681,10 +683,7 @@ class HunYuanModel(nn.Module):
683 prev_kv_states,
684 )
685
684 - if (
685 - getattr(self.config, "use_cla", False)
686 - and (i - self.start_layer) % cla_factor == 0
687 - ):
686 + if getattr(self.config, "use_cla", False) and i % cla_factor == 0:
687 prev_kv_states = kv_states
688 else:
689 prev_kv_states = None
vllm/model_executor/models/lfm2_moe.py
+2 -1
@@ -1,6 +1,7 @@
1 # SPDX-License-Identifier: Apache-2.0
2 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3 from collections.abc import Iterable
4 +from itertools import islice
5 from typing import Any, Optional
6
7 import torch
@@ -492,7 +493,7 @@ class Lfm2MoeModel(nn.Module):
493 hidden_states = intermediate_tensors["hidden_states"]
494 residual = intermediate_tensors["residual"]
495
495 - for layer in self.layers[self.start_layer : self.end_layer]:
496 + for layer in islice(self.layers, self.start_layer, self.end_layer):
497 hidden_states, residual = layer(
498 positions=positions,
499 hidden_states=hidden_states,
vllm/model_executor/models/longcat_flash.py
+2 -2
@@ -35,6 +35,7 @@
35
36 import typing
37 from collections.abc import Callable, Iterable
38 +from itertools import islice
39 from typing import Optional, Union
40
41 import torch
@@ -519,8 +520,7 @@ class FlashModel(nn.Module):
520 hidden_states = intermediate_tensors["hidden_states"]
521 residual = intermediate_tensors["residual"]
522
522 - for i in range(self.start_layer, self.end_layer):
523 - layer = self.layers[i]
523 + for layer in islice(self.layers, self.start_layer, self.end_layer):
524 hidden_states, residual = layer(
525 positions,
526 hidden_states,
vllm/model_executor/models/mamba.py
+2 -2
@@ -3,6 +3,7 @@
3 """PyTorch MAMBA model."""
4
5 from collections.abc import Iterable
6 +from itertools import islice
7 from typing import Optional
8
9 import torch
@@ -162,8 +163,7 @@ class MambaModel(nn.Module):
163 hidden_states = intermediate_tensors["hidden_states"]
164 residual = intermediate_tensors["residual"]
165
165 - for i in range(self.start_layer, self.end_layer):
166 - layer = self.layers[i]
166 + for layer in islice(self.layers, self.start_layer, self.end_layer):
167 hidden_states, residual = layer(
168 positions=positions, hidden_states=hidden_states, residual=residual
169 )
vllm/model_executor/models/qwen3_vl.py
+3 -4
@@ -26,6 +26,7 @@
26
27 from collections.abc import Iterable, Mapping, Sequence
28 from functools import partial
29 +from itertools import islice
30 from typing import Any, Callable, Optional, Union
31
32 import numpy as np
@@ -1106,11 +1107,9 @@ class Qwen3LLMModel(Qwen3Model):
1107 assert intermediate_tensors is not None
1108 hidden_states = intermediate_tensors["hidden_states"]
1109 residual = intermediate_tensors["residual"]
1109 - for layer_idx, layer in enumerate(
1110 - self.layers[self.start_layer : self.end_layer]
1110 + for layer_idx, layer in islice(
1111 + enumerate(self.layers), self.start_layer, self.end_layer
1112 ):
1112 - layer_idx = layer_idx + self.start_layer
1113 -
1113 hidden_states, residual = layer(
1114 positions,
1115 hidden_states,
vllm/model_executor/models/qwen3_vl_moe.py
+3 -4
@@ -26,6 +26,7 @@
26
27 import typing
28 from collections.abc import Iterable
29 +from itertools import islice
30 from typing import Callable, Optional, Union
31
32 import torch
@@ -103,11 +104,9 @@ class Qwen3MoeLLMModel(Qwen3MoeModel):
104 assert intermediate_tensors is not None
105 hidden_states = intermediate_tensors["hidden_states"]
106 residual = intermediate_tensors["residual"]
106 - for layer_idx, layer in enumerate(
107 - self.layers[self.start_layer : self.end_layer]
107 + for layer_idx, layer in islice(
108 + enumerate(self.layers), self.start_layer, self.end_layer
109 ):
109 - layer_idx = layer_idx + self.start_layer
110 -
110 hidden_states, residual = layer(
111 positions,
112 hidden_states,