发起训练任务失败诊断
更新时间:2025-01-08
描述
dui 训练任务框架为pytorch
且状态为失败
的任务进行智能诊断。
请求结构
POST /api/v1/aifd/jobdiagnosis/job
Host:aihc.bj.baidubce.com
Authorization:authorization string
ContentType: application/json
请求头域
除公共头域外,无其它特殊头域。
请求参数
参数名称 | 类型 | 是否必须 | 参数位置 | 说明 |
---|---|---|---|---|
resourcePoolId | String | 是 | Body 参数 | 标识资源池的唯一标识符 |
jobId | String | 是 | Body 参数 | 训练任务ID |
返回头域
除公共头域,无其它特殊头域。
返回参数
参数名称 | 类型 | 是否必须 | 说明 |
---|---|---|---|
requestId | String | 是 | 请求ID |
result | JobFdResult | 是 | 成功请求时的任务信息 |
请求示例
{
"resourcePoolId": "cce-xxxxxxxx",
"jobId": "pytorchjob-19d38d07-3e04-49ef-8428-xxxxxxx",
}
返回示例
{
"requestId": "7e0fbc1b-af00-4f26-8f6c-xxxxxxxxx",
"result": {
"fdMode": "AIAnalysis",
"expertModeList": [],
"category": "网络错误",
"originalSegment": "2024-12-25T12:00:08.611494738Z 2024-06-21T04:14:16.110195028Z nccl_err_qp_conn_timeout",
"reason": "出现了NCCL错误,具体为QP(队列对)连接超时。这通常与网络配置问题、网络拥堵或硬件故障有关。",
"solution": "重新创建任务并使用适当的资源,或者联系百舸解决方案支持团队和值班人员解决。"
}
}
{
"requestId": "0db5a707-cc5a-4b76-9487-xxxxxxxx",
"result": {
"fdMode": "ExpertMode",
"expertModeList": [
{
"name": "worker cuda oom",
"instanceName": "openapi-rules-762-master-0",
"nodeIP": "10.27.2.7"
}
],
"category": "其他类型",
"originalSegment": "",
"reason": "任务实例 openapi-rules-762-master-0 10.27.2.7 发生 CUDA OOM,可能原因:1. 模型过大:你的模型需要的内存超过了GPU的可用内存。2. 批量大小过大:如果你在训练时使用的批量大小(batch size)太大,每个批次的数据可能会占用太多的内存。3. 内存泄漏:代码中可能存在内存泄漏,即不再需要的数据没有被及时释放,导致内存逐渐耗尽。4. 多任务并发:可能有其他进程也在使用GPU内存,导致可用内存减少。5. 不正确的内存管理:在某些情况下,即使在GPU上释放了内存,由于某些原因(如缓存机制),这些内存可能没有被立即回收。",
"solution": "解决这个错误的一些方法包括:* 减小批量大小:减少每个批次的数据量以减少内存使用。* 优化模型结构:减少模型大小,使用更少的层或参数。* 使用更多的GPU:如果可能,可以使用数据并行来分配工作负载到多个GPU上。* 确保内存被释放:确保不再需要的变量被删除,并调用torch.cuda.empty_cache()来释放PyTorch的缓存内存。注意,过度使用empty_cache()可能会导致性能下降,因为它会导致GPU重新分配内存。* 关闭其他占用GPU内存的进程:确保没有其他进程正在占用GPU内存,或者如果可能,尝试将任务移动到其他GPU上。"
}
}