写点什么

Amazon SageMaker Processing – 完全托管的数据处理和模型评估

  • 2019-12-11
  • 本文字数:3057 字

    阅读完需:约 10 分钟

Amazon SageMaker Processing – 完全托管的数据处理和模型评估

今天,我们非常高兴地推出 Amazon SageMaker Processing,这是 Amazon SageMaker 的一项新功能,可让您轻松地在完全托管的基础设施上运行预处理、后处理和模型评估工作负载。


训练准确的机器学习 (ML) 模型需要许多不同的步骤,但没有什么比预处理数据集更重要,例如:


  • 将数据集转换为您所使用的 ML 算法期望的输入格式,

  • 将现有功能转换为更具表现力的表示形式,例如一键编码分类功能,

  • 重新调整或归一化数值特征,

  • 设计高级功能,例如用 GPS 坐标替换邮寄地址,

  • 为自然语言处理应用程序清理和标记文本,

  • 等等!


这些任务包括在数据集上运行定制脚本(我被告知在没有月亮的天空下),并保存处理后的版本,以供以后的培训作业使用。如您所料,对 ML 团队来说,手动运行它们或必须构建和扩展自动化工具的前景并不令人兴奋。对于后处理作业(筛选、整理等)和模型评估作业(针对不同测试集对模型评分)而言,也是如此。


为解决此问题,我们构建了 Amazon SageMaker Processing。下面我来进行更多介绍。


Amazon SageMaker Processing 简介


Amazon SageMaker Processing 推出了新的 Python 开发工具包,使数据科学家和 ML 工程师可以轻松地在 Amazon SageMaker 上运行预处理、后处理和模型评估工作负载。


该开发工具包使用 SageMaker 的内置容器来进行scikit-learn,这可能是最受欢迎的数据集转换库之一。


如果您还需要其他工具,还可以使用自己的 Docker 映像,而不必遵循任何 Docker 映像规范:这为您提供了最大的灵活性,无论是在 SageMaker Processing 还是在 Amazon ECSAmazon Elastic Kubernetes Service 之类的 AWS 容器服务上,甚至在内部,均是如此。


用 scikit-learn 快速演示怎么样? 然后,我将简要讨论如何使用您自己的容器。当然,您可以在 Github 上找到完整的示例。


使用内置的 Scikit-Learn 容器预处理数据


以下是使用 SageMaker Processing 开发工具包来运行 scikit-learn 作业的方法。


首先,让我们创建一个 SKLearnProcessor 对象,传递要使用的 scikit-learn 版本以及对托管基础设施的要求。


Python


from sagemaker.sklearn.processing import SKLearnProcessorsklearn_processor = SKLearnProcessor(framework_version='0.20.0',                                     role=role,                                     instance_count=1,                                     instance_type='ml.m5.xlarge')
复制代码


然后,我们可以像下面这样,运行预处理脚本(稍后将介绍更多有关该操作的内容):


  • 数据集 (dataset.csv) 将自动复制到目标目录 (/input) 下的容器内。如果需要,我们会添加其他输入。

  • 这是 Python 脚本 (preprocessing.py) 读取它的位置。我们也可以将命令行参数传递给脚本。

  • 脚本对命令行进行预处理,将其分为三种方式,然后将文件保存在容器中的 /opt/ml/processing/output/train/opt/ml/processing/output/validation/opt/ml/processing/output/test 下。

  • 作业完成后,所有输出将自动复制到 S3 中的默认 SageMaker 存储桶。


Python


from sagemaker.processing import ProcessingInput, ProcessingOutputsklearn_processor.run(    code='preprocessing.py',    # arguments = ['arg1', 'arg2'],    inputs=[ProcessingInput(        source='dataset.csv',        destination='/opt/ml/processing/input')],    outputs=[ProcessingOutput(source='/opt/ml/processing/output/train'),        ProcessingOutput(source='/opt/ml/processing/output/validation'),        ProcessingOutput(source='/opt/ml/processing/output/test')])
复制代码


就这么简单! 让我们通过查看预处理脚本的框架将所有内容放在一起。


Python


import pandas as pdfrom sklearn.model_selection import train_test_split# Read data locally df = pd.read_csv('/opt/ml/processing/input/dataset.csv')# Preprocess the data setdownsampled = apply_mad_data_science_skills(df)# Split data set into training, validation, and testtrain, test = train_test_split(downsampled, test_size=0.2)train, validation = train_test_split(train, test_size=0.2)# Create local output directoriestry:    os.makedirs('/opt/ml/processing/output/train')    os.makedirs('/opt/ml/processing/output/validation')    os.makedirs('/opt/ml/processing/output/test')except:    pass# Save data locallytrain.to_csv("/opt/ml/processing/output/train/train.csv")validation.to_csv("/opt/ml/processing/output/validation/validation.csv")test.to_csv("/opt/ml/processing/output/test/test.csv")print('Finished running processing job')
复制代码


快速浏览 S3 存储桶,确认文件已成功处理并保存。现在,我可以将它们直接用作 SageMaker 培训作业的输入。


$ aws s3 ls --recursive s3://sagemaker-us-west-2-123456789012/sagemaker-scikit-learn-2019-11-20-13-57-17-805/output


2019-11-20 15:03:22 19967 sagemaker-scikit-learn-2019-11-20-13-57-17-805/output/test.csv


2019-11-20 15:03:22 64998 sagemaker-scikit-learn-2019-11-20-13-57-17-805/output/train.csv


2019-11-20 15:03:22 18058 sagemaker-scikit-learn-2019-11-20-13-57-17-805/output/validation.csv


现在如何使用自己的容器?


使用自己的容器处理数据


比如说您想使用热门的 spaCy 库预处理文本数据。您可以使用以下方法为其定义一个普通 Docker 容器。


Bash


FROM python:3.7-slim-buster# Install spaCy, pandas, and an english language model for spaCy.RUN pip3 install spacy==2.2.2 && pip3 install pandas==0.25.3RUN python3 -m spacy download en_core_web_md# Make sure python doesn't buffer stdout so we get logs ASAP.ENV PYTHONUNBUFFERED=TRUEENTRYPOINT ["python3"]
复制代码


然后,您可以构建 Docker 容器,在本地进行测试,然后将其推送到我们的托管 Docker 注册表服务 Amazon Elastic Container Registry


下一步,可以使用 ScriptProcessor 对象配置处理作业,并传递您已构建和推送的容器的名称。


Python


from sagemaker.processing import ScriptProcessorscript_processor = ScriptProcessor(image_uri='123456789012.dkr.ecr.us-west-2.amazonaws.com/sagemaker-spacy-container:latest',                role=role,                instance_count=1,                instance_type='ml.m5.xlarge')
复制代码


最后,您可以像前面的示例一样运行该作业。


Python


script_processor.run(code='spacy_script.py',    inputs=[ProcessingInput(        source='dataset.csv',        destination='/opt/ml/processing/input_data')],    outputs=[ProcessingOutput(source='/opt/ml/processing/processed_data')],    arguments=['tokenizer', 'lemmatizer', 'pos-tagger'])
复制代码


其余过程与上述过程完全相同:将输入复制到容器内部,将输出从容器复制到 S3


很简单,对不对? 同样,我专注的是预处理,但是您可以运行类似的任务进行后处理和模型评估。不要忘记查看 Github 中的示例。


现已推出!


Amazon SageMaker Processing 现已在提供 Amazon SageMaker 的所有商业区域中推出。


请试一试,并通过 Amazon SageMakerAWS 论坛或您常用的 AWS Support 联系方式向我们发送反馈。


本文转载自 AWS 技术博客。


原文链接:https://amazonaws-china.com/cn/blogs/china/amazon-sagemaker-processing-fully-managed-data-processing-and-model-evaluation/


2019-12-11 15:35734

评论

发布
暂无评论
发现更多内容

AI编程:如何编写提示词

卷福同学

AIGC AI编程 cursor

爆火的Deepseek初体验

能源恒观

人工智能 AI 大模型

Easysearch 集群通过 API 进行用户密码重置

极限实验室

Easy search

海信75E7N和TCL 75J7E Pro区别

妙龙

智能电视 海信电视

MySQL 死锁案例一

喝水不抬头

音乐 NFT 系统的性能优化

北京木奇移动技术有限公司

软件外包公司 音乐NFT 体育NFT

Vidda R75和海信75E7N有什么区别

妙龙

智能电视 海信电视

AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试

sysin

AppSpider

AI编程:cursor使用教程

卷福同学

Python Cursor-based Pagination #AI编程 #AIGC

音乐NFT系统的测试

北京木奇移动技术有限公司

软件外包公司 音乐NFT 体育NFT

Qt开发macOS软件系统

北京木奇移动技术有限公司

跨平台开发 软件外包公司 QT开发

海信75e7n和75u7n 评测

妙龙

智能电视 海信电视

Apple Safari 18.3 - macOS 专属浏览器 (独立安装包下载)

sysin

safari

XCM:跨链开发者的「低代码平台」

One Block Community

区块链 技术 web3

QGIS系统的开发难点

北京木奇移动技术有限公司

WebGIS QGIS 软件外包公司

QGIS软件系统的测试

北京木奇移动技术有限公司

软件外包公司 QT开发 QT软件开发

PAI Model Gallery 支持云上一键部署 DeepSeek-V3、DeepSeek-R1 系列模型

阿里云大数据AI技术

人工智能 阿里云 模型部署 PAI DeepSeek

海信85E7N和Vidda发现X Pro 85英寸选哪个好

妙龙

智能电视 海信电视

海信100E7N和海信星光S1对比

妙龙

智能电视 海信电视

Tik Tok Refugees 外流会否迎来 Web3 社交应用的春天?

One Block Community

web3 TikTok

海信75E7N和TCL 75V8H 评测选哪个好

妙龙

智能电视 海信电视

macOS Sonoma 14.7.3 (23H417) Boot ISO 原版可引导镜像下载

sysin

macOS Sonoma

电子会计档案管理系统有哪些选择?10个系统介绍

爱吃小舅的鱼

电子会计档案管理系统

INFINI Labs 产品更新 | Console 发布 TopN 功能,Easysearch 新增 Rollup 能力等

极限实验室

Rollup console easysearch TopN

海信75E7N和海信75E3ND Pro对比

妙龙

智能电视 海信电视

海信75D3ND和海信75E7N哪个好

妙龙

智能电视 海信电视

CrossOver 24.0.7 for macOS & Linux - 领先的 Wine 解决方案

sysin

crossover

基于 HyperLogLog 统计直播访问人数-Redis

储诚益

Java 面试 redis 底层原理 场景题

海信100E7N 参数配置

妙龙

智能电视 海信电视

Nexpose 7.4.0 for Linux & Windows - 漏洞扫描

sysin

Nexpose

如何通过提升简历找到自己的第一份 Web3 工作?

One Block Community

web3 English

Amazon SageMaker Processing – 完全托管的数据处理和模型评估_行业深度_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章