

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

# PyTorch 프레임워크 프로세서
<a name="processing-job-frameworks-pytorch"></a>

PyTorch는 오픈 소스 기계 학습 프레임워크입니다. Amazon SageMaker Python SDK의 `PyTorchProcessor`는 PyTorch 스크립트를 사용하여 프로세싱 작업을 실행할 수 있는 기능을 제공합니다. `PyTorchProcessor`를 사용하면 Amazon에서 구축한 Docker 컨테이너를 관리형 PyTorch 환경과 함께 활용할 수 있으므로 컨테이너를 직접 가져올 필요가 없습니다.

다음 코드 예시에서는 SageMaker AI에서 제공 및 유지 관리하는 Docker 이미지를 사용하여 Processing 작업을 실행하기 위해 `PyTorchProcessor`를 사용하는 방법을 보여줍니다. 참고로 작업을 실행할 때 `source_dir` 인수에 스크립트와 종속성이 포함된 디렉터리를 지정할 수 있으며, `source_dir` 디렉터리 내에 처리 스크립트의 종속성을 지정하는 `requirements.txt` 파일을 가지고 있을 수 있습니다. SageMaker 프로세싱은 사용자를 위해 컨테이너의 `requirements.txt`에 종속 항목을 설치합니다.

SageMaker AI에서 지원하는 PyTorch 버전은 사용 가능한 [딥 러닝 컨테이너 이미지](https://github.com/aws/deep-learning-containers/blob/master/available_images.md)를 참조하세요.

```
from sagemaker.pytorch.processing import PyTorchProcessor
from sagemaker.processing import ProcessingInput, ProcessingOutput
from sagemaker import get_execution_role

#Initialize the PyTorchProcessor
pytorch_processor = PyTorchProcessor(
    framework_version='1.8',
    role=get_execution_role(),
    instance_type='ml.m5.xlarge',
    instance_count=1,
    base_job_name='frameworkprocessor-PT'
)

#Run the processing job
pytorch_processor.run(
    code='{{processing-script.py}}',
    source_dir='{{scripts}}',
    inputs=[
        ProcessingInput(
            input_name='data',
            source=f'{{s3://{BUCKET}/{S3_INPUT_PATH}}}',
            destination='/opt/ml/processing/input'
        )
    ],
    outputs=[
        ProcessingOutput(output_name='data_structured', source='/opt/ml/processing/tmp/data_structured', destination=f'{{s3://{BUCKET}/{S3_OUTPUT_PATH}}}'),
        ProcessingOutput(output_name='train', source='/opt/ml/processing/output/train', destination=f'{{s3://{BUCKET}/{S3_OUTPUT_PATH}}}'),
        ProcessingOutput(output_name='validation', source='/opt/ml/processing/output/val', destination=f'{{s3://{BUCKET}/{S3_OUTPUT_PATH}}}'),
        ProcessingOutput(output_name='test', source='/opt/ml/processing/output/test', destination=f'{{s3://{BUCKET}/{S3_OUTPUT_PATH}}}'),
        ProcessingOutput(output_name='logs', source='/opt/ml/processing/logs', destination=f'{{s3://{BUCKET}/{S3_OUTPUT_PATH}}}')
    ]
)
```

`requirements.txt` 파일이 있는 경우, 컨테이너에 설치하려는 라이브러리 목록이어야 합니다. `source_dir`의 경로는 상대 경로, 절대 경로 또는 Amazon S3 URI 경로일 수 있습니다. 하지만 Amazon S3 URI를 사용하는 경우, 이 URI는 tar.gz 파일을 가리켜야 합니다. `source_dir`에 대해 지정한 디렉터리에 스크립트가 여러 개 있을 수 있습니다. `PyTorchProcessor` 클래스에 대해 자세히 알아보려면, *Amazon SageMaker Python SDK*에서 [PyTorch 예측기](https://sagemaker.readthedocs.io/en/stable/frameworks/pytorch/sagemaker.pytorch.html)를 찾아보세요.