Sequence-to-Sequence 알고리즘 - Amazon SageMaker AI

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

Sequence-to-Sequence 알고리즘

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

Sequence-to-Sequence 알고리즘에 대한 입력/출력 인터페이스

훈련

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

토큰화된 텍스트 파일에서 protobuf 형식으로 데이터를 변환하는 스크립트가 seq2seq 예제 노트북에 포함되어 있습니다. 일반적으로 32비트 정수 텐서에 데이터를 담고, 필요한 어휘 파일을 생성하는데, 이는 지표 계산 및 추론에 필요합니다.

사전 처리가 완료된 이후 훈련을 위해 이 알고리즘을 호출할 수 있으며, 이 알고리즘에는 다음 3가지 채널이 필요합니다.

  • train: 훈련 데이터(예: 사전 처리 스크립트에 의해 생성된 train.rec 파일)가 포함되어 있어야 합니다.

  • validation: 검증 데이터(예: 사전 처리 스크립트에 의해 생성된 val.rec 파일)가 포함되어 있어야 합니다.

  • vocab: 2개의 어휘 파일(vocab.src.jsonvocab.trg.json)이 포함되어 있어야 합니다.

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

추론

호스팅 엔드포인트의 경우 추론은 두 가지 데이터 형식을 지원합니다. 공백으로 구분된 텍스트 토큰을 사용하여 추론을 수행하려면 application/json 형식을 사용합니다. 그렇지 않은 경우 recordio-protobuf 형식을 사용하여 정수 인코딩된 데이터로 작업합니다. 두 모드는 입력 데이터의 일괄 처리를 지원합니다. 또한 application/json 형식을 사용하면 주의 매트릭스를 시각화할 수 있습니다.

  • application/json: JSON 형식의 입력을 예상하고 JSON 형식의 출력을 반환합니다. 콘텐츠 및 허용 유형은 application/json이어야 합니다. 각 시퀀스는 공백으로 구분된 토큰이 포함된 문자열로 예상됩니다. 이 형식은 배치의 소스 시퀀스 수가 적을 때 권장됩니다. 또한 다음 추가 구성 옵션을 지원합니다.

    configuration: {attention_matrix: true}: 특정 입력 시퀀스에 대한 주목 매트릭스를 반환합니다.

  • 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 샘플 노트북 섹션을 참조하세요.

Sequence-to-Sequence 알고리즘에 대한 EC2 인스턴스 권장 사항

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

Sequence-to-Sequence 샘플 노트북

SageMaker AI Sequence to Sequence 알고리즘을 사용하여 영어-독일어 번역 모델을 훈련하는 방법을 보여주는 샘플 노트북은 SageMaker AI Seq2Seq를 사용한 기계 번역 영어-독일어 예제를 참조하세요. SageMaker AI에서 예제를 실행하는 데 사용할 수 있는 Jupyter 노트북 인스턴스를 생성하고 액세스하는 방법에 대한 지침은 섹션을 참조하세요Amazon SageMaker 노트북 인스턴스. 노트북 인스턴스를 생성하고 연 후 SageMaker AI 예제 탭을 선택하여 모든 SageMaker AI 샘플 목록을 확인합니다. NTM 알고리즘을 사용하는 주제 모델링 예제 노트북은 Introduction to Amazon algorithms(Amazon 알고리즘 소개) 섹션에 있습니다. 노트북을 열려면 사용 탭을 클릭하고 사본 생성을 선택합니다.