数据结构
JobSpec
创建训练任务配置,被如下接口引用:创建训练任务
参数名称 |
类型 |
必选 |
说明 |
image |
String |
是 |
镜像地址,需要包含tag |
imageConfig |
ImageConfig |
否 |
镜像仓库访问配置,仅私有镜像时需要配置 |
replicas |
Integer |
是 |
worker副本数 |
resources |
List<Resource> |
否 |
配置资源配额 |
envs |
List<Env> |
否 |
worker环境变量,默认注入:worker环境变量,默认注入: 1. AIHC_JOB_NAME ,值为name字段的值 2. NCCL_IB_DISABLE,开启rdma后默认注入,值为0 3. NCCL_DEBUG,nccl日志的级别,值为INFO |
enableRDMA |
Boolean |
否 |
是否开启RDMA,默认false,开启后将自动添加NCCL_IB_DISABLE=0的环境变量,添加rdma/hca资源,并配置10GB共享内存到训练节点的容器中 |
hostNetwork |
Boolean |
否 |
是否使用宿主机网络,开启后作业worker将使用宿主机网络,开启RDMA时默认为true |
TensorboardConfig
参数名称 |
类型 |
必选 |
说明 |
enable |
Boolean |
否 |
开启Tensorboard |
logPath |
String |
否 |
训练任务Tensorboard日志 |
AlertConfig
参数名称 |
类型 |
必选 |
说明 |
alertIds |
String |
否 |
|
instanceId |
String |
否 |
|
alertName |
String |
否 |
|
alertItems |
String |
否 |
|
for |
String |
否 |
|
description |
String |
否 |
|
notifyRuleId |
String |
否 |
|
severity |
String |
否 |
|
ImageConfig
任务镜像配置,被如下接口引用:创建训练任务
参数名称 |
类型 |
必选 |
说明 |
username |
String |
是 |
私有镜像仓库用户名 |
password |
String |
是 |
私有镜像仓库密码 |
Resource
任务资源配置,被如下接口引用:创建训练任务
参数名称 |
类型 |
必选 |
说明 |
name |
String |
是 |
资源名称示例,支持设置GPU/CPU/内存以及共享内存资源,枚举值: baidu.com/a800_80g_cgpu:gpu型号,需要根据型号按照百度的资源描述符填入,上述示例为A800的型号 cpu:cpu配额,单位核 memory:内存配额,单位GB sharedMemory:共享内存配额,单位GB |
quantity |
String |
是 |
资源量 |
Env
环境变量信息,被如下接口引用:创建训练任务、查询训练任务详情
参数名称 |
类型 |
必选 |
说明 |
name |
String |
否 |
标签名 |
value |
String |
否 |
标签值 |
Label
训练任务标签信息,被如下接口引用:创建训练任务
参数名称 |
类型 |
必选 |
说明 |
key |
String |
是 |
标签名 |
value |
String |
是 |
标签值 |
JobItem
单个训练任务详情信息,被如下接口引用:查询训练任务详情、查询训练任务列表
参数名称 |
类型 |
说明 |
jobid |
String |
任务id |
userId |
String |
用户id |
name |
String |
任务名称 |
status |
String |
任务状态,包括: Created:任务已创建,等待调度阶段,(允许修改优先级),所有实例状态为 排队中 Scheduled: Pod调度完成,实例的状态均为启动中或者包含部分运行中的状态 Running: 实例的状态均为运行中的状态 Stopping: 用户操作停止任务,正在停止任务,正在将实例置为 失败 ManualTermination: 用户任务已经停止,实例状态为 失败 Restarting: 任务容错或者被抢占,任务 Condition 状态设置为Restarting,且所有实例状态为 排队中 Succeeded: 所有实例的状态为 成功 Failed: 任务失败推出,全部实例状态为 失败 |
jobType |
String |
任务类型,如:pytorchjob、mpijob等 |
resourcePoolId |
String |
任务所在资源池Id |
queue |
String |
任务所在资源池队列 |
Job |
JobSpec |
任务配置 |
createdAt |
String |
任务创建时间 |
finishedAt |
String |
任务结束时间 |
datasources |
List<DataSource> |
任务的数据源配置 |
labels |
List<Label> |
任务标签 |
priority |
String |
任务优先级 |
enableBccl |
Boolean |
任务是否开启了BCCL注入 |
enableBcclStatus |
String |
BCCL注入状态,包括: success: 注入成功 failed: 注入失败 unknown: 还未执行注入 |
enableBcclErrorReason |
String |
BCCL注入失败原因 |
enableFaultTolerance |
Boolean |
是否开启容错 |
faultToleranceArgs |
String |
容错配置参数 |
pods |
List<Pod> |
任务Pod列表,在详情接口needDetail参数为False和查询训练任务列表接口中不返回该字段 |
historyPods |
List<Pod> |
历史Pod列表,在详情接口needDetail参数为False和查询训练任务列表接口中不返回该字段 |
DataSource
训练任务数据源配置,被如下接口引用:创建训练任务
参数名称 |
类型 |
必选 |
说明 |
type |
String |
是 |
数据源类型,枚举值:pfs/hostPath/dataset; |
name |
String |
是 |
数据源名称,如果type类型为pfs时,此处必须填写pfs实例id |
sourcePath |
String |
是 |
源路径: type类型为pfs时,表示pfs存储中的路径,默认为/ type类型为hostpath时,表示宿主机路径 |
mountPath |
String |
是 |
容器内挂载路径 |
options |
Option |
否 |
数据源参数 |
Option
训练任务详情-数据卷挂载选项信息,被如下接口引用:查询训练任务详情、查询训练任务列表
参数名称 |
类型 |
说明 |
readOnly |
String |
是否以只读模式挂载到容器中 |
Pod
Pod详情信息,被如下接口引用:查询训练任务详情
参数名称 |
类型 |
说明 |
PodIP |
String |
Pod IP |
nodeName |
String |
任务pod所在节点的名称 |
creationAt |
String |
Pod创建时间 |
uid |
String |
Pod的id |
name |
String |
任务Pod名称 |
status |
String |
Pod状态:副本类型,任务Pod的副本类型,pytorch中包含master和worker两种副本类型 Pending: 排队中, Pod已经被创建,但是还没有被度到节点上 Starting: 启动中,已调度,镜像拉取、存储挂载、创建容器等过程。 Running: 运行中,实例进入running状态,执行训练代码 Failed: 失败,pod 失败退出,phase failed Succeed: 成功,pod 成功退出, phase: Succeeded Unknown: 异常, pod状态不可知 |
replicaType |
String |
任务Pod类型 |
restartCount |
Number |
任务Pod重启次数 |
envs |
List<Env> |
Pod环境变量 |
finishedAt |
String |
Pod完成时间 |
reason |
String |
Pod失败原因 |
Event
任务事件信息,被如下接口引用:查询训练任务事件
参数说明 |
类型 |
说明 |
reason |
String |
原因 |
message |
String |
详细信息 |
firstTimestamp |
String |
首次出现时间 |
lastTimestamp |
String |
最后出现时间 |
count |
Number |
出现次数 |
type |
Number |
事件类型 |
Metrics
查询任务监控的返回信息,被如下接口引用:查询训练任务监控
参数名称 |
类型 |
说明 |
PodName |
String |
任务Pod名称 |
metrics |
List<Metric> |
监控数据,当前支持查询监控数据的指标类型,取值如下: GpuUsage:GPU 使用率; GpuMemoryUsage:GPU Memory 使用率; CpuUsage:CPU 使用率; MemoryUsage:Memory 使用率; DiskReadRate:磁盘读取速率; DiskWriteRate:磁盘写入速率。 |
Metric
查询任务Pod的监控数据,被如下接口引用:查询训练任务监控
参数名称 |
类型 |
说明 |
time |
String |
时间戳(Unix Timestamp),单位为毫秒 |
value |
Number |
监控数据的值。 |
ServiceConf
参数名称 |
参数类型 |
是否必须 |
参数位置 |
参数说明 |
name |
String |
是 |
Body参数 |
服务名称,需满足正则表达式^[a-z][a-z0-9-]*[a-z0-9]$,长度不高于50 |
acceleratorType |
String |
是 |
Body参数 |
加速芯片类型 |
workloadType |
String |
是 |
Body参数 |
fed 或 "",单机用"",分布式推理使用fed |
instanceCount |
Integer |
是 |
Body参数 |
部署实例数,取值>=0 |
resourcePool |
ResourcePoolConf |
是 |
Body参数 |
资源池描述 |
storage |
StorageConf |
否 |
Body参数 |
存储卷、共享内存配置 |
containers |
Array of ContainerConf |
是 |
Body参数 |
服务容器信息,最少需要1个,最多10个,见containers结构 |
access |
AccessConf |
否 |
Body参数 |
服务访问配置信息 |
log |
LogConf |
否 |
Body参数 |
日志配置 |
deploy |
DeployConf |
否 |
Body参数 |
部署配置,默认为最大超量和最大不可用均为25% |
misc |
Misc |
否 |
Body参数 |
实例label、annotations配置 |
ContainerConf
创建自定义服务的配置,被如下接口引用:创建服务
参数名 |
参数类型 |
是否必须 |
参数说明 |
name |
String |
是 |
容器名称,需满足正则表达式^a-z0-9?$,长度不高于63 |
cpus |
Integer |
是 |
cpu核数 > 0 |
memory |
Integer |
是 |
内存大小 > 0 ,单位GiB |
acceleratorCount |
Integer |
是 |
加速卡数量 >= 0 |
command |
List |
否 |
启动命令 |
runArgs |
List |
否 |
启动参数 |
ports |
List |
否 |
[]int结构json串,允许容器选择不暴露或暴露多个端口 |
envs |
Map<String, String> |
否 |
map[string]string结构 |
image |
ImageConf |
是 |
镜像信息,见请求示例 |
volumeMounts |
List |
否 |
存储挂载,见请求示例 |
readinessProbe |
ProbeConf |
否 |
就绪探针信息 |
startupsProbe |
ProbeConf |
否 |
启动探针信息 |
livenessProbe |
ProbeConf |
否 |
存活探针信息 |
PortConf
创建自定义服务的配置,被如下接口引用
参数名 |
参数类型 |
是否必须 |
参数说明 |
name |
String |
是 |
port名字,仅可选HTTP、GRPC、Metrics、Other,没有区别,名字表明端口用途,注:如果有Metrics端口则后端默认开启Prometheus服务 |
port |
Integer |
是 |
端口号 |
ImageConf
创建自定义服务的配置,被如下接口引用
参数名 |
参数类型 |
是否必须 |
参数说明 |
imageType |
Integer |
是 |
镜像类型 0:预置镜像 1:ccr 2:其他 |
imageUrl |
String |
是 |
镜像 |
username |
String |
否 |
镜像拉取用户名 |
password |
String |
否 |
镜像拉取密码 |
VolumnMountConf
参数名 |
参数类型 |
是否必须 |
参数说明 |
volumnName |
String |
是 |
卷名 |
mountPath |
String |
是 |
挂载到容器的地址 |
readOnly |
Boolean |
否 |
默认为false |
ProbeConf
参数名 |
参数类型 |
是否必须 |
参数说明 |
initialDelaySeconds |
Integer |
是 |
初始化检查延时,大于等于0 |
timeoutSeconds |
Integer |
是 |
检查超时时长,大于等于1 |
periodSeconds |
Integer |
是 |
轮询检查时间间隔,大于等于1 |
successThreshold |
Integer |
是 |
连接成功次数阈值,超过该值可被认为成功,大于等于1,livenessProbe和startupProbe必须是1 |
failureThreshold |
Integer |
是 |
连接失败次数阈值,超过该值可被认为失败,大于等于1 |
handler |
ProbeHandlerConf |
是 |
健康检查方法 |
ProbeHandlerConf
参数名 |
参数类型 |
是否必须 |
参数说明 |
exec |
ExecAction |
否 |
通过在容器内执行命令判断,exec httpGet tcpSocketAction有且仅能只有一个 |
httpGet |
HTTPGetAction |
否 |
通过向容器发送HTTP请求判断,exec httpGet tcpSocketAction有且仅能只有一个 |
tcpSocketAction |
TCPSocketAction |
否 |
通过向容器发起TCP连接判断,exec httpGet tcpSocketAction有且仅能只有一个 |
ExecAction
参数名 |
参数类型 |
是否必须 |
参数说明 |
command |
List |
是 |
在容器中执行指定命令,如果执行成功后退出码为0则健康检查成功 |
HTTPGetAction
参数名 |
参数类型 |
是否必须 |
参数说明 |
path |
String |
是 |
探针的调用路径 |
port |
Integer |
是 |
探针的调用端口号 |
TCPSocketAction
参数名 |
参数类型 |
是否必须 |
参数说明 |
port |
Integer |
是 |
探针的调用端口号 |
AccessConf
参数名 |
参数类型 |
是否必须 |
参数说明 |
publicAccess |
Boolean |
否 |
是否开启公网访问,不填默认false |
eip |
String |
否 |
开启公网时且networkType为空时必填,选用的EIP IP地址, |
aiGateway |
AiGatewayConf |
否 |
网关配置,netType是aiGateway时必填 |
networkType |
String |
否 |
网络类型: 空 或者 aiGateway, |
LogConf
参数名 |
参数类型 |
是否必须 |
参数说明 |
persistent |
Boolean |
否 |
是否开启日志持久化,开启后将持久化容器标准输出日志 |
DeployConf
参数名 |
参数类型 |
是否必须 |
参数说明 |
canaryStrategy |
CanaryStrategyConf |
否 |
更新策略,默认maxSurge、maxUnavailable为25% |
schedule |
ScheduleConf |
否 |
优先级配置,可选:low, normal,high,"" ,默认为normal |
CanaryStrategyConf
参数名 |
参数类型 |
是否必须 |
参数说明 |
maxSurge |
Integer |
否 |
滚动更新过程中超出预期的实例数量占预期实例数的百分比,默认为0,和maxUnavailable不能同时为0 |
maxUnavailable |
Integer |
否 |
滚动更新过程中不可用实例的数量占预期实例数的百分比,默认为0,和maxSurge不能同时为0 |
Misc
参数名 |
参数类型 |
是否必须 |
参数说明 |
podLabels |
Map<String, String> |
否 |
kubernetes pod labels |
podAnnotations |
Map<String, String> |
否 |
kubernetes pod Annotations |
gracePeriodSec |
Integer |
否 |
优雅退出时间 |
fedPodsPerIns |
Integer |
否 |
分布式部署模式(workloadType="fed")下,pod组的实例数,必须大于1 |
enableRDMA |
Boolean |
否 |
是否启用rdma |
ResourcePoolConf
参数名 |
参数类型 |
是否必须 |
参数说明 |
resourcePoolId |
String |
是 |
资源池ID,对于托管资源池固定值:aihc-serverless |
queueName |
String |
是 |
队列名 |
resourcePoolType |
String |
是 |
资源池类型,取值为“”、serverless、public,空字符串为自运维资源池,serverless是全托管资源池,public预留字段暂未使用 |
resourcePoolName |
String |
是 |
资源池名称,托管资源池不填 |
StorageConf
参数名 |
参数类型 |
是否必须 |
参数说明 |
shmSize |
Integer |
否 |
共享内存大小,单位GiB,默认为0 |
volumns |
List<VolumnConf> |
否 |
存储卷配置 |
VolumnConf
参数名 |
参数类型 |
是否必须 |
参数说明 |
volumeType |
String |
是 |
存储卷的类型,可选"pfs"、"hostpath"、"emptydir" |
volumnName |
String |
是 |
存储卷的名字,满足正则表达式^[a-z][a-z0-9-]*[a-z0-9]$,长度不高于50。 升级服务时,如果该卷配置发生变化,卷名建议重新生成且不与之前重复 |
pfs |
PFSConfig |
否 |
存储卷类型为pfs时填写 |
PFSConfig
参数名 |
参数类型 |
是否必须 |
参数说明 |
sourcePath |
String |
是 |
文件在pfs中的路径 |
InstanceId |
String |
是 |
pfs的实例ID |
ServiceBriefInfo
参数名 |
参数类型 |
参数说明 |
id |
String |
服务ID |
name |
String |
服务名称 |
resourcePoolId |
String |
资源池ID |
resourcePoolName |
String |
资源池名称 |
queueName |
String |
队列名 |
region |
String |
资源池所在地域 |
publicAccess |
Boolean |
公网访问开关 |
creator |
String |
服务创建人 |
networkType |
String |
网络类型 |
createdAt |
Integer |
创建时间 |
updatedAt |
Integer |
更新时间 |
resourcePoolType |
String |
资源池类型 |
workloadType |
String |
负载类型,fed 或 "",单机用"",分布式推理使用fed |
resourceSpec |
ResourceSpec |
资源详情 |
ServiceBriefStat
参数名 |
参数类型 |
参数说明 |
status |
Integer |
服务状态,1:部署中 2:运行中 3:未运行 4:异常 |
availableIns |
Integer |
可用实例数 |
totalIns |
Integer |
总实例数 |
reason |
String |
异常信息(如果有) |
ServiceStatus
参数名 |
参数类型 |
参数说明 |
accessIPs |
AccessIPConf |
访问IP |
accessPorts |
List |
访问端口 |
blbShortId |
String |
BLB实例ID |
briefStat |
ServiceBriefStat |
服务简要信息 |
AccessIPConf
参数名 |
参数类型 |
参数说明 |
internal |
String |
内网ip |
external |
String |
外网ip |
AccessPortConf
参数名 |
参数类型 |
参数说明 |
name |
String |
系统生成的端口号名称 |
containerPort |
Integer |
容器暴露的端口号 |
servicePort |
Integer |
对应的访问端口号 |
ServiceChangeRecord
参数名 |
参数类型 |
参数说明 |
changeId |
String |
变更ID |
prev |
String |
前一条变更记录 |
changeType |
Integer |
变更类型,1:创建 2:更新 3:扩缩容 4:流量接入变更 |
description |
String |
变更描述 |
creator |
String |
操作人 |
createdAt |
Integer |
变更创建时间 |
InsInfo
参数名 |
参数类型 |
参数说明 |
instanceId |
String |
实例ID |
status |
InsStauts |
实例状态 |
containers |
ContainerInfo |
容器信息 |
InsStauts
参数名 |
参数类型 |
参数说明 |
blocked |
Boolean |
是否封锁流量 |
status |
String |
实例状态 Creating:该实例正在创建中,包括调度、运行中但未就绪等情况 Running:该实例所有容器均就绪 Exception:实例处在异常状态 Terminating:该实例正在终止 |
createdAt |
Integer |
实例创建时间 |
availableContainers |
Integer |
就绪的容器数量 |
totalContainers |
Integer |
总容器数 |
podIP |
String |
实例IP |
nodeIP |
String |
实例所在节点IP |
reason |
String |
pod级别的异常信息 |
ContainerInfo
参数名 |
参数类型 |
参数说明 |
containerId |
String |
系统生成的容器唯一ID,非容器名 |
container |
ContainerConf |
容器信息 |
status |
ContainerStatus |
容器状态 |
ContainerStatus
参数名 |
参数类型 |
参数说明 |
containerStatus |
String |
容器状态信息,包括Waiting |
createdAt |
Integer |
状态开始时间,Running状态和Terminated状态返回 |
reason |
String |
状态原因,容器 Waiting 或 Terminated 时返回 |
ScheduleConf
参数名 |
参数类型 |
是否必须 |
参数说明 |
priority |
String |
是 |
优先级配置,包括high normal low |
InsGroupStatus
参数名 |
参数类型 |
参数说明 |
id |
String |
实例组ID |
masters |
List |
master 实例列表 |
workers |
List |
worker 实例列表 |
status |
String |
实例组状态 |
blocked |
Boolean |
流量禁用状态 |
createdAt |
Integer |
创建时间 |
availablePods |
Integer |
可用实例数 |
totalPods |
Integer |
实例总数 |
ResourceSpec
参数名 |
参数类型 |
参数说明 |
cpus |
Integer |
cpu数 |
memory |
Integer |
内存 |
acceleratorCount |
Integer |
卡数 |
acceleratorType |
String |
加速芯片类型 |
AiGatewayConf
参数名 |
参数类型 |
是否必须 |
参数说明 |
enableAuth |
Boolean |
是 |
是否开启鉴权 |
Dataset
参数名 |
参数类型 |
是否必须 |
参数说明 |
id |
String |
是 |
数据集ID。新建数据集时,无需指定ID。 |
name |
String |
是 |
数据集名称 |
storageType |
String |
是 |
存储类型PFS:并行存储PFSBOS:对象存储BOS |
storageInstance |
String |
是 |
存储实例 |
importFormat |
String |
是 |
导入格式FILE:文件FOLDER:文件夹 |
description |
String |
否 |
描述 |
owner |
String |
是 |
所有者 |
ownerName |
String |
是 |
所有者名称 |
visibilityScope |
String |
是 |
可见范围ALL_PEOPLE:所有人可见ONLY_OWNER:仅所有者可读写USER_GROUP:指定范围可用 |
visibilityUser |
List |
否 |
用户权限列表[{"id": "xxx", "name": "xxx", "permission": "r"}, {"id": "yyy", "name": "xxx", "permission": "rw"}]仅对管理员或Owner返回此属性 |
visibilityGroup |
List |
否 |
用户组权限列表[{"id": "xxx", "name": "xxx", "permission": "r"}, {"id": "yyy", "name": "xxx", "permission": "rw"}]仅对管理员或Owner返回此属性 |
permission |
String |
是 |
当前用户拥有的读写权限:r:只读rw:读写 |
latestVersionId |
String |
否 |
最新版本ID |
latestVersion |
String |
否 |
最新版本号 |
createdAt |
String |
是 |
创建时间 |
updatedAt |
String |
是 |
更新时间 |
DatasetVersionEntry
参数名 |
参数类型 |
是否必须 |
参数说明 |
id |
String |
否 |
数据集版本ID。新建版本时,无需指定ID。 |
version |
String |
否 |
版本号。新建版本时,无需指定版本号。 |
description |
String |
否 |
版本描述 |
storagePath |
String |
是 |
存储路径 |
mountPath |
String |
是 |
默认挂载路径 |
createUser |
String |
否 |
创建用户 |
PermissionEntry
参数名 |
参数类型 |
是否必须 |
参数说明 |
id |
String |
是 |
用户或用户组ID |
name |
String |
是 |
用户或用户组名 |
permission |
String |
是 |
权限,枚举值:r:只读rw:读写 |
![]()