fix: fp8 quantization failure of qwen 2.5 VL 7B model (#10112)
Signed-off-by: PanJason <pyyjason@gmail.com>
This commit is contained in:
@@ -31,6 +31,7 @@ from sglang.srt.layers.parameter import (
|
||||
_ColumnvLLMParameter,
|
||||
)
|
||||
from sglang.srt.layers.quantization.unquant import UnquantizedLinearMethod
|
||||
from sglang.srt.layers.utils import pad_or_narrow_weight
|
||||
from sglang.srt.utils import is_cpu, is_npu, set_weight_attrs
|
||||
|
||||
if TYPE_CHECKING:
|
||||
@@ -625,9 +626,16 @@ class MergedColumnParallelLinear(ColumnParallelLinear):
|
||||
# bitsandbytes loads the weights of the specific portion
|
||||
# no need to narrow here
|
||||
if not use_bitsandbytes_4bit and not self.use_presharded_weights:
|
||||
loaded_weight = loaded_weight.narrow(
|
||||
output_dim, start_idx, shard_size
|
||||
)
|
||||
# Padding for special case like qwen2_5_VL's mlp which is not 8-aligned
|
||||
end_idx = start_idx + shard_size
|
||||
if end_idx > loaded_weight.shape[output_dim]:
|
||||
loaded_weight = pad_or_narrow_weight(
|
||||
loaded_weight, output_dim, start_idx, shard_size
|
||||
)
|
||||
else:
|
||||
loaded_weight = loaded_weight.narrow(
|
||||
output_dim, start_idx, shard_size
|
||||
)
|
||||
|
||||
# Special case for AQLM codebooks.
|
||||
elif is_metadata:
|
||||
@@ -1302,7 +1310,16 @@ class RowParallelLinear(LinearBase):
|
||||
shard_size,
|
||||
)
|
||||
else:
|
||||
loaded_weight = loaded_weight.narrow(input_dim, start_idx, shard_size)
|
||||
# Padding for special case like qwen2_5_VL's mlp which is not 8-aligned
|
||||
end_idx = start_idx + shard_size
|
||||
if end_idx > loaded_weight.shape[input_dim]:
|
||||
loaded_weight = pad_or_narrow_weight(
|
||||
loaded_weight, input_dim, start_idx, shard_size
|
||||
)
|
||||
else:
|
||||
loaded_weight = loaded_weight.narrow(
|
||||
input_dim, start_idx, shard_size
|
||||
)
|
||||
|
||||
# Special case for loading scales off disk, which often do not
|
||||
# have a shape (such as in the case of AutoFP8).
|
||||
|
||||
Reference in New Issue
Block a user