更新时间:2024-10-24 GMT+08:00

配置Workflow参数

功能介绍

参数相关的配置使用Placeholder对象来表示,以占位符的形式实现用户数据运行时配置的能力,当前支持的数据类型包括:int、str、bool、float、Enum、dict、list。开发者可根据场景需要,将节点中的相关字段(如算法超参)通过Placeholder的形式透出,支持设置默认值,供用户修改配置使用。

属性总览(Placeholder)

属性

描述

是否必填

数据类型

name

参数名称,需要保证全局唯一。

str

placeholder_type

参数类型,与真实数据类型的映射关系如下:

PlaceholderType.INT -> int

PlaceholderType.STR -> str

PlaceholderType.BOOL -> bool

PlaceholderType.FLOAT -> float

PlaceholderType.ENUM -> Enum

PlaceholderType.JSON -> dict

PlaceholderType.LIST -> list

  • 当类型为PlaceholderType.ENUM时,enum_list字段不能为空。
  • 当类型为PlaceholderType.LIST时,placeholder_format字段不能为空,且只能填写str/int/float/bool,用来表示list中的数据类型。

PlaceholderType

default

参数默认值,数据类型需要与placeholder_type一致。

Any

placeholder_format

支持的format格式数据,当前支持obs、flavor、train_flavor、swr、pacific。

str

delay

参数是否运行时输入,默认为“False”,在工作流启动运行前进行配置。设置为“True”,则在使用的相应节点运行时卡点配置。

bool

description

参数描述信息。

str

enum_list

参数枚举值列表,只有当参数类型为PlaceholderType.ENUM时才需要填写。

list

constraint

参数相关的约束配置,当前该字段仅支持训练规格的约束,且用户不感知。

dict

required

参数是否必填标记。

  • 默认required=True。
  • Delay参数不能设required=False。

运行时前端可以不填此参数。

bool

使用案例

  • int类型参数
    from modelarts import workflow as wf
    wf.Placeholder(name="placeholder_int", placeholder_type=wf.PlaceholderType.INT, default=1, description="这是一个int类型的参数")
  • str类型参数
    from modelarts import workflow as wf
    wf.Placeholder(name="placeholder_str", placeholder_type=wf.PlaceholderType.STR, default="default_value", description="这是一个str类型的参数")
  • bool类型参数
    from modelarts import workflow as wf
    wf.Placeholder(name="placeholder_bool", placeholder_type=wf.PlaceholderType.BOOL, default=True, description="这是一个bool类型的参数")
  • float类型参数
    from modelarts import workflow as wf
    wf.Placeholder(name="placeholder_float", placeholder_type=wf.PlaceholderType.FLOAT, default=0.1, description="这是一个float类型的参数")
  • Enum类型参数
    from modelarts import workflow as wf
    wf.Placeholder(name="placeholder_enum", placeholder_type=wf.PlaceholderType.ENUM, default="a", enum_list=["a", "b"], description="这是一个enum类型的参数")
  • dict类型参数
    from modelarts import workflow as wf
    wf.Placeholder(name="placeholder_dict", placeholder_type=wf.PlaceholderType.JSON, default={"key": "value"}, description="这是一个dict类型的参数")
  • list类型参数
    from modelarts import workflow as wf
    wf.Placeholder(name="placeholder_list", placeholder_type=wf.PlaceholderType.LIST, default=[1, 2], placeholder_format="int", description="这是一个list类型的参数,并且value类型为int")