hyperclovax¶
hyperclovax
¶
HyperCLOVA X on vLLM (vllm.model_executor.models.hyperclovax).
Llama's names, a sandwich block and Granite's µP multipliers. The block is
not fused, whatever its signature says: it is called forward(positions,
hidden_states, residual), ignores the residual it is handed, adds each
sublayer's term itself and returns (hidden_states, residual) with the
whole stream first, as Exaone4's does::
h = x + post_norm1(self_attn(input_layernorm(x))) * residual_multiplier
out = h + post_norm2(mlp(post_attention_layernorm(h))) * residual_multiplier
The values carry transformers' meanings:
attention_outputandmlp_outputare the term that reaches the stream: each post-norm's output timesresidual_multiplier(the module's own output times it on a checkpoint withoutuse_post_norm, where vLLM builds no post-norms). That product is a computed copy (aFlatwith afactor, as on Granite): a write is divided back into the post-norm's output, and a read that edits nothing hands it back untouched.embedding_multiplier: the model multiplies the embedding module's output by it (in place) before the first block, sotoken_embeddingsis the lookup before it, as on transformers, andlayers[0].layer_inputthe multiplied stream.attention_multiplieris the attention layer's scale, which the recomputed scores use.logits_scaling: vLLM's logits processor multiplies by it (itsscale), so the defaultproject_on_vocabthrough that processor does what the model does.