

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

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

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

다음 코드 예제에서는 SageMaker AI에서 제공하고 유지 관리하는 Docker 이미지를 사용하여 처리 작업을 실행하는 방법을 보여줍니다. 참고로 작업을 실행할 때 `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.core.resources import ProcessingJob
from sagemaker.core.helper.session_helper import get_execution_role

# Create a processing job with a PyTorch container
processing_job = ProcessingJob.create(
    processing_job_name='frameworkprocessor-PT',
    role_arn=get_execution_role(),
    app_specification={
        "image_uri": "{{pytorch-processing-image-uri}}",
        "container_entrypoint": ["python3", "/opt/ml/processing/input/code/{{processing-script.py}}"]
    },
    processing_resources={
        "cluster_config": {"instance_count": 1, "instance_type": "ml.m5.xlarge", "volume_size_in_gb": 30}
    },
    processing_inputs=[
        {"input_name": "data", "s3_input": {"s3_uri": f"{{s3://{{BUCKET}}/{{S3_INPUT_PATH}}}}", "local_path": "/opt/ml/processing/input", "s3_data_type": "S3Prefix", "s3_input_mode": "File"}},
        {"input_name": "code", "s3_input": {"s3_uri": "{{s3://path/to/scripts/}}", "local_path": "/opt/ml/processing/input/code", "s3_data_type": "S3Prefix", "s3_input_mode": "File"}}
    ],
    processing_output_config={
        "outputs": [
            {"output_name": "data_structured", "s3_output": {"s3_uri": f"{{s3://{{BUCKET}}/{{S3_OUTPUT_PATH}}}}", "local_path": "/opt/ml/processing/tmp/data_structured", "s3_upload_mode": "EndOfJob"}},
            {"output_name": "train", "s3_output": {"s3_uri": f"{{s3://{{BUCKET}}/{{S3_OUTPUT_PATH}}}}", "local_path": "/opt/ml/processing/output/train", "s3_upload_mode": "EndOfJob"}},
            {"output_name": "validation", "s3_output": {"s3_uri": f"{{s3://{{BUCKET}}/{{S3_OUTPUT_PATH}}}}", "local_path": "/opt/ml/processing/output/val", "s3_upload_mode": "EndOfJob"}},
            {"output_name": "test", "s3_output": {"s3_uri": f"{{s3://{{BUCKET}}/{{S3_OUTPUT_PATH}}}}", "local_path": "/opt/ml/processing/output/test", "s3_upload_mode": "EndOfJob"}},
            {"output_name": "logs", "s3_output": {"s3_uri": f"{{s3://{{BUCKET}}/{{S3_OUTPUT_PATH}}}}", "local_path": "/opt/ml/processing/logs", "s3_upload_mode": "EndOfJob"}}
        ]
    }
)
```

`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/api/sagemaker_train.html)를 찾아보세요.