HAI-Platform API完全手册:开发者必备的接口调用指南 HAI-Platform API完全手册开发者必备的接口调用指南【免费下载链接】hai-platform一种任务级GPU算力分时调度的高性能深度学习训练平台项目地址: https://gitcode.com/gh_mirrors/ha/hai-platformHAI-PlatformGitHub 加速计划是一种任务级GPU算力分时调度的高性能深度学习训练平台提供了丰富的API接口帮助开发者高效管理和监控训练任务。本指南将带你快速掌握API的核心功能、调用方法和最佳实践让你轻松上手GPU算力调度与任务管理。 API架构概览核心模块与调用流程HAI-Platform的API系统采用分层设计主要包含任务管理、训练控制、资源监控三大核心模块。通过这些接口开发者可以实现从任务创建到资源监控的全流程管理。核心API模块路径任务管理APIclient/api/experiment_api.py训练控制APIclient/api/training_api.py资源监控APImonitor/monitor_data/ 快速入门API调用三步骤1️⃣ 环境准备首先确保已安装HAI-Platform客户端git clone https://gitcode.com/gh_mirrors/ha/hai-platform cd hai-platform/client bash install.sh2️⃣ 认证配置API调用需要通过token进行身份验证配置方法from hfai.client.api_config import set_mars_token set_mars_token(your_token_here) # 从平台控制台获取3️⃣ 基本调用模式所有API采用异步调用方式基本格式如下import asyncio from hfai.client import get_experiment async def main(): experiment await get_experiment(id12345) # 获取任务信息 print(experiment.nb_name, experiment.status) asyncio.run(main()) 任务管理API从创建到销毁的全生命周期创建训练任务使用create_experiment接口创建任务支持YAML配置文件或直接传入配置字典from hfai.client import create_experiment config version: 2 name: ResNet50_train priority: 20 spec: workspace: /path/to/code entrypoint: train.py parameters: --epochs 100 --batch_size 64 resource: node_count: 2 group: jd_a100#heavy task asyncio.run(create_experiment(config)) print(f任务创建成功ID: {task.id})配置详情可参考官方文档示例查询任务列表通过get_experiments接口批量获取任务信息支持分页和多条件筛选total, tasks asyncio.run(get_experiments( page1, page_size10, nb_name_patternResNet, # 按名称模糊搜索 queue_status_list[running, pending] # 筛选运行中/待调度任务 )) print(f共找到{total}个任务) for task in tasks: print(f{task.id}: {task.nb_name} ({task.queue_status}))任务操作接口接口功能示例stop()终止任务await experiment.stop()suspend()挂起任务await experiment.suspend(restart_delay3600)set_priority()修改优先级await experiment.set_priority(EXP_PRIORITY.HIGH)tag_task()添加标签await experiment.tag_task(production)⚙️ 训练控制API精细化任务调节运行时状态管理HAI-Platform提供了多种接口用于训练过程中的动态调节设置超时监控from hfai.client import set_watchdog_time # 设置1800秒无日志自动失败 set_watchdog_time(1800)优雅处理任务中断from hfai.client import receive_suspend_command, go_suspend while training: # 检查是否收到挂起命令 if receive_suspend_command(): save_checkpoint() # 保存模型 checkpoint go_suspend() # 通知平台可以挂起 break # 训练迭代...优先级动态调整根据任务紧急程度实时调整优先级from hfai.client import set_priority, EXP_PRIORITY # 将任务优先级提升为高 set_priority(EXP_PRIORITY.HIGH) 监控与日志API实时掌握训练状态获取任务日志通过log_ng接口获取指定rank的训练日志支持增量获取# 获取rank 0的最新日志 log_data await experiment.log_ng(rank0, last_seenexperiment.last_seen) print(log_data[data]) # 日志内容 experiment.last_seen log_data[last_seen] # 更新上次查看位置性能监控实时获取GPU/CPU使用率等性能指标# 获取当前性能数据 perf_data await experiment.get_latest_point() print(fGPU使用率: {perf_data[gpu][utilization]}%) print(f内存使用: {perf_data[memory][used]}/{perf_data[memory][total]} MB) 最佳实践与常见问题任务优先级策略非紧急任务使用EXP_PRIORITY.LOW20生产环境任务使用EXP_PRIORITY.HIGH40资源紧张时可通过set_priority动态调整处理网络异常API调用建议添加重试机制async def safe_api_call(coro, max_retries3): for i in range(max_retries): try: return await coro except Exception as e: if i max_retries - 1: raise await asyncio.sleep(2 ** i) # 指数退避 # 使用示例 task await safe_api_call(get_experiment(id12345))常见错误码错误码含义解决方案1001权限不足检查token有效性或联系管理员2002资源不足降低节点数或调整优先级3003参数错误检查配置文件格式 更多资源完整API文档docs/api/client.html示例代码库examples/配置模板conf/proj_conf/通过本指南你已经掌握了HAI-Platform API的核心使用方法。无论是简单的任务管理还是复杂的训练控制这些接口都能帮助你高效利用GPU算力资源。开始探索吧【免费下载链接】hai-platform一种任务级GPU算力分时调度的高性能深度学习训练平台项目地址: https://gitcode.com/gh_mirrors/ha/hai-platform创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考