首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将spark.ml管道拟合和超参数优化集成在AWS中?

问如何将spark.ml管道拟合和超参数优化集成在AWS中?
EN

Stack Overflow用户
提问于 2022-01-24 13:57:22
回答 1查看 257关注 0票数 2

下面是我正在努力实现的目标的高级图片:我想用spark作为一个计算后端来训练一个后端模型,所有这些都是在SageMaker中使用他们的训练Job。澄清:

  1. 一般来说,我必须使用LightGBM,这里没有选择。
  2. 我需要使用火花计算后端的原因是,使用当前数据集的培训不再适合内存。
  3. 我希望使用SageMaker培训作业设置,这样我就可以使用SM超参数优化工作来为LightGBM找到最佳的超级参数。虽然LightGBM火花接口本身确实提供了一些超参数调优功能,但它不提供贝叶斯HP调优。

现在,我知道了在SM中运行自定义培训的一般方法:以某种方式构建一个容器,然后从ECR中提取它,并通过sagemaker.Estimator API接口启动一个培训作业/超参数调优任务。现在,在本例中,SM将为您处理资源配置,创建一个实例等等。我感到困惑的是,从本质上说,要使用星火计算后端,我需要运行一个EMR集群,所以SDK也必须处理这个问题。但是,我看不出上面的API是如何做到的。

现在,还有一个叫做Sagemaker Pyspark SDK的东西。但是,该包提供的SageMakerEstimator API也不支持即时集群配置.

有没有人知道如何运行一个使用EMR集群的Sagemaker培训作业,以便以后可以将相同的任务用于超参数调优活动?

我看到的一种方法是在后台运行一个EMR集群,然后创建一个常规的SM估计器作业,它将连接到EMR集群并进行培训,本质上是在SM estimator作业中运行一个火花驱动程序。

过去有没有人做过类似的事?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-25 12:57:03

谢谢你的提问。以下是答案:

  • SageMaker PySpark SDK https://sagemaker-pyspark.readthedocs.io/en/latest/所做的正好相反:能够从火花环境调用无火花(或火花) SageMaker作业。不确定这就是你在这里需要的。
  • 在SageMaker作业中运行火花。虽然您可以使用SageMaker笔记本连接到远程EMR集群进行交互编码,但您不需要EMR在SageMaker作业中运行Spark (培训和处理)。你有两个选择:
代码语言:javascript
复制
- [SageMaker Processing has a built-in Spark Container](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_processing.html#pysparkprocessor), which is easy to use but unfortunately not connected to SageMaker Model Tuning (that works with Training only). If you use this, you will have to find and use a third-party, external parameter search library ; for example [Syne Tune](https://aws.amazon.com/blogs/machine-learning/run-distributed-hyperparameter-and-neural-architecture-tuning-jobs-with-syne-tune/) from AWS itself (that supports bayesian optimization)
代码语言:javascript
复制
- SageMaker Training can run custom docker-based jobs, on one or multiple machines. If you can fit your Spark code within SageMaker Training spec, then you will be able to use SageMaker Model Tuning to tune your Spark code. However there is no framework container for Spark on SageMaker Training, so you would have to build your own, and I am not aware of any examples. Maybe you could get inspiration from the [Processing container code here](https://github.com/aws/sagemaker-spark-container) to build a custom Training container

您使用培训作业作为客户端启动EMR集群的想法很好,并且应该能够工作(如果SM具有正确的权限),并且确实允许您使用SM模型调优。我建议:

  • 每个SM作业创建一个新的临时集群(步骤后自动终止),以保持较低的成本,并避免调优结果会受到作业间争用的污染。
  • 使用SM估计器最便宜的实例类型,因为它将需要在EMR实验的所有期间保持不眠状态,以收集和打印您的最终度量(准确性、持续时间、成本.)

本着同样的精神,我曾经使用SageMaker训练自己启动批处理转换作业,其唯一目的是利用贝叶斯搜索API来找到一种最小化成本的推理配置。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70835006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档