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,