Azure Machine Learning Python SDK V2多步骤作业全日志快速自动化下载方案咨询
我最近在做Azure ML多步骤作业的日志自动化下载,Web界面点几下就能搞定的事,用代码实现的时候却踩了好几个坑,想请教下有没有高效的解决方案:
问题1:作业定位慢到离谱
我用这段代码能拿到指定作业:
job = ml_client.jobs.get(name="my_job_name-08584641874851693546433866596CU116")
但这里的作业名称和界面上显示的display_name完全不匹配,我只能调用列表作业的接口去遍历工作区里所有作业才能找到目标作业——这个迭代过程要扫遍历史所有作业,速度慢到没法用,更气人的是接口居然不支持按实验名称、正则匹配这类预筛选功能。
问题2:SDK自带的日志下载只给系统日志
我翻了Azure ML Python SDK的JobOperations相关文档,里面的download方法只能下载作业的系统日志,完全拿不到各步骤运行时自己生成的业务日志,这根本不是我要的全量日志。
问题3:Blob存储日志的路径定位难题
后来我用浏览器抓包发现,真正的业务日志其实存在Blob存储里:
(浏览器抓包界面截图:显示日志文件的存储路径结构,包含作业运行ID相关的根文件夹,每个步骤对应一个类似dcid.614b7e0b-4f56-417c-89df-5fb4ac09ce1a的子目录,里面存着user_logs/std_log.txt这类业务日志文件)
Blob存储的日志路径大概是这种格式:
[存储账户]/azureml/ExperimentRun/[步骤ID]/user_logs/std_log.txt
我已经写好了下载Blob文件的Python代码,但不知道怎么快速定位到对应单个作业的所有步骤日志文件夹——毕竟每个步骤都有独立的ID路径。现在就想找一个高效的方法来实现多步骤作业全量日志的自动化下载,不想再被MLClient的低效操作折腾了。
备注:内容来源于stack exchange,提问作者BeGreen

