Skip to content

Commit 216f147

Browse files
committed
Add back checks for model named parameters.
Also, switch position_ids to be initialized as a buffer and clean up unused code. Signed-off-by: Jen H <islandhe@gmail.com> Signed-off-by: <islandhe@gmail.com>
1 parent ed9c1ae commit 216f147

File tree

2 files changed

+10
-35
lines changed

2 files changed

+10
-35
lines changed

vllm/model_executor/models/bert.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,10 @@ def __init__(self, config: BertConfig):
4444
self.LayerNorm = nn.LayerNorm(config.hidden_size,
4545
eps=config.layer_norm_eps)
4646

47-
# Use nn.Parameter with requires_grad=False to maintain compatibility
48-
# with existing HF checkpoints while ensuring position_ids are
49-
# non-trainable.
50-
self.position_ids = nn.Parameter(torch.empty(
51-
(1, config.max_position_embeddings)),
52-
requires_grad=False)
53-
47+
self.register_buffer(
48+
"position_ids",
49+
torch.arange(config.max_position_embeddings).unsqueeze(0),
50+
)
5451
self.position_embedding_type = config.position_embedding_type
5552
if self.position_embedding_type != "absolute":
5653
raise ValueError("Only 'absolute' position_embedding_type" +
@@ -379,7 +376,8 @@ def load_weights(self, weights: Iterable[tuple[str,
379376
loaded_stacked_params.append(name)
380377
break
381378
else:
382-
other_weights.append((name, loaded_weight))
379+
if name in params_dict:
380+
other_weights.append((name, loaded_weight))
383381

384382
loader = AutoWeightsLoader(
385383
self,

vllm/model_executor/models/roberta.py

Lines changed: 4 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# SPDX-License-Identifier: Apache-2.0
22
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
33

4-
import itertools
54
from collections.abc import Iterable
65
from typing import Optional, Union
76

@@ -39,8 +38,10 @@ def __init__(self, config: RobertaConfig):
3938
config.hidden_size)
4039
self.LayerNorm = nn.LayerNorm(config.hidden_size,
4140
eps=config.layer_norm_eps)
42-
self.position_ids = nn.Parameter(
43-
torch.empty((1, config.max_position_embeddings)), )
41+
self.register_buffer(
42+
"position_ids",
43+
torch.arange(config.max_position_embeddings).unsqueeze(0),
44+
)
4445

4546
self.position_embedding_type = config.position_embedding_type
4647
if self.position_embedding_type != "absolute":
@@ -238,27 +239,3 @@ def create_position_ids_from_input_ids(input_ids,
238239
past_key_values_length) * mask
239240

240241
return incremental_indices.long() + padding_idx
241-
242-
243-
def roberta_task_weights_filter(
244-
all_weights: Iterable[tuple[str, torch.Tensor]]
245-
) -> tuple[Iterable[tuple[str, torch.Tensor]], Iterable[tuple[str,
246-
torch.Tensor]]]:
247-
"""
248-
Separate task-specific weights that are applied on top
249-
of the encoder-decoder bert base.
250-
To do so, return two generators over the original iterator.
251-
Also, remove the "roberta." prefix to make it loadable
252-
from vanilla BertModel.
253-
"""
254-
# Copy of a lazy iterator without in-memory overhead so both
255-
# iterators can be iterated upon independently.
256-
all_weights1, all_weights2 = itertools.tee(all_weights)
257-
258-
def encoder_decoder_weights():
259-
for name, weight in all_weights1:
260-
if name.startswith("roberta."):
261-
yield (name[len("roberta."):], weight)
262-
263-
return encoder_decoder_weights(), ((n, w) for n, w in all_weights2
264-
if not n.startswith("roberta."))

0 commit comments

Comments
 (0)