Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
OpenDAS
vllm_cscc
Commits
4d676f08
"vscode:/vscode.git/clone" did not exist on "7727ce35c26629dfdcc7aaa9f27077d110a314ae"
Unverified
Commit
4d676f08
authored
Nov 21, 2024
by
Xiaoyu Zhang
Committed by
GitHub
Nov 21, 2024
Browse files
[Bugfix] Embedding model pooling_type equals ALL and multi input's bug (#10494)
parent
d5ec121f
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
17 additions
and
12 deletions
+17
-12
vllm/model_executor/layers/pooler.py
vllm/model_executor/layers/pooler.py
+17
-12
No files found.
vllm/model_executor/layers/pooler.py
View file @
4d676f08
...
...
@@ -94,14 +94,10 @@ class Pooler(nn.Module):
pooled_data
=
hidden_states
[
last_token_flat_indices
]
elif
self
.
pooling_type
==
PoolingType
.
ALL
:
offset
=
0
pooled_data
_lst
=
[]
pooled_data
=
[]
for
prompt_len
in
prompt_lens
:
pooled_data_i
=
hidden_states
[
offset
:
offset
+
prompt_len
]
pooled_data_lst
.
append
(
pooled_data_i
)
pooled_data
.
append
(
hidden_states
[
offset
:
offset
+
prompt_len
])
offset
+=
prompt_len
pooled_data
=
torch
.
stack
(
pooled_data_lst
)
elif
self
.
pooling_type
==
PoolingType
.
MEAN
:
# Calculate mean pooling
cumsum
=
torch
.
cumsum
(
hidden_states
,
dim
=
0
)
...
...
@@ -121,7 +117,7 @@ class Pooler(nn.Module):
step_tag_id
=
self
.
step_tag_id
offset
=
0
pooled_data
_lst
=
[]
pooled_data
=
[]
for
prompt_len
,
seq_data_i
in
zip
(
prompt_lens
,
pooling_metadata
.
seq_data
.
values
()):
pooled_data_i
=
hidden_states
[
offset
:
offset
+
prompt_len
]
...
...
@@ -130,17 +126,26 @@ class Pooler(nn.Module):
pooled_data_i
=
pooled_data_i
[
token_ids
==
step_tag_id
]
offset
+=
prompt_len
pooled_data_lst
.
append
(
pooled_data_i
)
pooled_data
=
torch
.
stack
(
pooled_data_lst
)
pooled_data
.
append
(
pooled_data_i
)
else
:
raise
ValueError
(
f
"Invalid pooling type:
{
self
.
pooling_type
}
"
)
if
self
.
normalize
:
pooled_data
=
nn
.
functional
.
normalize
(
pooled_data
,
p
=
2
,
dim
=
1
)
if
isinstance
(
pooled_data
,
list
):
pooled_data
=
[
nn
.
functional
.
normalize
(
data
,
p
=
2
,
dim
=
1
)
for
data
in
pooled_data
]
else
:
pooled_data
=
nn
.
functional
.
normalize
(
pooled_data
,
p
=
2
,
dim
=
1
)
if
self
.
softmax
:
pooled_data
=
nn
.
functional
.
softmax
(
pooled_data
,
dim
=-
1
)
if
isinstance
(
pooled_data
,
list
):
pooled_data
=
[
nn
.
functional
.
softmax
(
data
,
dim
=-
1
)
for
data
in
pooled_data
]
else
:
pooled_data
=
nn
.
functional
.
softmax
(
pooled_data
,
dim
=-
1
)
pooled_outputs
=
[
EmbeddingSequenceGroupOutput
(
data
.
tolist
())
for
data
in
pooled_data
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment