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
4c5d8e8e
"vscode:/vscode.git/clone" did not exist on "371fd61cea9de3234cd7f242a9f501f18207d609"
Unverified
Commit
4c5d8e8e
authored
Aug 11, 2024
by
Isotr0py
Committed by
GitHub
Aug 10, 2024
Browse files
[Bugfix] Fix phi3v batch inference when images have different aspect ratio (#7392)
parent
baa24025
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
25 additions
and
19 deletions
+25
-19
tests/models/test_phi3v.py
tests/models/test_phi3v.py
+4
-1
tests/tracing/test_tracing.py
tests/tracing/test_tracing.py
+2
-2
vllm/model_executor/models/phi3v.py
vllm/model_executor/models/phi3v.py
+12
-14
vllm/multimodal/utils.py
vllm/multimodal/utils.py
+7
-2
No files found.
tests/models/test_phi3v.py
View file @
4c5d8e8e
...
...
@@ -81,7 +81,10 @@ def run_test(
inputs_per_image
=
[(
[
prompt
for
_
in
size_factors
],
[
rescale_image_size
(
image
,
factor
)
for
factor
in
size_factors
],
[
rescale_image_size
(
image
,
factor
,
transpose
=
idx
)
for
idx
,
factor
in
enumerate
(
size_factors
)
],
)
for
image
,
prompt
in
zip
(
images
,
HF_IMAGE_PROMPTS
)]
# NOTE: take care of the order. run vLLM first, and then run HF.
...
...
tests/tracing/test_tracing.py
View file @
4c5d8e8e
...
...
@@ -114,5 +114,5 @@ def test_traces(trace_service):
SpanAttributes
.
LLM_LATENCY_TIME_TO_FIRST_TOKEN
)
==
ttft
e2e_time
=
metrics
.
finished_time
-
metrics
.
arrival_time
assert
attributes
.
get
(
SpanAttributes
.
LLM_LATENCY_E2E
)
==
e2e_time
assert
attributes
.
get
(
SpanAttributes
.
LLM_LATENCY_TIME_IN_SCHEDULER
)
==
metrics
.
scheduler_time
assert
attributes
.
get
(
SpanAttributes
.
LLM_LATENCY_TIME_IN_SCHEDULER
)
==
metrics
.
scheduler_time
vllm/model_executor/models/phi3v.py
View file @
4c5d8e8e
...
...
@@ -189,7 +189,7 @@ class Phi3HDImageEmbedding(Phi3ImageEmbeddingBase):
global_image_features_hd_newline
=
self
.
add_image_newline
(
global_image_features_hd
)
all
_image_
embeddings
=
[]
batch
_image_
features_proj
=
[]
# need a for loop to process each image because of different image sizes
# (patch arrangement is different for each image)
for
i
,
img_size
in
enumerate
(
image_sizes
):
...
...
@@ -207,19 +207,17 @@ class Phi3HDImageEmbedding(Phi3ImageEmbeddingBase):
sub_image_features_hd
)
# [sub features, separator, global features]
all_image_embeddings
.
append
(
torch
.
cat
([
sub_image_features_hd_newline
.
squeeze
(
0
),
# (h_crop*12*(w_crop*12+1), 4096)
self
.
glb_GN
.
squeeze
(
0
),
global_image_features_hd_newline
[
i
],
]))
image_features_proj
=
self
.
img_projection
(
torch
.
stack
(
all_image_embeddings
).
to
(
target_device
,
target_dtype
)
)
# (num_images, (h_crop*12*(w_crop*12+1)+1), hidden_size)
return
image_features_proj
image_embeddings
=
torch
.
cat
([
sub_image_features_hd_newline
.
squeeze
(
0
),
# (h_crop*12*(w_crop*12+1), 4096)
self
.
glb_GN
.
squeeze
(
0
),
global_image_features_hd_newline
[
i
],
])
img_proj
=
self
.
img_projection
(
image_embeddings
.
to
(
target_device
,
target_dtype
))
batch_image_features_proj
.
append
(
img_proj
)
return
batch_image_features_proj
def
reshape_hd_patches_2x2merge
(
self
,
image_features
,
h_crop
,
w_crop
):
"""
...
...
vllm/multimodal/utils.py
View file @
4c5d8e8e
...
...
@@ -90,8 +90,13 @@ def load_image_from_base64(image: Union[bytes, str]) -> Image.Image:
return
_load_image_from_bytes
(
base64
.
b64decode
(
image
))
def
rescale_image_size
(
image
:
Image
.
Image
,
size_factor
:
float
)
->
Image
.
Image
:
def
rescale_image_size
(
image
:
Image
.
Image
,
size_factor
:
float
,
transpose
:
int
=
-
1
)
->
Image
.
Image
:
"""Rescale the dimensions of an image by a constant factor."""
new_width
=
int
(
image
.
width
*
size_factor
)
new_height
=
int
(
image
.
height
*
size_factor
)
return
image
.
resize
((
new_width
,
new_height
))
image
=
image
.
resize
((
new_width
,
new_height
))
if
transpose
>=
0
:
image
=
image
.
transpose
(
Image
.
Transpose
(
transpose
))
return
image
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