

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# ARM64 DLAMI
<a name="tutorial-arm64"></a>

AWS ARM64 GPU DLAMIs는 딥 러닝 워크로드에 높은 성능과 비용 효율성을 제공하도록 설계되었습니다. 특히 G5g 인스턴스 유형에는 Arm64-based [AWS Graviton2 프로세서](https://aws.amazon.com/ec2/graviton/)가 탑재되어 있습니다.이 프로세서는 처음부터 클라우드에서 워크로드를 실행하는 방법에 맞게 최적화 AWS 되어 있습니다. AWS ARM64 GPU DLAMIs는 Docker, NVIDIA Docker, NVIDIA 드라이버, CUDA, CuDNN, NCCL뿐만 아니라 TensorFlow 및 PyTorch와 같은 인기 있는 기계 학습 프레임워크로 사전 구성되어 있습니다.

G5g 인스턴스 유형을 사용하면 Graviton2의 가격 및 성능 이점을 활용하여 GPU 가속을 지원하는 x86 기반 인스턴스보다 훨씬 저렴한 비용으로 GPU 가속 딥 러닝 모델을 배포할 수 있습니다.

## ARM64 DLAMI 선택
<a name="tutorial-arm64-select-dlami"></a>

선택한 ARM64 DLAMI로 [G5g 인스턴스](https://aws.amazon.com/ec2/instance-types/g5g/)를 시작합니다.

DLAMI 시작에 대한 단계별 지침은 [DLAMI 시작 및 구성](https://docs.aws.amazon.com/dlami/latest/devguide/launch-config.html)을 참조하세요.

최신 ARM64 DLAMI 목록은 [DLAMI 릴리스 노트](https://docs.aws.amazon.com/dlami/latest/devguide/appendix-ami-release-notes.html)를 참조하세요.

## 시작하기
<a name="tutorial-arm64-get-started"></a>

다음 섹션에서는 ARM64 DLAMI 사용을 시작하는 방법을 보여 줍니다.

**Topics**
+ [ARM64 DLAMI 선택](#tutorial-arm64-select-dlami)
+ [시작하기](#tutorial-arm64-get-started)
+ [ARM64 GPU PyTorch DLAMI 사용](tutorial-arm64-pytorch.md)

# ARM64 GPU PyTorch DLAMI 사용
<a name="tutorial-arm64-pytorch"></a>

 AWS Deep Learning AMIs 는 Arm64 프로세서 기반 GPUs와 함께 사용할 준비가 되었으며 PyTorch에 최적화되어 제공됩니다. ARM64 GPU PyTorch DLAMI에는 딥 러닝 훈련 및 추론 사용 사례를 위해 [PyTorch](https://aws.amazon.com/pytorch), [TorchVision](https://pytorch.org/vision/stable/index.html) 및 [TorchServe](https://pytorch.org/serve/)로 사전 구성된 Python 환경이 포함되어 있습니다.

**Topics**
+ [PyTorch Python 환경 확인](#tutorial-arm64-pytorch-environment)
+ [PyTorch를 사용하여 교육 샘플 실행](#tutorial-arm64-pytorch-training)
+ [PyTorch로 추론 샘플 실행](#tutorial-arm64-pytorch-inference)

## PyTorch Python 환경 확인
<a name="tutorial-arm64-pytorch-environment"></a>

G5g 인스턴스에 연결하고 다음 명령을 사용하여 기본 Conda 환경을 활성화합니다.

```
source activate base
```

명령 프롬프트는 PyTorch, TorchVision 및 기타 라이브러리가 포함된 기본 Conda 환경에서 작업하고 있음을 나타내야 합니다.

```
(base) $
```

PyTorch 환경의 기본 도구 경로를 확인합니다.

```
(base) $ which python
(base) $ which pip
(base) $ which conda
(base) $ which mamba
>>> import torch, torchvision
>>> torch.__version__
>>> torchvision.__version__
>>> v = torch.autograd.Variable(torch.randn(10, 3, 224, 224))
>>> v = torch.autograd.Variable(torch.randn(10, 3, 224, 224)).cuda()
>>> assert isinstance(v, torch.Tensor)
```

## PyTorch를 사용하여 교육 샘플 실행
<a name="tutorial-arm64-pytorch-training"></a>

샘플 MNIST 교육 작업을 실행합니다.

```
git clone https://github.com/pytorch/examples.git
cd examples/mnist
python main.py
```

출력은 다음과 비슷한 형태가 됩니다.

```
...
Train Epoch: 14 [56320/60000 (94%)]    Loss: 0.021424
Train Epoch: 14 [56960/60000 (95%)]    Loss: 0.023695
Train Epoch: 14 [57600/60000 (96%)]    Loss: 0.001973
Train Epoch: 14 [58240/60000 (97%)]    Loss: 0.007121
Train Epoch: 14 [58880/60000 (98%)]    Loss: 0.003717
Train Epoch: 14 [59520/60000 (99%)]    Loss: 0.001729
Test set: Average loss: 0.0275, Accuracy: 9916/10000 (99%)
```

## PyTorch로 추론 샘플 실행
<a name="tutorial-arm64-pytorch-inference"></a>

다음 명령을 사용하여 사전 학습된 densenet161 모델을 다운로드하고 TorchServe를 사용하여 추론을 실행하세요.

```
# Set up TorchServe
cd $HOME
git clone https://github.com/pytorch/serve.git
mkdir -p serve/model_store
cd serve

# Download a pre-trained densenet161 model
wget https://download.pytorch.org/models/densenet161-8d451a50.pth >/dev/null

# Save the model using torch-model-archiver
torch-model-archiver --model-name densenet161 \
    --version 1.0 \
    --model-file examples/image_classifier/densenet_161/model.py \
    --serialized-file densenet161-8d451a50.pth \
    --handler image_classifier \
    --extra-files examples/image_classifier/index_to_name.json  \
    --export-path model_store 

# Start the model server
torchserve --start --no-config-snapshots \
    --model-store model_store \
    --models densenet161=densenet161.mar &> torchserve.log

# Wait for the model server to start
sleep 30

# Run a prediction request
curl http://127.0.0.1:8080/predictions/densenet161 -T examples/image_classifier/kitten.jpg
```

출력은 다음과 비슷한 형태가 됩니다.

```
{
  "tiger_cat": 0.4693363308906555,
  "tabby": 0.4633873701095581,
  "Egyptian_cat": 0.06456123292446136,
  "lynx": 0.0012828150065615773,
  "plastic_bag": 0.00023322898778133094
}
```

다음 명령을 사용하여 densenet161 모델을 등록 취소하고 서버를 중지하세요.

```
curl -X DELETE http://localhost:8081/models/densenet161/1.0
torchserve --stop
```

출력은 다음과 비슷한 형태가 됩니다.

```
{
  "status": "Model \"densenet161\" unregistered"
}
TorchServe has stopped.
```