我有一个500GB的csv文件和1.5 TB数据的mysql数据库,我想运行aws sagemaker分类和回归算法以及随机林。
可以为sagemaker提供支持吗?可以批量阅读和训练模型吗?任何一个例子
答案 0 :(得分:3)
Amazon Sagemaker 旨在帮助您扩展培训活动。对于大型数据集,您可能需要考虑两个主要方面:
数据存储:S3 是存储训练数据的最具成本效益的方式。要获得更快的启动和训练时间,您可以考虑以下几点:
Pipe
mode 和内置算法或 bringing your own。但是 Pipe
模式并不是一直适用,例如,如果您的算法需要在一个 epoch 内回溯或向前跳过(底层 FIFO 不支持 lseek() 操作)或者如果您的训练不容易解析来自流媒体源的数据集。训练并行性:对于大型数据集,您可能希望在不同的 GPU 上进行训练。在这种情况下,请考虑以下事项:
(奖励)成本优化:不要忘记利用 Managed Spot training 节省高达 90% 的计算成本。
您会在 Amazon SageMaker 分布式训练 documentation page
上找到其他示例答案 1 :(得分:2)
亚马逊SageMaker专为此类规模而设计,可以使用它来训练非常大的数据集。要利用服务的可扩展性,您应该考虑对当前实践进行一些修改,主要是围绕分布式培训。
如果你想使用分布式培训来加快培训速度(“单个实例100小时的成本与100个实例中的1小时完全相同,只需要快100倍”),更具可扩展性(“如果你有10次更多的数据,你只需添加10倍的实例和一切正常工作“)更可靠,因为每个实例只处理一小部分数据集或模型,并且不会超出磁盘或内存空间。
如何以分布式方式实现ML算法并不明显,这仍然是高效和准确的。 Amazon SageMaker具有经典ML算法的现代实现,例如支持分布式训练的线性学习器,K均值,PCA,XGBoost等,可以扩展到这样的数据集大小。从一些基准测试中,与其他分布式培训实施(如Spark MLLib)相比,这些实施可以快10倍。您可以在此笔记本中看到一些示例:https://github.com/awslabs/amazon-sagemaker-workshop/blob/master/notebooks/video-game-sales-xgboost.ipynb
比例尺的另一个方面是数据文件。数据不应位于单个文件中,因为它限制了在用于分布式培训的群集中分发数据的能力。使用SageMaker,您可以决定如何使用Amazon S3中的数据文件。它可以处于完全复制模式,其中所有数据都复制到所有工作人员,但也可以通过密钥进行分片,在工作人员之间分配数据,并且可以进一步加快培训速度。您可以在此笔记本中看到一些示例:https://github.com/awslabs/amazon-sagemaker-examples/tree/master/advanced_functionality/data_distribution_types
答案 2 :(得分:1)
您可以将SageMaker用于大规模机器学习任务!它是专为此而设计的。我开发了这个开源项目https://github.com/Kenza-AI/sagify(sagify),它是一个CLI工具,可以帮助您以非常简单的方式在SageMaker上训练和部署机器学习/深度学习模型。无论我使用什么库(Keras,Tensorflow,scikit-learn,LightFM等),我都设法训练和部署我的所有ML模型