Source code for protomotions.agents.peft.prior_amp_config

# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

"""Configuration for discrete-prior PEFT with AMP style rewards."""

from dataclasses import dataclass, field
from typing import Dict, TYPE_CHECKING

if TYPE_CHECKING:
    from protomotions.envs.mdp_component import MdpComponent

from protomotions.agents.amp.config import AMPParametersConfig, DiscriminatorConfig
from protomotions.agents.common.config import ModuleContainerConfig
from protomotions.agents.base_agent.config import OptimizerConfig
from protomotions.agents.peft.prior_config import (
    DiscretePriorPEFTRLFTAgentConfig,
    DiscretePriorPEFTRLFTModelConfig,
)


[docs] @dataclass class DiscretePriorPEFTRLFTAMPModelConfig(DiscretePriorPEFTRLFTModelConfig): """Discrete-prior PEFT RLFT model plus AMP discriminator modules.""" _target_: str = ( "protomotions.agents.peft.prior_amp_model." "DiscretePriorPEFTRLFTAMPModel" ) discriminator: DiscriminatorConfig = field(default_factory=DiscriminatorConfig) discriminator_optimizer: OptimizerConfig = field( default_factory=lambda: OptimizerConfig(lr=1e-4), ) disc_critic: ModuleContainerConfig = field(default_factory=ModuleContainerConfig) disc_critic_optimizer: OptimizerConfig = field( default_factory=lambda: OptimizerConfig(lr=1e-4), )
[docs] @dataclass class DiscretePriorPEFTRLFTAMPAgentConfig(DiscretePriorPEFTRLFTAgentConfig): """Discrete-prior PEFT RLFT agent augmented with AMP rewards.""" _target_: str = ( "protomotions.agents.peft.prior_amp_agent." "DiscretePriorPEFTRLFTAMPAgent" ) model: DiscretePriorPEFTRLFTAMPModelConfig = field( default_factory=DiscretePriorPEFTRLFTAMPModelConfig ) amp_parameters: AMPParametersConfig = field(default_factory=AMPParametersConfig) reference_obs_components: Dict[str, "MdpComponent"] = field(default_factory=dict)