在 Amazon SageMaker PlatoBlockchain Data Intelligence 上托管代码服务器。 垂直搜索。 哎。

在 Amazon SageMaker 上托管代码服务器

机器学习 (ML) 团队在开展项目时需要灵活地选择他们的集成开发环境 (IDE)。 它使您能够获得高效的开发人员体验并快速进行创新。 您甚至可以在一个项目中使用多个 IDE。 亚马逊SageMaker 让 ML 团队选择在内部完全托管的基于云的环境中工作 亚马逊SageMaker Studio, SageMaker 笔记本实例,或从您的本地计算机使用 本地模式.

SageMaker 为 Jupyter 和 RStudio 提供一键式体验,以构建、训练、调试、部署和监控 ML 模型。 在这篇文章中,我们还将分享一个 方案, 用于托管 代码服务器 在 SageMaker 上。

使用代码服务器,用户可以运行 VS代码 在远程计算机上并在 Web 浏览器中访问它。 对于 ML 团队,在 SageMaker 上托管代码服务器可以对本地开发体验进行最小的更改,并允许您在可扩展的云计算上随时随地进行编码。 借助 VS Code,您还可以使用内置的 Conda 环境和 AWS 优化的 TensorFlow 和 PyTorch、托管的 Git 存储库、本地模式以及 SageMaker 提供的其他功能,以加快交付速度。 对于 IT 管理员,它允许您在云中标准化和加速托管、安全的 IDE 的配置,以快速加入并启用 ML 团队的项目。

解决方案概述

在这篇文章中,我们将介绍 Studio 环境(选项 A)和笔记本实例(选项 B)的安装。 对于每个选项,我们都会介绍 ML 团队可以在其环境中运行的手动安装过程,以及 IT 管理员可以通过 AWS命令行界面 (AWS CLI)。

下图说明了在 SageMaker 上托管代码服务器的架构概述。

我们的解决方案可加快您环境中代码服务器的安装和设置。 它适用于在 Studio 和 SageMaker 笔记本实例中运行的 JupyterLab 3(推荐)和 JupyterLab 1。 它由基于选项执行以下操作的 shell 脚本组成。

对于 Studio(选项 A),shell 脚本执行以下操作:

对于 SageMaker 笔记本实例(选项 B),shell 脚本执行以下操作:

  • 安装代码服务器。
  • 在 Jupyter 笔记本文件菜单和 JupyterLab 启动器上添加代码服务器快捷方式,以快速访问 IDE。
  • 创建用于管理依赖项的专用 Conda 环境。
  • 安装 蟒蛇码头工人 IDE 上的扩展。

在以下部分中,我们将介绍选项 A 和选项 B 的解决方案安装过程。确保您有权访问 Studio 或笔记本实例。

选项 A:在 Studio 上托管代码服务器

要在 Studio 上托管代码服务器,请完成以下步骤:

  1. 系统终端 在您的 Studio 启动器中。
    ml-10244-studio-终端点击
  2. 要安装代码服务器解决方案,请在系统终端中运行以下命令:
    curl -LO https://github.com/aws-samples/amazon-sagemaker-codeserver/releases/download/v0.1.5/amazon-sagemaker-codeserver-0.1.5.tar.gz
    tar -xvzf amazon-sagemaker-codeserver-0.1.5.tar.gz
    
    cd amazon-sagemaker-codeserver/install-scripts/studio
     
    chmod +x install-codeserver.sh
    ./install-codeserver.sh
    
    # Note: when installing on JL1, please prepend the nohup command to the install command above and run as follows: 
    # nohup ./install-codeserver.sh

    这些命令应该需要几秒钟才能完成。

  3. 重新加载浏览器页面,您可以在其中看到一个 代码服务器 Studio 启动器中的按钮。
    ml-10244-代码服务器按钮
  4. 代码服务器 打开一个新的浏览器选项卡,允许您从浏览器访问代码服务器。
    Python 扩展已安装,您可以开始在您的 ML 项目中工作。ml-10244-vscode

您可以在 VS Code 中打开您的项目文件夹,然后选择预构建的 Conda 环境来运行您的 Python 脚本。

ml-10244-vscode-康达

为 Studio 域中的用户自动安装代码服务器

作为 IT 管理员,您可以使用 生命周期配置. 可以为 Studio 域下的所有用户配置文件或特定配置文件执行此操作。 看 使用生命周期配置自定义 Amazon SageMaker Studio 以获得更多细节。

对于这篇文章,我们从 安装代码服务器 脚本,并将其附加到现有的 Studio 域。 已为域中的所有用户配置文件完成安装。

从配置了 AWS CLI 和适当权限的终端,运行以下命令:

curl -LO https://github.com/aws-samples/amazon-sagemaker-codeserver/releases/download/v0.1.5/amazon-sagemaker-codeserver-0.1.5.tar.gz
tar -xvzf amazon-sagemaker-codeserver-0.1.5.tar.gz

cd amazon-sagemaker-codeserver/install-scripts/studio

LCC_CONTENT=`openssl base64 -A -in install-codeserver.sh`

aws sagemaker create-studio-lifecycle-config 
    --studio-lifecycle-config-name install-codeserver-on-jupyterserver 
    --studio-lifecycle-config-content $LCC_CONTENT 
    --studio-lifecycle-config-app-type JupyterServer 
    --query 'StudioLifecycleConfigArn'

aws sagemaker update-domain 
    --region  
    --domain-id  
    --default-user-settings 
    '{
    "JupyterServerAppSettings": {
    "DefaultResourceSpec": {
    "LifecycleConfigArn": "arn:aws:sagemaker:::studio-lifecycle-config/install-codeserver-on-jupyterserver",
    "InstanceType": "system"
    },
    "LifecycleConfigArns": [
    "arn:aws:sagemaker:::studio-lifecycle-config/install-codeserver-on-jupyterserver"
    ]
    }}'

# Make sure to replace ,  and  in the previous commands with
# the Studio domain ID, the AWS region and AWS Account ID you are using respectively.

Jupyter 服务器重新启动后, 代码服务器 按钮出现在您的 Studio 启动器中。

选项 B:在 SageMaker 笔记本实例上托管代码服务器

要在 SageMaker 笔记本实例上托管代码服务器,请完成以下步骤:

  1. 通过 Jupyter 或 JupyterLab 为您的笔记本实例启动终端。
    如果您使用 Jupyter,请选择 终端 全新 菜单。
    在 Amazon SageMaker PlatoBlockchain Data Intelligence 上托管代码服务器。 垂直搜索。 哎。
  2.  要安装代码服务器解决方案,请在终端中运行以下命令:
    curl -LO https://github.com/aws-samples/amazon-sagemaker-codeserver/releases/download/v0.1.5/amazon-sagemaker-codeserver-0.1.5.tar.gz
    tar -xvzf amazon-sagemaker-codeserver-0.1.5.tar.gz
    
    cd amazon-sagemaker-codeserver/install-scripts/notebook-instances
     
    chmod +x install-codeserver.sh
    chmod +x setup-codeserver.sh
    sudo ./install-codeserver.sh
    sudo ./setup-codeserver.sh

    代码服务器和扩展安装在笔记本实例上是持久的。 但是,如果您停止或重新启动实例,则需要运行以下命令来重新配置代码服务器:

    sudo ./setup-codeserver.sh

    这些命令应该需要几秒钟才能运行。 当您看到以下内容时,您可以关闭终端选项卡。

    ml-10244-终端输出

  3. 现在重新加载 Jupyter 页面并检查 全新 再次菜单。
    代码服务器 选项现在应该可用。
    在 Amazon SageMaker PlatoBlockchain Data Intelligence 上托管代码服务器。 垂直搜索。 哎。

您还可以使用专用启动器按钮从 JupyterLab 启动代码服务器,如以下屏幕截图所示。

ml-10244-jupyterlab-代码-服务器-按钮

选择 代码服务器 将打开一个新的浏览器选项卡,允许您从浏览器访问代码服务器。 Python 和 Docker 扩展已安装,您可以开始在您的 ML 项目中工作。

ml-10244-笔记本-vscode

在笔记本实例上自动安装代码服务器

作为 IT 管理员,您可以使用 生命周期配置 在实例创建时运行,并在实例启动时运行一个自动设置。

在这里,我们使用 命令行界面。 该 on-create 配置运行 安装代码服务器on-start 运行 设置代码服务器.

从配置了 AWS CLI 和适当权限的终端,运行以下命令:

curl -LO https://github.com/aws-samples/amazon-sagemaker-codeserver/releases/download/v0.1.5/amazon-sagemaker-codeserver-0.1.5.tar.gz
tar -xvzf amazon-sagemaker-codeserver-0.1.5.tar.gz

cd amazon-sagemaker-codeserver/install-scripts/notebook-instances

aws sagemaker create-notebook-instance-lifecycle-config 
    --notebook-instance-lifecycle-config-name install-codeserver 
    --on-start Content=$((cat setup-codeserver.sh || echo "")| base64) 
    --on-create Content=$((cat install-codeserver.sh || echo "")| base64)

aws sagemaker create-notebook-instance 
    --notebook-instance-name  
    --instance-type  
    --role-arn  
    --lifecycle-config-name install-codeserver

# Make sure to replace , ,
# and  in the previous commands with the appropriate values.

现在,笔记本实例的代码服务器安装是自动化的。

结论

代码服务器 在 SageMaker 上托管,ML 团队可以在可扩展的云计算上运行 VS Code,从任何地方运行代码,并加快他们的 ML 项目交付。 对于 IT 管理员来说,它使他们能够标准化和加快在云中托管、安全的 IDE 的配置,以快速加入并启用 ML 团队在他们的项目中。

在这篇文章中,我们分享了一个解决方案,您可以使用它在 Studio 和笔记本实例上快速安装代码服务器。 我们分享了 ML 团队可以自行运行的手动安装过程,以及 IT 管理员可以为他们设置的自动安装过程。

要进一步学习,请访问 AWSsome SageMaker 在 GitHub 上查找使用 SageMaker 所需的所有相关和最新资源。


作者简介

在 Amazon SageMaker PlatoBlockchain Data Intelligence 上托管代码服务器。 垂直搜索。 哎。朱塞佩·安杰洛·波切利 是 Amazon Web Services 的首席机器学习专家解决方案架构师。 凭借多年的软件工程和机器学习背景,他与各种规模的客户合作,深入了解他们的业务和技术需求,并设计能够充分利用 AWS 云和亚马逊机器学习堆栈的人工智能和机器学习解决方案。 他参与过不同领域的项目,包括 MLOps、计算机视觉、NLP,并涉及广泛的 AWS 服务。 在空闲时间,朱塞佩喜欢踢足球。

在 Amazon SageMaker PlatoBlockchain Data Intelligence 上托管代码服务器。 垂直搜索。 哎。索非亚·哈米蒂(Sofian Hamiti) 是AWS的AI / ML专家解决方案架构师。 他通过帮助他们构建和运行端到端机器学习解决方案来帮助各行各业的客户加速其AI / ML之旅。

在 Amazon SageMaker PlatoBlockchain Data Intelligence 上托管代码服务器。 垂直搜索。 哎。埃里克·佩纳 是 AWS 人工智能平台团队的高级技术产品经理,负责 Amazon SageMaker 交互式机器学习。 他目前专注于 SageMaker Studio 上的 IDE 集成。 他拥有 MIT Sloan 的 MBA 学位,工作之余喜欢打篮球和踢足球。

时间戳记:

更多来自 AWS机器学习