

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

# Sequence-to-Sequence 알고리즘
<a name="seq-2-seq"></a>

Amazon SageMaker AI Sequence-Sequence는 입력이 토큰 시퀀스(예: 텍스트, 오디오)이고 생성된 출력이 또 다른 토큰 시퀀스인 지도 학습 알고리즘입니다. 애플리케이션의 예로는 기계 번역(한 언어의 문장을 입력하고 다른 언어에서 어떤 문장이 나올지 예측), 텍스트 요약(길이가 긴 단어 문자열을 입력하고 길이가 짧은 요약 단어 문자열을 예측), 음성-텍스트 변환(오디오 클립이 토큰으로 된 출력 문장으로 변환됨)이 있습니다. 최근 이 도메인의 문제는 심층 신경망을 사용하여 성공적으로 모델링되었으며, 이는 이전 방법론에 비해 성능이 크게 향상되었습니다. Amazon SageMaker AI seq2seq는 인코더-디코더 아키텍처로 주목받는 순환 신경망(RNN) 및 합성곱 신경망(CNN) 모델을 사용합니다.

**Topics**
+ [Sequence-to-Sequence 알고리즘에 대한 입력/출력 인터페이스](#s2s-inputoutput)
+ [Sequence-to-Sequence 알고리즘에 대한 EC2 인스턴스 권장 사항](#s2s-instances)
+ [Sequence-to-Sequence 샘플 노트북](#seq-2-seq-sample-notebooks)
+ [Sequence-to-Sequence 작동 방식](seq-2-seq-howitworks.md)
+ [Sequence-to-Sequence 하이퍼파라미터](seq-2-seq-hyperparameters.md)
+ [Sequence-to-Sequence 모델 튜닝](seq-2-seq-tuning.md)

## Sequence-to-Sequence 알고리즘에 대한 입력/출력 인터페이스
<a name="s2s-inputoutput"></a>

**훈련**

SageMaker AI seq2seq에는 RecordIO-Protobuf 형식의 데이터가 필요합니다. 그러나 토큰은 일반적인 경우처럼 부동 소수점이 아니라 정수여야 합니다.

토큰화된 텍스트 파일에서 protobuf 형식으로 데이터를 변환하는 스크립트가 [seq2seq 예제 노트북](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/seq2seq_translation_en-de/SageMaker-Seq2Seq-Translation-English-German.html)에 포함되어 있습니다. 일반적으로 32비트 정수 텐서에 데이터를 담고, 필요한 어휘 파일을 생성하는데, 이는 지표 계산 및 추론에 필요합니다.

사전 처리가 완료된 이후 훈련을 위해 이 알고리즘을 호출할 수 있으며, 이 알고리즘에는 다음 3가지 채널이 필요합니다.
+ `train`: 훈련 데이터(예: 사전 처리 스크립트에 의해 생성된 `train.rec` 파일)가 포함되어 있어야 합니다.
+ `validation`: 검증 데이터(예: 사전 처리 스크립트에 의해 생성된 `val.rec` 파일)가 포함되어 있어야 합니다.
+ `vocab`: 2개의 어휘 파일(`vocab.src.json` 및 `vocab.trg.json`)이 포함되어 있어야 합니다.

알고리즘이 이 세 채널에서 데이터를 찾지 못하는 경우 훈련 결과는 오류가 됩니다.

**추론**

호스팅 엔드포인트의 경우 추론은 두 가지 데이터 형식을 지원합니다. 공백으로 구분된 텍스트 토큰을 사용하여 추론을 수행하려면 `application/json` 형식을 사용합니다. 그렇지 않은 경우 `recordio-protobuf` 형식을 사용하여 정수 인코딩된 데이터로 작업합니다. 두 모드는 입력 데이터의 일괄 처리를 지원합니다. 또한 `application/json` 형식을 사용하면 주의 매트릭스를 시각화할 수 있습니다.
+ `application/json`: JSON 형식의 입력을 예상하고 JSON 형식의 출력을 반환합니다. 콘텐츠 및 허용 유형은 `application/json`이어야 합니다. 각 시퀀스는 공백으로 구분된 토큰이 포함된 문자열로 예상됩니다. 이 형식은 배치의 소스 시퀀스 수가 적을 때 권장됩니다. 또한 다음 추가 구성 옵션을 지원합니다.

  `configuration`: \$1`attention_matrix`: `true`\$1: 특정 입력 시퀀스에 대한 주목 매트릭스를 반환합니다.
+ `application/x-recordio-protobuf`: `recordio-protobuf` 형식의 입력을 예상하고 `recordio-protobuf format`의 출력을 반환합니다. 콘텐츠 및 허용 유형은 `applications/x-recordio-protobuf`이어야 합니다. 이 형식의 경우 소스 시퀀스는 후속 protobuf 인코딩에 대한 정수 목록으로 변환되어야 합니다. 이 형식은 대령 추론에 권장됩니다.

배치 변환을 위해 추론은 JSON Lines 형식을 지원합니다. 배치 변환은 JSON Lines 형식의 입력을 필요로 하고 출력을 JSON Lines 형식으로 반환합니다. 콘텐츠 및 허용 유형은 `application/jsonlines`이어야 합니다. 입력 형식은 다음과 같습니다.

```
content-type: application/jsonlines

{"source": "source_sequence_0"}
{"source": "source_sequence_1"}
```

응답 형식은 다음과 같습니다.

```
accept: application/jsonlines

{"target": "predicted_sequence_0"}
{"target": "predicted_sequence_1"}
```

추론을 위한 특정 형식으로 입력 및 출력을 직렬화 및 역직렬화하는 방법에 대한 자세한 정보는 [Sequence-to-Sequence 샘플 노트북](#seq-2-seq-sample-notebooks) 섹션을 참조하세요.

## Sequence-to-Sequence 알고리즘에 대한 EC2 인스턴스 권장 사항
<a name="s2s-instances"></a>

Amazon SageMaker AI seq2seq 알고리즘은 GPU 인스턴스 유형에서만 지원되며 단일 머신에서만 훈련할 수 있습니다. 하지만 여러 GPU가 있는 인스턴스를 사용할 수 있습니다. seq2seq 알고리즘은 P2, P3, G4dn 및 G5 GPU 인스턴스 패밀리를 지원합니다.

## Sequence-to-Sequence 샘플 노트북
<a name="seq-2-seq-sample-notebooks"></a>

영어-독일어 번역 모델을 훈련하는 데 SageMaker AI Sequence-Sequence 알고리즘을 사용하는 방법을 보여주는 샘플 노트북은 [Machine Translation English-German Example Using SageMaker AI Seq2Seq](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/seq2seq_translation_en-de/SageMaker-Seq2Seq-Translation-English-German.html)를 참조하세요. SageMaker AI에서 예시 실행에 사용할 수 있는 Jupyter Notebook 인스턴스를 만들고 이 인스턴스에 액세스하는 방법에 대한 설명은 [Amazon SageMaker 노트북 인스턴스](nbi.md) 섹션을 참조하세요. 노트북 인스턴스를 만든 후 열면 **SageMaker AI 예시** 탭을 선택하여 모든 SageMaker AI 샘플 목록을 확인할 수 있습니다. NTM 알고리즘을 사용하는 주제 모델링 예제 노트북은 **Introduction to Amazon algorithms(Amazon 알고리즘 소개)** 섹션에 있습니다. 노트북을 열려면 **사용** 탭을 클릭하고 사본 생성을 선택합니다.