ai2_kit.workflow.cll_mlp module#

class ai2_kit.workflow.cll_mlp.CllWorkflowConfig(*, executors: Dict[str, CllWorkflowExecutorConfig], artifacts: Mapping[str, Artifact], workflow: Any = None)[source]#

Bases: BaseModel

artifacts: Mapping[str, Artifact]#
executors: Dict[str, CllWorkflowExecutorConfig]#
workflow: Any#
class ai2_kit.workflow.cll_mlp.CllWorkflowExecutorConfig(*, ssh: Optional[SshConfig] = None, queue_system: QueueSystemConfig, work_dir: str, python_cmd: str = 'python', context: Context)[source]#

Bases: BaseExecutorConfig

class Context(*, train: Train, explore: Explore, label: Label)[source]#

Bases: BaseModel

class Explore(*, lammps: Optional[CllLammpsContextConfig] = None, lasp: Optional[CllLaspContextConfig] = None)[source]#

Bases: BaseModel

lammps: Optional[CllLammpsContextConfig]#
lasp: Optional[CllLaspContextConfig]#
class Label(*, cp2k: Optional[CllCp2kContextConfig] = None, vasp: Optional[CllVaspContextConfig] = None)[source]#

Bases: BaseModel

cp2k: Optional[CllCp2kContextConfig]#
vasp: Optional[CllVaspContextConfig]#
class Train(*, deepmd: CllDeepmdContextConfig)[source]#

Bases: BaseModel

deepmd: CllDeepmdContextConfig#
explore: Explore#
label: Label#
train: Train#
context: Context#
class ai2_kit.workflow.cll_mlp.SharedVars(dp_modifier: Optional[dict] = None, dp_sel_type: Optional[List[int]] = None)[source]#

Bases: object

dp_modifier: Optional[dict] = None#
dp_sel_type: Optional[List[int]] = None#
class ai2_kit.workflow.cll_mlp.WorkflowConfig(*, general: General, train: Train, explore: Explore, select: Select, label: Label, update: Update)[source]#

Bases: BaseModel

class Explore(*, lammps: Optional[CllLammpsInputConfig] = None, lasp: Optional[CllLaspInputConfig] = None)[source]#

Bases: BaseModel

lammps: Optional[CllLammpsInputConfig]#
lasp: Optional[CllLaspInputConfig]#
class General(*, type_map: List[str], mass_map: List[float], sel_type: Optional[List[str]] = None, max_iters: int = 1, mode: Literal['default', 'dpff', 'fep-redox', 'fep-pka'] = 'default', update_explore_systems: bool = False)[source]#

Bases: BaseModel

mass_map: List[float]#
max_iters: int#
mode: Literal['default', 'dpff', 'fep-redox', 'fep-pka']#
sel_type: Optional[List[str]]#
type_map: List[str]#
update_explore_systems: bool#
class Label(*, cp2k: Optional[CllCp2kInputConfig] = None, vasp: Optional[CllVaspInputConfig] = None)[source]#

Bases: BaseModel

cp2k: Optional[CllCp2kInputConfig]#
vasp: Optional[CllVaspInputConfig]#
class Select(*, model_devi: CllModelDeviSelectorInputConfig)[source]#

Bases: BaseModel

model_devi: CllModelDeviSelectorInputConfig#
class Train(*, deepmd: CllDeepmdInputConfig)[source]#

Bases: BaseModel

deepmd: CllDeepmdInputConfig#
class Update(*, walkthrough: CllWalkthroughUpdaterInputConfig)[source]#

Bases: BaseModel

walkthrough: CllWalkthroughUpdaterInputConfig#
explore: Explore#
general: General#
label: Label#
select: Select#
train: Train#
update: Update#
async ai2_kit.workflow.cll_mlp.cll_mlp_training_workflow(config: CllWorkflowConfig, resource_manager: ResourceManager, executor: str, path_prefix: str)[source]#
ai2_kit.workflow.cll_mlp.precondition(workflow_cfg: WorkflowConfig) SharedVars[source]#

precondition of workflow config to raise error early, and extra variables that may shared by multiple steps

The known shared variables are:

dp_modifier, which include vars sys_charge_map, model_charge_map, ewald_h, ewald_beta sel_type, which is suppose to be used in dplr/dpff mode

ai2_kit.workflow.cll_mlp.run_workflow(*config_files, executor: Optional[str] = None, path_prefix: Optional[str] = None, checkpoint: Optional[str] = None)[source]#

Run Closed-Loop Learning (CLL) workflow to train Machine Learning Potential (MLP) models.

Parameters:
  • config_files – path of config files, should be yaml files, can be multiple, support glob pattern

  • executor – name of executor, should be defined in config executors section

  • path_prefix – path prefix for output

  • checkpoint – checkpoint file