Fix nightly VLM accuracy: gemma3n TP fixes + removal, latency thresholds (#19401)
Co-authored-by: Alison Shao <alisonshao@MacBook-Pro-D2W773R9CD.local>
This commit is contained in:
co-authored by
Alison Shao
parent
e6da514c2c
commit
6ca7da3e7c
@@ -12,6 +12,7 @@ from sglang.srt.layers.linear import (
|
|||||||
ColumnParallelLinear,
|
ColumnParallelLinear,
|
||||||
MergedColumnParallelLinear,
|
MergedColumnParallelLinear,
|
||||||
QKVParallelLinear,
|
QKVParallelLinear,
|
||||||
|
ReplicatedLinear,
|
||||||
RowParallelLinear,
|
RowParallelLinear,
|
||||||
)
|
)
|
||||||
from sglang.srt.layers.logits_processor import LogitsProcessor
|
from sglang.srt.layers.logits_processor import LogitsProcessor
|
||||||
@@ -183,21 +184,21 @@ class Gemma3nAltUp(nn.Module):
|
|||||||
self.correct_output_scale = nn.Parameter(
|
self.correct_output_scale = nn.Parameter(
|
||||||
torch.zeros(config.hidden_size, dtype=torch.float32)
|
torch.zeros(config.hidden_size, dtype=torch.float32)
|
||||||
)
|
)
|
||||||
self.correction_coefs = ColumnParallelLinear(
|
self.correction_coefs = ReplicatedLinear(
|
||||||
config.altup_num_inputs,
|
config.altup_num_inputs,
|
||||||
config.altup_num_inputs,
|
config.altup_num_inputs,
|
||||||
bias=False,
|
bias=False,
|
||||||
quant_config=quant_config,
|
quant_config=quant_config,
|
||||||
prefix=add_prefix("correction_coefs", prefix),
|
prefix=add_prefix("correction_coefs", prefix),
|
||||||
)
|
)
|
||||||
self.prediction_coefs = ColumnParallelLinear(
|
self.prediction_coefs = ReplicatedLinear(
|
||||||
config.altup_num_inputs,
|
config.altup_num_inputs,
|
||||||
config.altup_num_inputs**2,
|
config.altup_num_inputs**2,
|
||||||
bias=False,
|
bias=False,
|
||||||
quant_config=quant_config,
|
quant_config=quant_config,
|
||||||
prefix=add_prefix("prediction_coefs", prefix),
|
prefix=add_prefix("prediction_coefs", prefix),
|
||||||
)
|
)
|
||||||
self.modality_router = ColumnParallelLinear(
|
self.modality_router = ReplicatedLinear(
|
||||||
config.hidden_size,
|
config.hidden_size,
|
||||||
config.altup_num_inputs,
|
config.altup_num_inputs,
|
||||||
bias=False,
|
bias=False,
|
||||||
@@ -545,14 +546,14 @@ class Gemma3nDecoderLayer(nn.Module):
|
|||||||
config, quant_config, prefix=add_prefix("laurel", prefix)
|
config, quant_config, prefix=add_prefix("laurel", prefix)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.per_layer_input_gate = ColumnParallelLinear(
|
self.per_layer_input_gate = ReplicatedLinear(
|
||||||
self.hidden_size,
|
self.hidden_size,
|
||||||
self.hidden_size_per_layer_input,
|
self.hidden_size_per_layer_input,
|
||||||
bias=False,
|
bias=False,
|
||||||
quant_config=quant_config,
|
quant_config=quant_config,
|
||||||
prefix=add_prefix("per_layer_input_gate", prefix),
|
prefix=add_prefix("per_layer_input_gate", prefix),
|
||||||
)
|
)
|
||||||
self.per_layer_projection = RowParallelLinear(
|
self.per_layer_projection = ReplicatedLinear(
|
||||||
self.hidden_size_per_layer_input,
|
self.hidden_size_per_layer_input,
|
||||||
self.hidden_size,
|
self.hidden_size,
|
||||||
bias=False,
|
bias=False,
|
||||||
@@ -677,6 +678,7 @@ class Gemma3nTextModel(PreTrainedModel):
|
|||||||
self.hidden_size,
|
self.hidden_size,
|
||||||
config.num_hidden_layers * config.hidden_size_per_layer_input,
|
config.num_hidden_layers * config.hidden_size_per_layer_input,
|
||||||
bias=False,
|
bias=False,
|
||||||
|
gather_output=True,
|
||||||
quant_config=quant_config,
|
quant_config=quant_config,
|
||||||
prefix=add_prefix("per_layer_model_projection", prefix),
|
prefix=add_prefix("per_layer_model_projection", prefix),
|
||||||
)
|
)
|
||||||
@@ -692,6 +694,7 @@ class Gemma3nTextModel(PreTrainedModel):
|
|||||||
self.hidden_size,
|
self.hidden_size,
|
||||||
self.hidden_size,
|
self.hidden_size,
|
||||||
bias=False,
|
bias=False,
|
||||||
|
gather_output=True,
|
||||||
quant_config=quant_config,
|
quant_config=quant_config,
|
||||||
prefix=prefix,
|
prefix=prefix,
|
||||||
),
|
),
|
||||||
@@ -704,6 +707,7 @@ class Gemma3nTextModel(PreTrainedModel):
|
|||||||
self.hidden_size,
|
self.hidden_size,
|
||||||
self.hidden_size,
|
self.hidden_size,
|
||||||
bias=False,
|
bias=False,
|
||||||
|
gather_output=True,
|
||||||
quant_config=quant_config,
|
quant_config=quant_config,
|
||||||
prefix=prefix,
|
prefix=prefix,
|
||||||
),
|
),
|
||||||
@@ -782,9 +786,6 @@ class Gemma3nTextModel(PreTrainedModel):
|
|||||||
|
|
||||||
per_layer_inputs = self.project_per_layer_inputs(input_embeds, per_layer_inputs)
|
per_layer_inputs = self.project_per_layer_inputs(input_embeds, per_layer_inputs)
|
||||||
|
|
||||||
if positions.dim() == 1:
|
|
||||||
positions = positions.unsqueeze(0)
|
|
||||||
|
|
||||||
# Expand hidden_states to support per-layer inputs
|
# Expand hidden_states to support per-layer inputs
|
||||||
target_magnitude = torch.mean(input_embeds**2, dim=-1, keepdim=True) ** 0.5
|
target_magnitude = torch.mean(input_embeds**2, dim=-1, keepdim=True) ** 0.5
|
||||||
epsilon_tensor = torch.tensor(torch.finfo(input_embeds.dtype).min)
|
epsilon_tensor = torch.tensor(torch.finfo(input_embeds.dtype).min)
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ from transformers import (
|
|||||||
)
|
)
|
||||||
from transformers.models.auto.modeling_auto import AutoModel
|
from transformers.models.auto.modeling_auto import AutoModel
|
||||||
|
|
||||||
from sglang.srt.layers.linear import RowParallelLinear
|
from sglang.srt.layers.linear import ReplicatedLinear
|
||||||
from sglang.srt.layers.logits_processor import LogitsProcessor
|
from sglang.srt.layers.logits_processor import LogitsProcessor
|
||||||
from sglang.srt.layers.quantization.base_config import QuantizationConfig
|
from sglang.srt.layers.quantization.base_config import QuantizationConfig
|
||||||
from sglang.srt.layers.vocab_parallel_embedding import VocabParallelEmbedding
|
from sglang.srt.layers.vocab_parallel_embedding import VocabParallelEmbedding
|
||||||
@@ -90,7 +90,7 @@ class Gemma3nMultimodalEmbedder(nn.Module):
|
|||||||
eps=self.eps,
|
eps=self.eps,
|
||||||
)
|
)
|
||||||
|
|
||||||
self.embedding_projection = RowParallelLinear(
|
self.embedding_projection = ReplicatedLinear(
|
||||||
self.multimodal_hidden_size,
|
self.multimodal_hidden_size,
|
||||||
self.text_hidden_size,
|
self.text_hidden_size,
|
||||||
bias=False,
|
bias=False,
|
||||||
|
|||||||
@@ -34,7 +34,9 @@ MODEL_THRESHOLDS = {
|
|||||||
0.270, 23.8
|
0.270, 23.8
|
||||||
),
|
),
|
||||||
ModelLaunchSettings("google/gemma-3-4b-it"): ModelEvalMetrics(0.360, 10.9),
|
ModelLaunchSettings("google/gemma-3-4b-it"): ModelEvalMetrics(0.360, 10.9),
|
||||||
ModelLaunchSettings("google/gemma-3n-E4B-it"): ModelEvalMetrics(0.270, 17.7),
|
ModelLaunchSettings(
|
||||||
|
"google/gemma-3n-E4B-it", extra_args=["--tp=2"]
|
||||||
|
): ModelEvalMetrics(0.270, 17.7),
|
||||||
ModelLaunchSettings("mistral-community/pixtral-12b"): ModelEvalMetrics(0.360, 16.6),
|
ModelLaunchSettings("mistral-community/pixtral-12b"): ModelEvalMetrics(0.360, 16.6),
|
||||||
ModelLaunchSettings("moonshotai/Kimi-VL-A3B-Instruct"): ModelEvalMetrics(
|
ModelLaunchSettings("moonshotai/Kimi-VL-A3B-Instruct"): ModelEvalMetrics(
|
||||||
0.330, 23.5
|
0.330, 23.5
|
||||||
@@ -50,7 +52,7 @@ MODEL_THRESHOLDS = {
|
|||||||
ModelLaunchSettings(
|
ModelLaunchSettings(
|
||||||
"unsloth/Mistral-Small-3.1-24B-Instruct-2503"
|
"unsloth/Mistral-Small-3.1-24B-Instruct-2503"
|
||||||
): ModelEvalMetrics(0.30, 16.7),
|
): ModelEvalMetrics(0.30, 16.7),
|
||||||
ModelLaunchSettings("XiaomiMiMo/MiMo-VL-7B-RL"): ModelEvalMetrics(0.28, 32.0),
|
ModelLaunchSettings("XiaomiMiMo/MiMo-VL-7B-RL"): ModelEvalMetrics(0.28, 40.0),
|
||||||
ModelLaunchSettings("zai-org/GLM-4.1V-9B-Thinking"): ModelEvalMetrics(0.280, 30.4),
|
ModelLaunchSettings("zai-org/GLM-4.1V-9B-Thinking"): ModelEvalMetrics(0.280, 30.4),
|
||||||
ModelLaunchSettings(
|
ModelLaunchSettings(
|
||||||
"zai-org/GLM-4.5V-FP8", extra_args=["--tp=2"]
|
"zai-org/GLM-4.5V-FP8", extra_args=["--tp=2"]
|
||||||
|
|||||||
Reference in New Issue
Block a user