亚马逊AWS官方博客

宣布推出面向数据科学家的完全托管式 RStudio on Amazon SageMaker

两年前,我们推出了 Amazon SageMaker Studio:业界首个全集成的机器学习(ML)开发环境(IDE)。Amazon SageMaker Studio 提供了一个基于 Web 的单一可视化界面,您可以在其中执行所有 ML 开发步骤,将数据科学团队的工作效率提高 10 倍

许多数据科学家都喜欢 R 项目,这是一个拥有 18,000 多个软件包的开源生态系统,不仅是一种编程语言,而且还是一个可用于数据科学的交互式环境。RStudio 是机器学习(ML)和数据科学项目的 R 开发人员中最受欢迎的 IDE 之一。RStudio 为 R 和企业级专业软件提供了开源工具,供数据科学团队在企业中开发和分享他们的工作。但是,自行构建、保护、扩缩和维护 RStudio 既乏味又繁琐。

通过与 RStudio PBC 合作,我们很高兴地宣布 RStudio on Amazon SageMaker 全面开放,这是业内首个完全托管式的云端 RStudio Workbench IDE。现在,只需几个简单的步骤,即可轻松将您当前的 RStudio 许可证从您自行管理的 RStudio 环境迁移到 Amazon SageMaker。如果您需要详细了解这一激动人心的合作,请阅读 RStudio PBC 的这篇博客

借助 RStudio on Amazon SageMaker,管理员可以轻松迁移其 RStudio 环境以集成到 Amazon SageMaker 中,并通过 AWS License Manager 来管理现有的 RStudio 许可证。管理员可以使用 AWS Single Sign-On(SSO)或 AWS Identity and Access Management (IAM) 将 R 和 Python 开发人员加入同一 Amazon SageMaker 域,并在该域集中配置 RStudio 和 Amazon SageMaker Studio。

这样,数据科学家将可以自由选择编程语言和编程接口,从而在 RStudio 和 Amazon SageMaker Studio 笔记本之间进行切换。他们的所有工作(包括代码、数据集、存储库和其他构件)都通过底层的 Amazon EFS 存储在这两个环境之间同步。

RStudio on SageMaker 入门
现在,您只需从 Amazon SageMaker 点击一下,即可启动熟悉的 RStudio Workbench。在开始之前,管理员需要向 RStudio PBC 为终端用户购买适当的许可证,在 AWS License Manager 中设置授予的许可证,然后创建一个 Amazon SageMaker 域和用户配置文件以启动 RStudio on Amazon SageMaker。要了解所有的管理员任务,包括许可证管理和使用情况监控,请参阅有关设置过程的博客文章或 AWS 文档中的管理 RStudio on Amazon SageMaker

完成所需的设置过程后,您可以从创建的用户列表中选择新的 Launch app(启动应用程序)下拉列表,打开 RStudio Workbench,然后选择 RStudio

这时将会立即显示 RStudio Workbench 主页以及主页上的会话、项目和已发布内容列表。要创建新的会话,请选择此页面上的 New Session(新建会话)按钮,从Instance Type(实例类型)下拉列表中选择所需的实例,然后选择 Start Session(开启会话)。

如果需要选择适用于轻量级分析的计算实例类型(可能有两个 vCPU 和 4GiB 内存),您可以使用原定设置的 ml.t3.medium 实例。对于复杂的大型 ML 建模,您可以从 Amazon SageMaker 上丰富的 ML 实例中选择具有所需计算和内存的大型实例。

几分钟后,RStudio Workbench 中将会准备好您的会话以便于开发。当您启动 RStudio 会话时,您的实例将以 Base R 镜像为基础。此 Docker 镜像包括 R v4.0 以及 awsclisagemakerboto3 Python 软件包等 AWS 工具,此外还包括用于确保 Python 和 R 之间互操作性的 reticulate 软件包。

管理 R 软件包和发布分析
RStudio Workbench 与 RStudio ConnectRStudio Package Manager 都是最常用的 RStudio 产品。

RStudio Connect 旨在允许数据科学家轻松地从 RStudio Workbench 发布洞察、控制面板和 Web 应用程序。RStudio Package Manager 用于集中管理企业的软件包存储库,以便数据科学家可以更快速安全地安装软件包,同时确保项目的可再现性和可重复性。

例如,管理员可以创建一个存储库,然后在 RStudio Package Manager 中将其订阅到一个名为 cran 的内置源。

$ rspm sync --wait # Initiate a sync
$ rspm create repo --name=prod-cran --description='Access CRAN packages' # Create a repository:
$ rspm subscribe --repo=prod-cran --source=cran # Subscribe the repository to the cran source

完成这些步骤后,您就可以在 RStudio Package Manager 的 Web 界面中使用 prod-cran 存储库。

然后您可以配置此存储库,以便在 RStudio Workbench 中安装和管理软件包。您还可以将 RStudio Connect 配置为通过 RStudio Connect 从 RStudio Workbench 发布洞察、控制面板和 Web 应用程序,以便协作者能够轻松使用您的工作。

例如,您可以运行内联分析以创建可发布给协作者的 R Markdown。您可以在编写代码的同时使用 Preview(预览)按钮预览幻灯片,然后使用 RStudio 会话中的 Publish(发布)图标发布幻灯片。

您还可以将 Shiny 应用程序的易于创建的交互式 Web 界面或基于 Python 的内容(例如 Streamlit)发布到 RStudio Connect 实例。

要了解详情,请参阅我同事 Michael Hsieh、Chayan Panda 和 Farooq Sabir 的 AWS Machine Learning 博客文章 Host RStudio Connect and Package Manager for ML development in RStudio on Amazon SageMaker

将训练任务与 Amazon SageMaker 集成
使用 RStudio on Amazon SageMaker 的一个益处是它集成了 Amazon SageMaker 的功能。Amazon SageMaker 上的 RStudio 和 Jupyter 笔记本实例允许共享同一个Amazon EFS 文件系统。您可以导入在 Jupyter 笔记本中编写的 R 代码,也可以在 Jupyter 笔记本和 RStudio 中使用相同的文件,而无需在两者之间移动文件。

例如,您可以运行 R 示例代码,包括导入库、创建 Amazon SageMaker 会话、获取 IAM 角色以及导入和可视化显示示例数据。然后,它会将数据存储在 S3 存储桶中,并通过指定训练容器和定义 Amazon SageMaker Estimator 来使用 XGBoost 模型触发训练任务。要了解详情,请参阅 Amazon SageMaker 中的 R 示例代码

# Import reticulate, readr and sagemaker libraries
library(reticulate)
library(readr)
sagemaker <- import('sagemaker')

# Create a sagemaker session
session <- sagemaker$Session()

# Get execution role
role_arn <- sagemaker$get_execution_role()

# Read a csv file from UCI public repository
data_file <- 'http://archive.ics.uci.edu/ml/machine-learning-databases/abalone/abalone.data'

# Copy data to a dataframe, rename columns, and show dataframe head
data_csv <- read_csv(file = data_file, col_names = FALSE, col_types = cols())
names(data_csv) <- c('sex', 'length', 'diameter', 'height', 'whole_weight', 'shucked_weight', 'viscera_weight', 'shell_weight', 'rings')
head(data_csv)

# Visualize data have height equal to 0
library(ggplot2)
options(repr.plot.width = 5, repr.plot.height = 4) 
ggplot(abalone, aes(x = height, y = rings, color = sex, alpha=0.5)) + geom_point() + geom_jitter()

# Upload data to Amazon S3 bucket
s3_train <- session$upload_data(path = data_csv,
                                bucket = my_s3_bucket,
                                key_prefix = 'r_hello_world_demo/data')
s3_path = paste('s3://',bucket,'/r_hello_world_demo/data/abalone.csv',sep = '')

# Train a XGBoost model, specify the training containers, and define an Amazon SageMaker Estimator
container <- sagemaker$image_uris$retrieve(framework='xgboost',
                                           region= session$boto_region_name,
										   version='latest')							
estimator <- sagemaker$estimator$Estimator(image_uri = container,
                                           role = role_arn,
                                           train_instance_count = 1L,
                                           train_instance_type = 'ml.m5.4xlarge',
                                           train_volume_size = 30L,
                                           train_max_run = 3600L,
                                           input_mode = 'File',
                                           output_path = s3_path)

现已推出
RStudio on Amazon SageMaker 现已在同时提供 Amazon SageMaker Studio 和 AWS License Manager 的所有 AWS 区域开放。您可以自带 RStudio on Amazon SageMaker 许可证,并按使用量为 Amazon SageMaker 或其他 AWS 服务中的底层计算和存储资源付费。

您可以通过 AWS 免费套餐来开启使用 RStudio on Amazon SageMaker。在前两个月,您可以每月在 Amazon SageMaker Studio 上使用 ml.t3.medium 实例 250 个小时。要了解详情,请参阅 Amazon SageMaker 定价页面。

欢迎尝试并通过 AWS 论坛上的 Amazon SageMaker 板块或您常用的 AWS Support 联系方式向我们发送反馈。

Channy