查询精调训练作业详情 - ShowFtJobDetail
功能介绍
查询精调训练作业详情接口用于获取ModelArts平台上指定训练作业的详细信息。
该接口适用于以下场景:当用户需要查看特定训练作业的运行状态和配置信息时,可以通过此接口获取作业详情。使用该接口的前提条件是用户已知训练作业ID,并具有查看作业详情的权限。查询操作完成后,平台将返回包含训练作业的状态、配置、日志等详细信息。若训练作业ID不存在或用户无权限操作,接口将返回相应的错误信息。
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
授权信息
账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权,具体权限要求请参见权限和授权项。
- 如果使用身份策略授权,当前API调用无需身份策略权限。
URI
GET /v2/{project_id}/training-jobs/{training_job_id}/ft-detail
请求参数
无
响应参数
状态码:200
| 参数 | 参数类型 | 描述 |
|---|---|---|
| project_id | String | 项目id。 |
| task_id | String | 训练任务id。 |
| task_name | String | 训练任务名称。 |
| task_desc | String | 训练任务描述信息。 |
| metadata | JobMetadataResponse object | 参数解释:训练作业元信息。 |
| spec | SpecResponse object | 参数解释:训练作业规格参数。 |
| model_asset_id | String | 模型id。 |
| model_type | String | 参数解释: 模型类型,取值为TextGeneration|ImageUnderstanding,依次为:文本生成、图像理解。 取值范围: TextGeneration|ImageUnderstanding |
| model_source | String | 模型来源 |
| train_type | String | 参数解释: 训练类型,支持SFT(全量微调)、PRETRAIN(预训练)、LORA(lora微调)、DPO(dpo强化学习)、RFT(rft强化学习)。 取值范围: SFT(全量微调)、PRETRAIN(预训练)、LORA(lora微调)、DPO(dpo强化学习)、RFT(rft强化学习) 默认取值: SFT |
| checkpoint_config | String | 断点续训相关配置。 |
| task_parameters | String | 训练任参数信息。 |
| create_time | Long | 创建时间。 |
| update_time | Long | 训练任务更新时间,当修改、或者训练任务状态发生变化时进行更新。 |
| train_process | Double | 训练任务进度。 |
| datasets_config | Array of DatasetConfig objects | 该训练任务数据集相关的配置。 |
| status | Status object | 参数解释:训练作业状态信息。 |
| auto_publish_config | String | 自动发布配置信息 |
| asset_code | String | 模型资产名 |
| asset_name | String | 资产名称 |
| asset_desc | String | 模型资产描述信息 |
| asset_series | String | 模型系列 |
| asset_version | String | 资产版本 |
| asset_type | String | 资产类型 |
| asset_source | String | 资产来源 |
| asset_group_id | String | 资产组id |
| sub_asset_type | String | 资产子类型 |
| category | String | 资产类别 |
| api_version | String | 资产API版本 |
| root_asset_id | String | 根资产ID |
| train_cost_time | Long | 训练任务耗时 |
| workspace_id | String | 任务所属工作空间名称 |
| user_id | String | 用户id |
| user_name | String | 用户名称 |
| pool_type | String | 资源池类型 |
| pool_id | String | 资源池ID |
| pool_node_count | String | 使用的资源池实例数 |
| flavor_id | String | 使用的资源池卡数 |
| priority | Integer | 优先级 |
| training_info | String | 训练预估时长 |
| train_output_path | String | 参数解释:训练产物输出路径,如"obs://yyy/test/"。 取值范围:不涉及。 |
| asset_capabilities | Array of strings | 训练模型类型 |
| continue_task | ContinueTask object | 续训任务信息 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| id | String | 参数解释:训练作业ID,创建成功后由ModelArts生成返回,无需填写。 取值范围:不涉及。 |
| name | String | 参数解释:训练作业名称。 取值范围:限制为1-64位只含数字、字母、下划线和中划线的名称。 |
| workspace_id | String | 参数解释:指定作业所处的工作空间。 取值范围:不涉及。 |
| description | String | 参数解释:对训练作业的描述。 取值范围:不涉及。 |
| create_time | Long | 参数解释:训练作业创建时间戳,单位为毫秒,创建成功后由ModelArts生成返回,无需填写。 取值范围:不涉及。 |
| user_name | String | 参数解释:训练作业创建用户的用户名,创建成功后由ModelArts生成返回,无需填写。 取值范围:不涉及。 |
| annotations | Map<String,String> | 参数解释:训练作业高级功能配置,key 为功能开关/配置名,value 一律为字符串(即使是数字或布尔语义,也用字符串表示,如 "true"、"3")。 |
| training_experiment_reference | TrainingExperimentResp object | 参数解释:训练实验参数。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| name | String | 参数解释:实验名称。 取值范围:最大长度128,不支持特殊字符。 |
| id | String | 参数解释:实验ID。 取值范围:不涉及。 |
| serial_number | String | 参数解释:当前训练作业在所属的训练实验中的序号,默认为0。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| resource | Resource object | 参数解释:训练作业资源规格信息。flavor_id和pool_id+[flavor_id]方式二选一。 |
| volumes | Array of JobVolumeResp objects | 参数解释:训练作业挂载卷信息。 |
| log_export_path | LogExportPathResp object | 参数解释:训练作业日志输出信息。 |
| schedule_policy | SchedulePolicyResp object | 参数解释:训练作业调度策略。 |
| custom_metrics | Array of CustomMetrics objects | 参数解释:指标采集配置。 |
| output_model | OutputModelResp object | 参数解释:自定义训练作业产物输出信息。 |
| asset_model | AssetModelResp object | 参数解释:自定义训练作业产物发布成模型的信息。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| policy | String | 参数解释:训练作业资源规格模式。 取值范围: |
| flavor_id | String | 参数解释:训练作业资源规格id,CPU规格专属资源池不支持指定flavor_id。 取值范围:GPU/Ascend规格专属资源池可选取值如下: |
| flavor_name | String | 参数解释:使用flavor_id时,由ModelArts返回的只读规格名称。 取值范围:不涉及。 |
| node_count | Integer | 参数解释:训练作业选择的资源副本数。 取值范围:大于等于1。 |
| pool_id | String | 参数解释:训练作业选择的资源池ID。 取值范围:不涉及。 |
| pool_group_id | String | 参数解释:训练作业选择的资源池联邦ID。 取值范围:不涉及。 |
| flavor_detail | FlavorDetail object | 参数解释:训练作业、算法的规格信息(该字段只有公共资源池存在)。 |
| main_container_allocated_resources | 参数解释:训练作业训练容器实际到手的资源规格。 | |
| main_container_customized_flavor | 参数解释:训练作业自定义规格。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| flavor_type | String | 参数解释:资源规格的类型。 取值范围: |
| billing | BillingInfo object | 参数解释:资源规格计费信息。 |
| flavor_info | FlavorInfo object | 参数解释:资源规格详细信息。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| max_num | Integer | 参数解释:可以选择的最大节点数量(max_num,为1代表不支持分布式)。 取值范围:不涉及。 |
| cpu | Cpu object | 参数解释:cpu规格信息。 |
| gpu | Gpu object | 参数解释:gpu规格信息。 |
| npu | Npu object | 参数解释:Ascend规格信息。 |
| memory | Memory object | 参数解释:内存信息。 |
| disk | Disk object | 参数解释:磁盘信息。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| unit_num | Integer | 参数解释:gpu卡数。 取值范围:不涉及。 |
| product_name | String | 参数解释:产品名。 取值范围:不涉及。 |
| memory | String | 参数解释:内存,单位GB。 取值范围:不涉及。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| unit_num | String | 参数解释:npu卡数。 取值范围:不涉及。 |
| product_name | String | 参数解释:产品名。 取值范围:不涉及。 |
| memory | String | 参数解释:内存。 取值范围:不涉及。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| cpu_arch | String | 参数解释: cpu架构。 取值范围: 不涉及。 |
| cpu_core_num | Float | 参数解释: 核数。 取值范围: 不涉及。 |
| mem_size | Float | 参数解释: 内存信息。 取值范围: 不涉及。 |
| accelerator_num | Float | 参数解释: 加速卡卡数。 取值范围: 不涉及。 |
| accelerator_type | String | 参数解释: 加速卡类型。如:ascend-Snt9b,ascend-snt9c等 取值范围: 不涉及。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| cpu_core_num | Float | 参数解释:cpu核数。 取值范围:大于零。 |
| mem_size | Float | 参数解释:内存大小,单位GB。 取值范围:大于零。 |
| accelerator_num | Float | 参数解释:加速卡卡数。 取值范围:大于等于零。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| nfs_server_path | String | 参数解释:nfs服务端路径,如:“10.10.10.10:/example/path”。 取值范围:不涉及。 |
| local_path | String | 参数解释:挂载到训练容器中的路径,如:“/example/path”。 取值范围:不涉及。 |
| read_only | Boolean | 参数解释:nfs挂载卷在容器中是否只读。 取值范围: |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| obs_url | String | 参数解释:训练作业日志保存的OBS地址,如:“obs://example/path”。 取值范围:不涉及。 |
| host_path | String | 参数解释:训练作业日志保存的宿主机的路径,如:“/example/path”。 取值范围:不涉及。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| required_affinity | RequiredAffinityResp object | 参数解释:训练作业亲和要求。 |
| priority | Integer | 参数解释:训练作业优先级。 取值范围:0-3 |
| preemptible | Boolean | 参数解释:是否可以被抢占。 取值范围: |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| affinity_type | String | 参数解释:亲和调度策略。 取值范围: |
| job_level | String | 参数解释:作业整体的网络拓扑约束,affinity_type为networkTopology时有效,系统会将作业的所有task调度至不高于job_level层的节点组中。 用户向超节点资源池投递训练作业,如果未设置作业整体的网络拓扑约束,系统会默认赋值为cluster。 取值范围: |
| affinity_group_size | Integer | 参数解释:亲和组大小。 取值范围:不涉及。 |
| affinity_group_level | String | 参数解释:亲和组的网络拓扑约束,affinity_type为networkTopology时有效,系统会将affinity_group_size个task组成的亲和组调度至不高于affinity_group_level层的节点组中。 用户向超节点资源池投递训练作业,如果未设置亲和组的网络拓扑约束,系统会默认赋值为hyperinstanceGroup。 取值范围: |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| exec | Exec object | 参数解释:命令行方式采集指标。 |
| http_get | HttpGet object | 参数解释:http方式采集指标。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| path | String | 参数解释:http获取指标的url路径。 取值范围:不涉及。 |
| port | Integer | 参数解释:http获取指标的端口。 取值范围:不涉及。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| obs_path | String | 参数解释:自定义训练作业产物保存的OBS地址,如:“obs://example/path”。 取值范围:不涉及。 |
| local_path | String | 参数解释:自定义训练作业产物保存的宿主机的路径,如:“/example/path”。 取值范围:不涉及。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| id | String | 参数解释:模型id。 取值范围:不涉及。 |
| name | String | 参数解释:模型名称。 取值范围:不涉及。 |
| code | String | 参数解释:模型编码。 取值范围:不涉及。 |
| version | String | 参数解释:模型发布版本。 取值范围:不涉及。 |
| location | String | 参数解释:模型发布地址。 取值范围:不涉及。 |
| desc | String | 参数解释:模型描述。 取值范围:不涉及。 |
| series | String | 参数解释:模型品牌。 取值范围:不涉及。 |
| type | String | 参数解释:模型类型。 取值范围:不涉及。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| dataset_name | String | 训练数据集名称,取自数据集列表接口响应体name。 |
| dataset_source | String | 所使用的数据集来源,取值datamng|OBS|DB,分别表示来自于数据工程|OBS|数据库 |
| dataset_id | String | 训练数据集id,取自数据集列表接口响应体dataset_id。 |
| split_ratio | Integer | 训练、验证数据集分割比率,当该模型支持验证集且验证集来自选择的训练集时使用,取值大于等于1,小于等于50。 |
| used_step | String | 数据集使用的阶段,取值为train|eval|test,分别表示该数据集用于训练|验证|测试。 |
| dataset_proportion | Integer | 数据集配比比率,表示使用多少比率的该数据集进行训练。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| phase | String | 参数解释:训练作业一级状态。 取值范围: |
| secondary_phase | String | 参数解释:训练作业二级状态为内部详细状态,可能会增加、修改、删除,不建议依赖。 取值范围: |
| duration | Long | 参数解释:训练作业运行时长,单位为毫秒。 取值范围:不涉及。 |
| node_count_metrics | Array<Array<Integer>> | 参数解释:训练作业运行时节点数变化指标,每个内层数组表示一个 [时间点, 运行节点数] 二元组,记录某一时刻作业有多少个节点正在运行。 |
| tasks | Array of strings | 参数解释:训练作业子任务名称。 |
| start_time | Long | 参数解释:训练作业开始时间,格式为unix时间戳,单位为毫秒。 取值范围:不涉及。 |
| task_statuses | Array of TaskStatuses objects | 参数解释:训练首个失败子任务状态信息。 |
| running_records | Array of RunningRecord objects | 参数解释:训练作业运行及故障恢复记录。 |
| retention_time | Integer | 参数解释:作业已经保留时长。 取值范围:不涉及。 |
| task_ips | Array of TaskIP objects | 参数解释:训练作业各 Task 的 IP 信息。 取值范围:不涉及。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| task | String | 参数解释:训练作业子任务名称。 取值范围:不涉及。 |
| exit_code | Integer | 参数解释:训练作业子任务退出码。 取值范围:不涉及。 |
| message | String | 参数解释:训练作业子任务错误消息。 取值范围:不涉及。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| start_at | Long | 参数解释:本次运行开始时间的unix时间戳,单位为秒(s)。 取值范围:不涉及。 |
| end_at | Long | 参数解释:本次运行结束时间的unix时间戳,单位为秒(s)。 取值范围:不涉及。 |
| xpu_start_at | Long | 参数解释:本次运行加速卡启动时间的unix时间戳,单位为秒(s)。 取值范围:不涉及。 |
| start_type | String | 参数解释:本次运行的启动方式。 取值范围: |
| end_reason | String | 参数解释:本次运行结束原因。 取值范围:不涉及。 |
| end_related_task | String | 参数解释:引发本次运行结束的task worker ID(如worker-0)。 取值范围:不涉及。 |
| end_recover | String | 参数解释:本次运行异常结束时最终采取的故障容忍策略。 取值范围: |
| end_recover_before_downgrade | String | 参数解释:策略之间存在降级关系,即策略执行失败后会降级到指定的其他策略,end_recover_before_downgrade是end_recover降级前所采取的容忍策略。 取值范围:取值范围同end_recover。 |
| recover_records | Array of RecoverRecord objects | 参数解释:本次运行异常结束时采取的所有故障容忍策略详情。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| recover_start_at | Long | 参数解释:本次故障容忍策略开始执行时间的unix时间戳,单位为秒(s),同时也是故障发生时间。 取值范围:不涉及。 |
| recover_end_at | Long | 参数解释:本次故障容忍策略结束时间的unix时间戳,单位为秒(s)。 取值范围:不涉及。 |
| recover | String | 参数解释:本次故障容忍策略。 取值范围:枚举值如下: |
| fault_scenario | String | 参数解释:本次故障场景。 取值范围:枚举值如下: |
| reason | String | 参数解释:本次故障原因。 取值范围:不涉及。 |
| related_task | String | 参数解释:引发本次运行结束的task worker ID(如worker-0)。 取值范围:不涉及。 |
| recover_result | String | 参数解释:本次故障执行结果。 取值范围:枚举值如下: |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| task | String | Task 名称,如 worker-0。 |
| ip | String | Task/Pod IP 地址。 |
| host_ip | String | 宿主机 IP。 |
| schedule_count | Integer | 当前 Task 的第几次调度,默认 1。 重调度、抢占等场景下递增。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| checkpoint_id | String | 断点ID |
| source_model_id | String | 续训任务模型ID |
| source_model_name | String | 续训任务模型名称 |
| epoch | Integer | 轮数。 |
| steps | Integer | 步数。 |
| is_best | Boolean | 是否最优 |
| skipped_steps | Integer | 跳过步数,0表示不跳过。 |
状态码:400
| 参数 | 参数类型 | 描述 |
|---|---|---|
| error_msg | String | 错误信息。 |
| error_code | String | 错误码。 |
| error_solution | String | 错误解决建议。 |
请求示例
如下以查询uuid为3faf5c03-aaa1-4cbe-879d-24b05d997347的训练作业为例。
GET https://{endpoint}/v2/{project_id}/training-jobs/3faf5c03-aaa1-4cbe-879d-24b05d997347/ft-detail 响应示例
状态码:200
ok
{
"metadata" : {
"id" : "3faf5c03-aaa1-4cbe-879d-24b05d997347",
"name" : "trainjob--py14_mem06-108",
"description" : "",
"create_time" : 1636447346315,
"workspace_id" : "0",
"user_name" : ""
},
"status" : {
"phase" : "Abnormal",
"secondary_phase" : "CreateFailed",
"duration" : 0,
"start_time" : 0,
"node_count_metrics" : [ [ 1636447746000, 0 ], [ 1636447755000, 0 ], [ 1636447756000, 0 ] ],
"tasks" : [ "worker-0" ],
"running_records" : [ {
"start_at" : 1701327093,
"end_at" : 1701322341,
"start_type" : "init_or_rescheduled",
"end_recover" : "job_reschedule",
"end_reason" : "exit with 127",
"end_related_task" : "worker-2",
"end_recover_before_downgrade" : "npu_proc_restart"
}, {
"start_at" : 1701323345,
"end_at" : 1701325432,
"start_type" : "init_or_rescheduled",
"end_reason" : "job completed"
} ]
},
"spec" : {
"resource" : {
"flavor_id" : "modelarts.vm.pnt1.large.eco",
"node_count" : 1,
"flavor_detail" : {
"flavor_type" : "GPU",
"billing" : {
"code" : "modelarts.vm.gpu.pnt1.eco",
"unit_num" : 1
},
"flavor_info" : {
"cpu" : {
"arch" : "x86",
"core_num" : 8
},
"gpu" : {
"unit_num" : 1,
"memory" : "8GB"
},
"memory" : {
"size" : 64,
"unit" : "GB"
}
}
},
"main_container_allocated_resources" : {
"cpu_arch" : "x86",
"cpu_core_num" : 5,
"mem_size" : 44,
"accelerator_num" : 1,
"accelerator_type" : "nvidia-v100-pcie32"
}
},
"custom_metrics" : [ {
"exec" : {
"command" : [ "cat", "/a/b/c.prom" ]
}
}, {
"http_get" : {
"path" : "/raw_text",
"port" : 10001
}
} ]
},
"model_asset_id" : "14f39822-d31a-4ef1-b990-b606fe99496b"
} 状态码:400
通用的错误应答消息体格式;如下为id是3f5d6706-7b67-408d-8ba0-ec08048c45ee的训练作业未找到时的返回信息。
{
"error_msg" : "Job not found.",
"error_code" : "ModelArts.2755",
"error_solution" : "Check whether the training job in the request is valid."
} 状态码
| 状态码 | 描述 |
|---|---|
| 200 | ok |
| 400 | 通用的错误应答消息体格式;如下为id是3f5d6706-7b67-408d-8ba0-ec08048c45ee的训练作业未找到时的返回信息。 |
错误码
请参见错误码。