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
b72de6bd
Commit
b72de6bd
authored
Feb 22, 2025
by
zhuwenwen
Browse files
Merge branch 'v0.7.2-dev' into v0.7.3-dev
parents
ec5e299c
437e6aef
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
67 additions
and
7 deletions
+67
-7
requirements-common.txt
requirements-common.txt
+1
-1
vllm/config.py
vllm/config.py
+2
-1
vllm/engine/arg_utils.py
vllm/engine/arg_utils.py
+2
-1
vllm/model_executor/model_loader/utils.py
vllm/model_executor/model_loader/utils.py
+1
-1
vllm/model_executor/models/qwen2_5_vl.py
vllm/model_executor/models/qwen2_5_vl.py
+59
-1
vllm/model_executor/models/qwen2_vl.py
vllm/model_executor/models/qwen2_vl.py
+1
-1
vllm/multimodal/parse.py
vllm/multimodal/parse.py
+1
-1
No files found.
requirements-common.txt
View file @
b72de6bd
...
@@ -6,7 +6,7 @@ requests >= 2.26.0
...
@@ -6,7 +6,7 @@ requests >= 2.26.0
tqdm
tqdm
blake3
blake3
py-cpuinfo
py-cpuinfo
transformers >= 4.4
8.2
# Required for Bamba model and Transformers backend.
transformers >= 4.4
9.0
# Required for Bamba model and Transformers backend.
tokenizers >= 0.19.1 # Required for Llama 3.
tokenizers >= 0.19.1 # Required for Llama 3.
protobuf # Required by LlamaTokenizer.
protobuf # Required by LlamaTokenizer.
fastapi[standard] >= 0.107.0, < 0.113.0; python_version < '3.9'
fastapi[standard] >= 0.107.0, < 0.113.0; python_version < '3.9'
...
...
vllm/config.py
View file @
b72de6bd
...
@@ -324,7 +324,8 @@ class ModelConfig:
...
@@ -324,7 +324,8 @@ class ModelConfig:
# Set enforce_eager to False if the value is unset.
# Set enforce_eager to False if the value is unset.
if
self
.
enforce_eager
is
None
:
if
self
.
enforce_eager
is
None
:
self
.
enforce_eager
=
False
# self.enforce_eager = False
self
.
enforce_eager
=
True
sliding_window
=
getattr
(
self
.
hf_text_config
,
"sliding_window"
,
None
)
sliding_window
=
getattr
(
self
.
hf_text_config
,
"sliding_window"
,
None
)
has_interleaved_attention
=
(
sliding_window
is
not
None
)
and
(
has_interleaved_attention
=
(
sliding_window
is
not
None
)
and
(
...
...
vllm/engine/arg_utils.py
View file @
b72de6bd
...
@@ -597,7 +597,8 @@ class EngineArgs:
...
@@ -597,7 +597,8 @@ class EngineArgs:
'This should be a JSON string that will be '
'This should be a JSON string that will be '
'parsed into a dictionary.'
)
'parsed into a dictionary.'
)
parser
.
add_argument
(
'--enforce-eager'
,
parser
.
add_argument
(
'--enforce-eager'
,
action
=
'store_true'
,
# action='store_true',
default
=
True
,
help
=
'Always use eager-mode PyTorch. If False, '
help
=
'Always use eager-mode PyTorch. If False, '
'will use eager mode and CUDA graph in hybrid '
'will use eager mode and CUDA graph in hybrid '
'for maximal performance and flexibility.'
)
'for maximal performance and flexibility.'
)
...
...
vllm/model_executor/model_loader/utils.py
View file @
b72de6bd
...
@@ -88,7 +88,7 @@ def get_model_architecture(
...
@@ -88,7 +88,7 @@ def get_model_architecture(
model_config
:
ModelConfig
)
->
Tuple
[
Type
[
nn
.
Module
],
str
]:
model_config
:
ModelConfig
)
->
Tuple
[
Type
[
nn
.
Module
],
str
]:
architectures
=
getattr
(
model_config
.
hf_config
,
"architectures"
,
[])
architectures
=
getattr
(
model_config
.
hf_config
,
"architectures"
,
[])
visions
=
getattr
(
model_config
.
hf_config
,
"visual"
,
[])
or
getattr
(
model_config
.
hf_config
,
"vision_config"
,
[])
visions
=
getattr
(
model_config
.
hf_config
,
"visual"
,
[])
or
getattr
(
model_config
.
hf_config
,
"vision_config"
,
[])
support_nn_architectures
=
[
'LlamaForCausalLM'
,
'QWenLMHeadModel'
,
'Qwen2ForCausalLM'
,
'Qwen2VLForConditionalGeneration'
,
'Qwen2MoeForCausalLM'
,
'ChatGLMModel'
,
'ChatGLMForConditionalGeneration'
,
support_nn_architectures
=
[
'LlamaForCausalLM'
,
'QWenLMHeadModel'
,
'Qwen2ForCausalLM'
,
'Qwen2VLForConditionalGeneration'
,
'Qwen2_5_VLForConditionalGeneration'
,
'Qwen2MoeForCausalLM'
,
'ChatGLMModel'
,
'ChatGLMForConditionalGeneration'
,
'BaichuanForCausalLM'
,
'BloomForCausalLM'
,
'MedusaModel'
,
'MixtralForCausalLM'
,
'MLPSpeculatorPreTrainedModel'
,
'FalconForCausalLM'
,
'DeepseekV2ForCausalLM'
,
'DeepseekV3ForCausalLM'
]
'BaichuanForCausalLM'
,
'BloomForCausalLM'
,
'MedusaModel'
,
'MixtralForCausalLM'
,
'MLPSpeculatorPreTrainedModel'
,
'FalconForCausalLM'
,
'DeepseekV2ForCausalLM'
,
'DeepseekV3ForCausalLM'
]
if
any
(
arch
in
architectures
for
arch
in
support_nn_architectures
):
if
any
(
arch
in
architectures
for
arch
in
support_nn_architectures
):
if
os
.
getenv
(
'LLAMA_NN'
)
!=
'0'
:
if
os
.
getenv
(
'LLAMA_NN'
)
!=
'0'
:
...
...
vllm/model_executor/models/qwen2_5_vl.py
View file @
b72de6bd
...
@@ -69,6 +69,11 @@ from .utils import (AutoWeightsLoader, WeightsMapper,
...
@@ -69,6 +69,11 @@ from .utils import (AutoWeightsLoader, WeightsMapper,
merge_multimodal_embeddings
)
merge_multimodal_embeddings
)
from
.vision
import
get_vit_attn_backend
from
.vision
import
get_vit_attn_backend
import
os
import
re
from
vllm
import
_custom_ops
as
ops
from
vllm.model_executor.utils
import
pad_weight
,
gemm_bank_conf
logger
=
init_logger
(
__name__
)
logger
=
init_logger
(
__name__
)
# === Vision Inputs === #
# === Vision Inputs === #
...
@@ -528,6 +533,16 @@ class Qwen2_5_VisionTransformer(nn.Module):
...
@@ -528,6 +533,16 @@ class Qwen2_5_VisionTransformer(nn.Module):
quant_config
=
quant_config
,
quant_config
=
quant_config
,
prefix
=
f
"
{
prefix
}
.merger"
,
prefix
=
f
"
{
prefix
}
.merger"
,
)
)
self
.
quant_method
=
None
if
quant_config
is
not
None
:
self
.
quant_method
=
quant_config
.
get_name
()
self
.
quant_config
=
quant_config
self
.
use_llama_nn
=
os
.
environ
.
get
(
'LLAMA_NN'
)
==
'1'
self
.
use_gemm_pad
=
os
.
environ
.
get
(
'GEMM_PAD'
)
==
'1'
self
.
use_fa_pad
=
os
.
environ
.
get
(
'FA_PAD'
)
==
'1'
self
.
use_awq_pad
=
os
.
environ
.
get
(
'AWQ_PAD'
)
==
'1'
@
property
@
property
def
dtype
(
self
)
->
torch
.
dtype
:
def
dtype
(
self
)
->
torch
.
dtype
:
...
@@ -675,6 +690,49 @@ class Qwen2_5_VisionTransformer(nn.Module):
...
@@ -675,6 +690,49 @@ class Qwen2_5_VisionTransformer(nn.Module):
default_weight_loader
)
default_weight_loader
)
weight_loader
(
param
,
loaded_weight
)
weight_loader
(
param
,
loaded_weight
)
loaded_params
.
add
(
name
)
loaded_params
.
add
(
name
)
if
self
.
use_llama_nn
and
self
.
quant_method
is
None
:
lay_key_words
=
[
"attn.qkv.weight"
,
"attn.proj.weight"
,
"mlp.0.weight"
,
"mlp.2.weight"
,
"self_attn.qkv_proj.weight"
,
"self_attn.o_proj.weight"
,
"mlp.gate_up_proj.weight"
,
"mlp.down_proj.weight"
,
"lm_head.weight"
,
]
combined_words
=
"|"
.
join
(
lay_key_words
)
# lay_qkv_words = ["attn.qkv.weight"]
# qkv_words = "|".join(lay_qkv_words)
# lay_qkv_bias_words = ["attn.qkv.bias"]
# qkv_bias_words = "|".join(lay_qkv_bias_words)
for
layername
in
loaded_params
:
weight
=
params_dict
[
layername
]
# if self.use_fa_pad and (re.findall(qkv_bias_words, layername)):
# weight.data = pad_weight(weight.data, 32)
matches
=
re
.
findall
(
combined_words
,
layername
)
if
matches
:
# if self.use_gemm_pad and gemm_bank_conf(weight.data.shape[0]):
# weight.data = pad_weight(weight.data, 32)
# if self.use_fa_pad and (re.findall(qkv_words, layername)):
# if not gemm_bank_conf(weight.data.shape[0]):
# weight.data = pad_weight(weight.data, 32)
_weight
=
torch
.
zeros_like
(
weight
.
data
)
ori_shape
=
_weight
.
shape
ops
.
trans_w16_gemm
(
_weight
,
weight
.
data
,
_weight
.
shape
[
0
],
_weight
.
shape
[
1
])
weight
.
data
.
copy_
(
_weight
)
weight
.
data
=
weight
.
data
.
reshape
(
ori_shape
[
1
],
-
1
)
return
loaded_params
return
loaded_params
...
@@ -1103,4 +1161,4 @@ class Qwen2_5_VLForConditionalGeneration(nn.Module, SupportsMultiModal,
...
@@ -1103,4 +1161,4 @@ class Qwen2_5_VLForConditionalGeneration(nn.Module, SupportsMultiModal,
return
MultiModelKeys
.
from_string_field
(
return
MultiModelKeys
.
from_string_field
(
language_model
=
"language_model"
,
language_model
=
"language_model"
,
connector
=
"visual."
,
connector
=
"visual."
,
tower_model
=
"visual.merger."
)
tower_model
=
"visual.merger."
)
\ No newline at end of file
vllm/model_executor/models/qwen2_vl.py
View file @
b72de6bd
...
@@ -1468,4 +1468,4 @@ class Qwen2VLForConditionalGeneration(nn.Module, SupportsMultiModal,
...
@@ -1468,4 +1468,4 @@ class Qwen2VLForConditionalGeneration(nn.Module, SupportsMultiModal,
return
MultiModelKeys
.
from_string_field
(
return
MultiModelKeys
.
from_string_field
(
language_model
=
"language_model"
,
language_model
=
"language_model"
,
connector
=
"visual."
,
connector
=
"visual."
,
tower_model
=
"visual.merger."
)
tower_model
=
"visual.merger."
)
\ No newline at end of file
vllm/multimodal/parse.py
View file @
b72de6bd
...
@@ -425,4 +425,4 @@ class MultiModalDataParser:
...
@@ -425,4 +425,4 @@ class MultiModalDataParser:
mm_items
[
k
]
=
subparsers
[
k
](
v
)
mm_items
[
k
]
=
subparsers
[
k
](
v
)
return
mm_items
return
mm_items
\ No newline at end of file
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