我在 sagemaker studio 工作,我有一个实例运行一项计算密集型任务:
运行我的任务的内核似乎已达到极限,但实际实例仅使用少量资源。是否发生某种限制?我可以对此进行配置以便利用更多实例吗?
Aws sagemaker 笔记本实例具有约 104GB 的固定根卷大小,其中约 15GB 是免费的(可用)。
Docker 使用这个临时内存(/var/lib/docker据我所知)。
当我尝试构建 docker 映像来创建自定义训练作业时,使用中的临时根卷会爆炸,系统会抛出“设备上没有剩余空间”错误。
我尝试删除 anaconda 目录(~62 GB),但是随后,boto3 和 sagemaker python 库停止工作。
解决问题的最佳方法是什么?
我尝试构建重型 Dockerfile 来推送 ECR :
ARG REGION="us-east-1"
FROM 763104351884.dkr.ecr.$REGION.amazonaws.com/pytorch-training:1.8.1-gpu-py36-cu111-ubuntu18.04
RUN pip3 install torch==1.8.2+cu111 torchvision==0.9.2+cu111 -f https://download.pytorch.org/whl/lts/1.8/torch_lts.html
RUN python3 -m pip install detectron2 -f \
https://dl.fbaipublicfiles.com/detectron2/wheels/cu111/torch1.8/index.html
ENV FORCE_CUDA="1"
ENV TORCH_CUDA_ARCH_LIST="Volta"
ENV FVCORE_CACHE="/tmp"
############# SageMaker section ##############
COPY tested_train_src/train_src /opt/ml/code
WORKDIR /opt/ml/code
ENV SAGEMAKER_SUBMIT_DIRECTORY /opt/ml/code
ENV SAGEMAKER_PROGRAM train.py
WORKDIR /
ENTRYPOINT ["bash", "-m", "start_with_right_hostname.sh"]
Run Code Online (Sandbox Code Playgroud)
构建命令:
docker build -t image-name:tag …Run Code Online (Sandbox Code Playgroud) SageMaker 文档解释了如何运行管道,但它假设我刚刚定义了它并且我有可用的对象pipeline。
如何使用Python SDK运行现有管道?
我知道如何使用 AWS CLI 读取管道(即aws sagemaker describe-pipeline --pipeline-name foo)。Python 代码也能完成同样的事情吗?然后我就pipeline准备好了可以使用的对象。
NVIDIA Triton \xc2\xa0vs\xc2\xa0 TorchServe \xc2\xa0 用于 SageMaker 推理?什么时候推荐每个?
\n两者都是现代的生产级推理服务器。TorchServe 是 PyTorch 模型的 DLC 默认推理服务器。SageMaker 上的 PyTorch 推理还支持 Triton。
\n有人有两者的良好比较矩阵吗?
\n我想在 AWS SageMaker 上运行 RL 训练作业(脚本如下)。但由于该项目很复杂,我希望在提交到付费实例之前使用 SageMaker 本地模式(在我的 M1 MacBook Pro 中)进行测试运行。然而,即使是简单的训练任务,我也很难让这次本地跑步取得成功。
现在,我在运行本地训练作业时确实使用了 Tensorflow-metal 和 Tensorflow-macos(没有 SageMaker)。我没有看到任何地方可以在 中指定这一点framework_version,而且我也不确定"local_gpu"对于带有 GPU 的普通 Linux 机器来说,哪个是正确的参数,与 Apple Silicon (M1 Pro) 完全匹配。
我到处搜索,但找不到解决此问题的案例。(很奇怪,我做错了什么吗?如果是这样,请纠正我。)如果没有,并且有人知道配置、docker 镜像或使用 M1 Pro 正确完成的示例,请分享。
我尝试运行以下代码。登录后挂起。(如果您尝试运行代码,请尝试使用任何简单的训练脚本作为入口点,并确保使用 awscli 和以下命令使用与您的区域匹配的类似代码登录。
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 763104351884.dkr.ecr.us-east-1.amazonaws.com
##main.py
import boto3
import sagemaker
import os
import keras
import numpy as np
from keras.datasets import fashion_mnist
from sagemaker.tensorflow import TensorFlow
sess = sagemaker.Session()
#role = <'arn:aws:iam::0000000000000:role/CFN-SM-IM-Lambda-Catalog-sk-SageMakerExecutionRole-BlaBlaBla'> #KINDLY ADD …Run Code Online (Sandbox Code Playgroud) amazon-web-services tensorflow amazon-sagemaker amazon-sagemaker-debugger
尝试将数据上传到S3存储桶时,SageMaker出现问题。我收到此错误:
Run Code Online (Sandbox Code Playgroud)NameError Traceback (most recent call last) <ipython-input-26-d21b1cb0fcab> in <module>() 19 download('http://data.mxnet.io/data/caltech-256/caltech-256-60-train.rec') 20 ---> 21 upload_to_s3('train', 'caltech-256-60-train.rec') <ipython-input-26-d21b1cb0fcab> in upload_to_s3(channel, file) 13 data = open(file, "rb") 14 key = channel + '/' + file ---> 15 s3.Bucket(bucket).put_object(Key=key, Body=data) 16 17 NameError: name 'bucket' is not defined
这是脚本:
NameError Traceback (most recent call last)
<ipython-input-26-d21b1cb0fcab> in <module>()
19 download('http://data.mxnet.io/data/caltech-256/caltech-256-60-train.rec')
20
---> 21 upload_to_s3('train', 'caltech-256-60-train.rec')
<ipython-input-26-d21b1cb0fcab> in upload_to_s3(channel, file)
13 data = open(file, "rb")
14 key = channel + '/' + file …Run Code Online (Sandbox Code Playgroud) 我按照此处的说明设置了EMR群集和SageMaker笔记本。直到最后一步,我才没有任何错误。
当我在Sagemaker中打开新笔记本时,会收到以下消息:
The kernel appears to have died. It will restart automatically.
Run Code Online (Sandbox Code Playgroud)
然后:
The kernel has died, and the automatic restart has failed.
It is possible the kernel cannot be restarted.
If you are not able to restart the kernel, you will still be able to save the
notebook, but running code will no longer work until the notebook is reopened.
Run Code Online (Sandbox Code Playgroud)
这仅在我使用pyspark / Sparkmagic内核时发生。使用Conda内核或任何其他内核打开的笔记本可以正常工作。
我的EMR群集完全按照说明进行设置,并增加了一条规则:
[
{
"Classification": "spark",
"Properties": {
"maximizeResourceAllocation": "true"
}
}
]
Run Code Online (Sandbox Code Playgroud)
我会很感激为什么发生这种情况以及如何调试/修复的任何指示。
PS:过去,我已经成功完成了此任务,没有任何问题。今天当我尝试重新执行此操作时,遇到了这个问题。我尝试重新创建EMR群集和Sagemaker笔记本,但这没有帮助。
我正在尝试使用 Amazon Sagemaker (xgboost: eu-west-1': '685385470294.dkr.ecr.eu-west-1.amazonaws.com/xgboost:latest') 训练模型。但是在开始训练工作后不久我总是收到相同的错误消息:
“ClientError:在数据路径中发现隐藏文件!在训练前删除它。”
S3 控制台显示输出路径为空(我也尝试创建一个新目录无济于事)。未为存储桶启用版本控制。
令人惊讶的是,谷歌在此错误消息下没有发现任何内容。
我已将输入和输出配置如下:
"InputDataConfig": [
{
"ChannelName": "train",
"DataSource": {
"S3DataSource": {
"S3DataType": "S3Prefix",
"S3Uri": "s3://{}/{}-inputdata/train".format(s3_utils.bucket, LABEL)
}
},
"ContentType": "csv",
"CompressionType": "None"
},
{
"ChannelName": "validation",
"DataSource": {
"S3DataSource": {
"S3DataType": "S3Prefix",
"S3Uri": "s3://{}/{}-inputdata/validation".format(s3_utils.bucket, LABEL)
}
},
"ContentType": "csv",
"CompressionType": "None"
}
],
"OutputDataConfig": {
"S3OutputPath": "s3://{}/{}-xgboost-output".format(s3_utils.bucket, LABEL) },
Run Code Online (Sandbox Code Playgroud)
场
"RoleArn": role,
Run Code Online (Sandbox Code Playgroud)
角色从何而来
from sagemaker import get_execution_role
role = get_execution_role()
Run Code Online (Sandbox Code Playgroud)
并且是
arn:aws:iam::<ACCOUNT>:role/service-role/AmazonSageMaker-ExecutionRole-<HIDDEN>
Run Code Online (Sandbox Code Playgroud)
这是显示数据路径的屏幕截图:数据路径的 S3 仪表板视图。这两个 csv 文件就是全部。特别是,没有空的“目录”可能是“隐藏文件”的含义。
amazon-s3 amazon-ec2 amazon-web-services xgboost amazon-sagemaker
我在AWS Sagemaker上有一个带有预测掩码的文件夹。(它里面有4个文件夹,这些文件夹中有很多文件。)我想将整个文件夹下载到笔记本电脑上。这听起来很简单,但是我找不到解决方法。感谢任何帮助。
谢谢
我是AWS的新手,刚开始学习sagemaker,我发现有两种训练模型的方法: 使用sagemaker训练模型
有谁能解释这两种方法之间的区别,两种方法都有优点和缺点吗?
谢谢
amazon-sagemaker ×10
amazon-s3 ×2
aws-sdk ×2
amazon-ec2 ×1
download ×1
inference ×1
jupyter ×1
pyspark ×1
tensorflow ×1
torchserve ×1
tritonserver ×1
xgboost ×1