vllm_omni.model_executor.models.personaplex.modeling_helium ¶
vLLM-native PersonaPlex Helium temporal transformer.
The module maps the Moshi temporal LM backbone onto vLLM's Llama-style decoder components. It intentionally does not include Moshi's text/audio input embeddings or depformer; PersonaPlex feeds temporal inputs_embeds directly.
HeliumAttention ¶
Bases: Module
attn instance-attribute ¶
attn = Attention(
self.num_heads,
self.head_dim,
self.scaling,
num_kv_heads=self.num_kv_heads,
cache_config=cache_config,
quant_config=quant_config,
per_layer_sliding_window=config.sliding_window,
prefix=f"{prefix}.attn",
attn_type=attn_type,
)
o_proj instance-attribute ¶
o_proj = RowParallelLinear(
input_size=self.total_num_heads * self.head_dim,
output_size=hidden_size,
bias=False,
quant_config=quant_config,
prefix=f"{prefix}.o_proj",
)
qkv_proj instance-attribute ¶
qkv_proj = QKVParallelLinear(
hidden_size=hidden_size,
head_size=self.head_dim,
total_num_heads=self.total_num_heads,
total_num_kv_heads=self.total_num_kv_heads,
bias=False,
quant_config=quant_config,
prefix=f"{prefix}.qkv_proj",
)
HeliumDecoderLayer ¶
Bases: Module
input_layernorm instance-attribute ¶
input_layernorm = HeliumRMSNorm(
config.hidden_size, eps=config.rms_norm_eps
)
mlp instance-attribute ¶
mlp = HeliumMLP(
hidden_size=self.hidden_size,
intermediate_size=config.intermediate_size,
hidden_act=config.hidden_act,
quant_config=quant_config,
prefix=f"{prefix}.mlp",
)
post_attention_layernorm instance-attribute ¶
post_attention_layernorm = HeliumRMSNorm(
config.hidden_size, eps=config.rms_norm_eps
)
self_attn instance-attribute ¶
self_attn = HeliumAttention(
config=config,
hidden_size=self.hidden_size,
num_heads=config.num_attention_heads,
num_kv_heads=config.num_key_value_heads,
cache_config=cache_config,
quant_config=quant_config,
prefix=f"{prefix}.self_attn",
attn_type=AttentionType.DECODER,
)
HeliumForCausalLM ¶
Bases: Module, SupportsLoRA, SupportsPP
embedding_modules class-attribute instance-attribute ¶
lm_head instance-attribute ¶
lm_head = ParallelLMHead(
config.vocab_size,
config.hidden_size,
quant_config=self.quant_config,
prefix=maybe_prefix(prefix, "lm_head"),
)
make_empty_intermediate_tensors instance-attribute ¶
model instance-attribute ¶
model = HeliumModel(
vllm_config=vllm_config,
prefix=maybe_prefix(prefix, "model"),
layer_type=layer_type,
)
packed_modules_mapping class-attribute instance-attribute ¶
packed_modules_mapping = {
"qkv_proj": ["q_proj", "k_proj", "v_proj"],
"gate_up_proj": ["gate_proj", "up_proj"],
}
forward ¶
forward(
input_ids: Tensor | None,
positions: Tensor,
intermediate_tensors: IntermediateTensors | None = None,
inputs_embeds: Tensor | None = None,
) -> Tensor | IntermediateTensors
HeliumMLP ¶
Bases: Module
down_proj instance-attribute ¶
down_proj = RowParallelLinear(
input_size=intermediate_size,
output_size=hidden_size,
bias=False,
quant_config=quant_config,
prefix=f"{prefix}.down_proj",
)
gate_up_proj instance-attribute ¶
gate_up_proj = MergedColumnParallelLinear(
input_size=hidden_size,
output_sizes=[intermediate_size] * 2,
bias=False,
quant_config=quant_config,
prefix=f"{prefix}.gate_up_proj",
)
HeliumModel ¶
Bases: Module
make_empty_intermediate_tensors instance-attribute ¶
make_empty_intermediate_tensors = (
make_empty_intermediate_tensors_factory(
["hidden_states", "residual"], config.hidden_size
)
)
forward ¶
forward(
input_ids: Tensor | None,
positions: Tensor,
intermediate_tensors: IntermediateTensors | None = None,
inputs_embeds: Tensor | None = None,
) -> Tensor | IntermediateTensors
HeliumRMSNorm ¶
Bases: RMSNorm
Moshi-compatible RMSNorm.
Moshi stores the parameter as alpha with shape [1, 1, hidden] and computes variance and the alpha multiply in fp32 before casting back to the input dtype. vLLM's parameter is named weight; the loader squeezes alpha.