tongchenkeji 发表于:2023-6-5 16:38:440次点击 已关注取消关注 关注 私信 机器学习PAI在easyrec里自定义了一些逻辑,pai上做分布式训练的时候如何让这个第三方包生效?[阿里云机器学习PAI] 暂停朗读为您朗读 机器学习PAI在easyrec里自定义了一些逻辑,引用了第三方包,在pai上做分布式训练的时候如何让这个第三方包生效啊? 「点点赞赏,手留余香」 赞赏 还没有人赞赏,快来当第一个赞赏的人吧! 海报 机器学习PAI# 人工智能平台 PAI1410# 机器学习深度学习1219
wljslmzAM 2023-11-28 2:57:19 1 在阿里云机器学习PAI中使用第三方库或自定义逻辑的方式一般有两种:安装依赖包和修改训练脚本。 如果你在easyrec中已经添加了自定义逻辑,那么可以考虑直接将整个easyrec项目打包成Python egg文件,并上传到PAI服务中。然后,在你提交的作业中引入该egg文件并在作业脚本中使用对应的模块即可。具体步骤如下: 在easyrec项目根目录下使用python setup.py bdist_egg命令打包成egg文件。 在PAI数据管理页面中创建一个数据集,将egg文件上传到该数据集中。 在你的PAI训练作业中,选择相应的计算环境,并在作业配置页面的“启动命令”处加入以下代码: --python-archive ${dataset_path}/your-eggs.egg 其中${dataset_path}表示该数据集的挂载路径,在作业启动时会被替换为实际的路径。这个选项告诉PAI从指定的egg文件加载依赖包。 在训练作业脚本中通过import语句引入easyrec项目中的模块并使用它们。 使用第三方库进行分布式训练需要考虑到以下一些问题: 第三方库是否支持分布式训练,是否能够正确地处理并行计算和通信? 依赖包的版本问题,不同版本之间是否存在兼容性问题?是否需要手动安装依赖包的完整依赖库? 是否需要对训练脚本进行修改以适应自定义逻辑?如何将自定义逻辑整合到原有训练逻辑中? 因此,在使用第三方库进行分布式训练时,建议遵循最佳实践和安全规范,确保软件稳定性和安全性。同时,也需要对项目的可维护性和扩展性进行评估和设计,以满足实际业务需求。
算精通AM 2023-11-28 2:57:19 2 如果您在 EasyRec 中自定义了一些逻辑,并且需要在机器学习 PAI 平台上进行分布式训练,可以通过以下步骤让第三方包生效: 打包自定义逻辑:将自定义逻辑打包成一个 Python 包,并将其发布到 PyPI 或者其他私有仓库中,以便在机器学习 PAI 平台上使用。 安装自定义逻辑:在机器学习 PAI 平台上的训练环境中安装自定义逻辑的 Python 包。可以在训练任务的脚本中添加安装命令,例如: pip install 导入自定义逻辑:在训练任务的脚本中导入自定义逻辑的模块或函数,以便在训练过程中使用。例如: from import 在分布式训练中使用自定义逻辑:在分布式训练的脚本中使用导入的自定义逻辑模块或函数,例如: model = (…)
微笑向日葵AM 2023-11-28 2:57:19 3 将第三方包拷贝到pai_jobs目录下, 然后在这里加上目录名: https://github.com/alibaba/EasyRec/blob/master/pai_jobs/deploy_ext.sh#L124, 执行sh deploy_ext.sh -G -V ${new_version} ,然后重新部署一下,参考这个文档: https://easyrec.readthedocs.io/en/latest/release.html#pai-max-compute-easyrec,此回答整理自钉群“【EasyRec】推荐算法交流群”
在阿里云机器学习PAI中使用第三方库或自定义逻辑的方式一般有两种:安装依赖包和修改训练脚本。
如果你在easyrec中已经添加了自定义逻辑,那么可以考虑直接将整个easyrec项目打包成Python egg文件,并上传到PAI服务中。然后,在你提交的作业中引入该egg文件并在作业脚本中使用对应的模块即可。具体步骤如下:
在easyrec项目根目录下使用
python setup.py bdist_egg
命令打包成egg文件。在PAI数据管理页面中创建一个数据集,将egg文件上传到该数据集中。
在你的PAI训练作业中,选择相应的计算环境,并在作业配置页面的“启动命令”处加入以下代码:
其中
${dataset_path}
表示该数据集的挂载路径,在作业启动时会被替换为实际的路径。这个选项告诉PAI从指定的egg文件加载依赖包。import
语句引入easyrec项目中的模块并使用它们。使用第三方库进行分布式训练需要考虑到以下一些问题:
第三方库是否支持分布式训练,是否能够正确地处理并行计算和通信?
依赖包的版本问题,不同版本之间是否存在兼容性问题?是否需要手动安装依赖包的完整依赖库?
是否需要对训练脚本进行修改以适应自定义逻辑?如何将自定义逻辑整合到原有训练逻辑中?
因此,在使用第三方库进行分布式训练时,建议遵循最佳实践和安全规范,确保软件稳定性和安全性。同时,也需要对项目的可维护性和扩展性进行评估和设计,以满足实际业务需求。
如果您在 EasyRec 中自定义了一些逻辑,并且需要在机器学习 PAI 平台上进行分布式训练,可以通过以下步骤让第三方包生效:
打包自定义逻辑:将自定义逻辑打包成一个 Python 包,并将其发布到 PyPI 或者其他私有仓库中,以便在机器学习 PAI 平台上使用。
安装自定义逻辑:在机器学习 PAI 平台上的训练环境中安装自定义逻辑的 Python 包。可以在训练任务的脚本中添加安装命令,例如:
pip install
导入自定义逻辑:在训练任务的脚本中导入自定义逻辑的模块或函数,以便在训练过程中使用。例如:
from import
在分布式训练中使用自定义逻辑:在分布式训练的脚本中使用导入的自定义逻辑模块或函数,例如:
model =(…)
将第三方包拷贝到pai_jobs目录下, 然后在这里加上目录名: https://github.com/alibaba/EasyRec/blob/master/pai_jobs/deploy_ext.sh#L124, 执行sh deploy_ext.sh -G -V ${new_version} ,然后重新部署一下,参考这个文档: https://easyrec.readthedocs.io/en/latest/release.html#pai-max-compute-easyrec,此回答整理自钉群“【EasyRec】推荐算法交流群”