> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.nvidia.com/nemo/automodel/v0.5/nemo-automodel/nemo_automodel/components/models/qwen2/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/automodel/_mcp/server. # nemo_automodel.components.models.qwen2 Custom Qwen2 model implementation for NeMo Automodel. ## Submodules * **[`nemo_automodel.components.models.qwen2.model`](/nemo-automodel/nemo_automodel/components/models/qwen2/model)** ## Package Contents ### Classes | Name | Description | | ------------------------------------------------------------------------------------ | ----------------------------------------------- | | [`Qwen2ForCausalLM`](#nemo_automodel-components-models-qwen2-model-Qwen2ForCausalLM) | Qwen2 model with causal language modeling head. | ### API ```python class nemo_automodel.components.models.qwen2.model.Qwen2ForCausalLM( config: transformers.Qwen2Config, backend: nemo_automodel.components.models.common.BackendConfig | None = None ) ``` **Bases:** [HFCheckpointingMixin](/nemo-automodel/nemo_automodel/components/models/common/hf_checkpointing_mixin#nemo_automodel-components-models-common-hf_checkpointing_mixin-HFCheckpointingMixin), [Qwen2PreTrainedModel](#nemo_automodel-components-models-qwen2-model-Qwen2PreTrainedModel) Qwen2 model with causal language modeling head. Uses separate q/k/v and gate/up projections -- HuggingFace layout. **`_pp_plan`** `= {'lm_head': (['hidden_states'], ['logits'])}` --- **`_tied_weights_keys`** `= {'lm_head.weight': 'model.embed_tokens.weight'}` --- **`_tp_plan`** `= {'lm_head': 'colwise_rep'}` --- **`_uses_hf_attention`** `bool` BSHD and NEAT use HF dispatch; TE handles only pre-packed THD. --- **`backend`** `= backend or BackendConfig()` --- **`lm_head`** --- **`model`** `= Qwen2Model(config=config, backend=(self.backend))` --- **`tie_word_embeddings_support`** `TieSupport = TieSupport.BOTH` --- **`vocab_size`** `= config.vocab_size` --- ```python nemo_automodel.components.models.qwen2.model.Qwen2ForCausalLM.forward( input_ids: torch.LongTensor | None = None, attention_mask: torch.Tensor | None = None, position_ids: torch.LongTensor | None = None, past_key_values: transformers.cache_utils.Cache | None = None, inputs_embeds: torch.FloatTensor | None = None, labels: torch.LongTensor | None = None, use_cache: bool | None = None, output_attentions: bool | None = None, output_hidden_states: bool | None = None, return_dict: bool | None = None, cache_position: torch.LongTensor | None = None, logits_to_keep: typing.Union[int, torch.Tensor] = 0, kwargs: transformers.processing_utils.Unpack[transformers.utils.TransformersKwargs] = {} ) -> transformers.modeling_outputs.CausalLMOutputWithPast ``` Run causal LM projection for BSHD or packed THD inputs. **Parameters:** **`input_ids`** `torch.LongTensor | None` — default: None Token IDs `[B, S]` or packed local IDs `[T]`. --- **`attention_mask`** `torch.Tensor | None` — default: None Optional padded mask. THD uses `cu_seqlens`. --- **`position_ids`** `torch.LongTensor | None` — default: None Position IDs `[B, S]` or packed local IDs `[T]`. --- **`past_key_values`** `Cache | None` — default: None Optional BSHD KV cache; unsupported for THD. --- **`inputs_embeds`** `torch.FloatTensor | None` — default: None Optional hidden inputs `[B, S, H]` or `[T, H]`. --- **`labels`** `torch.LongTensor | None` — default: None Optional labels `[B, S]` or packed `[T]`. --- **`use_cache`** `bool | None` — default: None Whether to update the BSHD KV cache. --- **`output_attentions`** `bool | None` — default: None Whether to request attention outputs. --- **`output_hidden_states`** `bool | None` — default: None Whether to return per-layer hidden states. --- **`return_dict`** `bool | None` — default: None Whether to return `CausalLMOutputWithPast`. --- **`cache_position`** `torch.LongTensor | None` — default: None Optional BSHD cache positions `[S]`. --- **`logits_to_keep`** `Union[int, torch.Tensor]` — default: 0 Positions to project from hidden size `H` to vocabulary size `V`. --- **`**kwargs`** `Unpack[TransformersKwargs]` — default: \{} THD metadata. `cu_seqlens` is `[N + 1]` and CP adds `cp_size` and `cp_rank`. --- **Returns:** `CausalLMOutputWithPast` Causal LM output with BSHD logits `[B, S, V]`. Packed local ```python nemo_automodel.components.models.qwen2.model.Qwen2ForCausalLM.get_input_embeddings() ``` ```python nemo_automodel.components.models.qwen2.model.Qwen2ForCausalLM.get_output_embeddings() ``` ```python nemo_automodel.components.models.qwen2.model.Qwen2ForCausalLM.set_input_embeddings( value ) ``` ```python nemo_automodel.components.models.qwen2.model.Qwen2ForCausalLM.set_output_embeddings( new_embeddings ) ``` ```python nemo_automodel.components.models.qwen2.model.Qwen2ForCausalLM.tie_weights( _args: object = (), _kwargs: object = {} ) -> None ``` ## Docs - [nemo_automodel.components.models.qwen2.model](https://docs.nvidia.com/nemo/automodel/v0.5/nemo-automodel/nemo_automodel/components/models/qwen2/model.md)