> 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/ernie4_5/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.ernie4_5 ## Submodules * **[`nemo_automodel.components.models.ernie4_5.model`](/nemo-automodel/nemo_automodel/components/models/ernie4_5/model)** * **[`nemo_automodel.components.models.ernie4_5.rope_utils`](/nemo-automodel/nemo_automodel/components/models/ernie4_5/rope_utils)** * **[`nemo_automodel.components.models.ernie4_5.state_dict_adapter`](/nemo-automodel/nemo_automodel/components/models/ernie4_5/state_dict_adapter)** ## Package Contents ### Classes | Name | Description | | ----------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | | [`Ernie4_5ForCausalLM`](#nemo_automodel-components-models-ernie4_5-model-Ernie4_5ForCausalLM) | Dense ERNIE 4.5 causal language model. | | [`Ernie4_5_MoeForCausalLM`](#nemo_automodel-components-models-ernie4_5-model-Ernie4_5_MoeForCausalLM) | ERNIE 4.5 MoE causal language model with AutoModel EP support. | ### API ```python class nemo_automodel.components.models.ernie4_5.model.Ernie4_5ForCausalLM( config: transformers.models.ernie4_5.configuration_ernie4_5.Ernie4_5Config, backend: nemo_automodel.components.models.common.BackendConfig | None = None, kwargs = {} ) ``` **Bases:** [HFCheckpointingMixin](/nemo-automodel/nemo_automodel/components/models/common/hf_checkpointing_mixin#nemo_automodel-components-models-common-hf_checkpointing_mixin-HFCheckpointingMixin), `Module` Dense ERNIE 4.5 causal language model. **`_nemo_tied_weights_keys`** `= {'lm_head.weight': 'model.embed_tokens.weight'}` --- **`_pp_plan`** `= {'lm_head': (['hidden_states'], ['logits'])}` --- **`_tp_plan`** `= {'lm_head': 'colwise_rep'}` --- **`backend`** `= backend or BackendConfig()` --- **`lm_head`** --- **`model`** `= Ernie4_5Model(config, self.backend)` --- **`state_dict_adapter`** `= Ernie4_5StateDictAdapter(config)` --- **`tie_word_embeddings_support`** `TieSupport = TieSupport.TIED_ONLY` --- **`vocab_size`** `= config.vocab_size` --- ```python nemo_automodel.components.models.ernie4_5.model.Ernie4_5ForCausalLM.forward( input_ids: torch.Tensor, position_ids: torch.Tensor | None = None, attention_mask: torch.Tensor | None = None, padding_mask: torch.Tensor | None = None, logits_to_keep: typing.Union[int, torch.Tensor] = 0, output_hidden_states: bool | None = None, attn_kwargs: typing.Any = {} ) -> transformers.modeling_outputs.CausalLMOutputWithPast ``` ```python nemo_automodel.components.models.ernie4_5.model.Ernie4_5ForCausalLM.from_config( config: transformers.models.ernie4_5.configuration_ernie4_5.Ernie4_5Config, backend: nemo_automodel.components.models.common.BackendConfig | None = None, kwargs = {} ) ``` classmethod ```python nemo_automodel.components.models.ernie4_5.model.Ernie4_5ForCausalLM.from_pretrained( pretrained_model_name_or_path: str, model_args = (), kwargs = {} ) ``` classmethod ```python nemo_automodel.components.models.ernie4_5.model.Ernie4_5ForCausalLM.get_input_embeddings() ``` ```python nemo_automodel.components.models.ernie4_5.model.Ernie4_5ForCausalLM.get_output_embeddings() ``` ```python nemo_automodel.components.models.ernie4_5.model.Ernie4_5ForCausalLM.set_input_embeddings( value ) ``` ```python nemo_automodel.components.models.ernie4_5.model.Ernie4_5ForCausalLM.set_output_embeddings( new_embeddings ) ``` ```python nemo_automodel.components.models.ernie4_5.model.Ernie4_5ForCausalLM.tie_weights() ``` ```python class nemo_automodel.components.models.ernie4_5.model.Ernie4_5_MoeForCausalLM( config: transformers.models.ernie4_5_moe.configuration_ernie4_5_moe.Ernie4_5_MoeConfig, moe_config: nemo_automodel.components.moe.config.MoEConfig | None = None, backend: nemo_automodel.components.models.common.BackendConfig | None = None, kwargs = {} ) ``` **Bases:** [HFCheckpointingMixin](/nemo-automodel/nemo_automodel/components/models/common/hf_checkpointing_mixin#nemo_automodel-components-models-common-hf_checkpointing_mixin-HFCheckpointingMixin), `Module`, [MoEFSDPSyncMixin](/nemo-automodel/nemo_automodel/components/moe/fsdp_mixin#nemo_automodel-components-moe-fsdp_mixin-MoEFSDPSyncMixin) ERNIE 4.5 MoE causal language model with AutoModel EP support. **`_keep_in_fp32_modules`** `= ['rotary_emb']` --- **`_keep_in_fp32_modules_strict`** --- **`_nemo_tied_weights_keys`** `= {'lm_head.weight': 'model.embed_tokens.weight'}` --- **`_pp_plan`** `= {'lm_head': (['hidden_states'], ['logits'])}` --- **`_tp_plan`** `= {'lm_head': 'colwise_rep'}` --- **`backend`** `= backend or BackendConfig()` --- **`lm_head`** --- **`model`** --- **`state_dict_adapter`** --- **`tie_word_embeddings_support`** `TieSupport = TieSupport.TIED_ONLY` --- **`vocab_size`** `= config.vocab_size` --- ```python nemo_automodel.components.models.ernie4_5.model.Ernie4_5_MoeForCausalLM.forward( input_ids: torch.Tensor, position_ids: torch.Tensor | None = None, attention_mask: torch.Tensor | None = None, padding_mask: torch.Tensor | None = None, logits_to_keep: typing.Union[int, torch.Tensor] = 0, output_hidden_states: bool | None = None, attn_kwargs: typing.Any = {} ) -> transformers.modeling_outputs.CausalLMOutputWithPast ``` ```python nemo_automodel.components.models.ernie4_5.model.Ernie4_5_MoeForCausalLM.from_config( config: transformers.models.ernie4_5_moe.configuration_ernie4_5_moe.Ernie4_5_MoeConfig, moe_config: nemo_automodel.components.moe.config.MoEConfig | None = None, backend: nemo_automodel.components.models.common.BackendConfig | None = None, kwargs = {} ) ``` classmethod ```python nemo_automodel.components.models.ernie4_5.model.Ernie4_5_MoeForCausalLM.from_pretrained( pretrained_model_name_or_path: str, model_args = (), kwargs = {} ) ``` classmethod ```python nemo_automodel.components.models.ernie4_5.model.Ernie4_5_MoeForCausalLM.get_capabilities( config ) -> nemo_automodel._transformers.model_capabilities.ModelCapabilities ``` classmethod Return parallelism capabilities for a specific ERNIE-4.5 config. ERNIE-4.5 ships in two flavors that share this class file but exercise different code paths: 1. `baidu/ERNIE-4.5-21B-A3B-PT` -- MoE variant (this NeMo custom class). `moe_num_experts > 0` in the HF config. Demonstrated by examples/llm\_finetune/ernie4\_5/ernie4\_5\_21b\_a3b\_hellaswag.yaml (ep\_size=8). 2. `baidu/ERNIE-4.5-0.3B-PT` -- dense variant. No expert config. Demonstrated by examples/llm\_finetune/ernie4\_5/ernie4\_5\_0p3b\_hellaswag.yaml (tp/cp/pp/ep all 1). ```python nemo_automodel.components.models.ernie4_5.model.Ernie4_5_MoeForCausalLM.get_input_embeddings() ``` ```python nemo_automodel.components.models.ernie4_5.model.Ernie4_5_MoeForCausalLM.get_output_embeddings() ``` ```python nemo_automodel.components.models.ernie4_5.model.Ernie4_5_MoeForCausalLM.set_input_embeddings( value ) ``` ```python nemo_automodel.components.models.ernie4_5.model.Ernie4_5_MoeForCausalLM.set_output_embeddings( new_embeddings ) ``` ```python nemo_automodel.components.models.ernie4_5.model.Ernie4_5_MoeForCausalLM.tie_weights() ``` ## Docs - [nemo_automodel.components.models.ernie4_5.model](https://docs.nvidia.com/nemo/automodel/v0.5/nemo-automodel/nemo_automodel/components/models/ernie4_5/model.md) - [nemo_automodel.components.models.ernie4_5.rope_utils](https://docs.nvidia.com/nemo/automodel/v0.5/nemo-automodel/nemo_automodel/components/models/ernie4_5/rope_utils.md) - [nemo_automodel.components.models.ernie4_5.state_dict_adapter](https://docs.nvidia.com/nemo/automodel/v0.5/nemo-automodel/nemo_automodel/components/models/ernie4_5/state_dict_adapter.md)