序列對序列演算法 - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

序列對序列演算法

Amazon SageMaker 序列是一種受監督的學習演算法,其中輸入是一系列令牌 (例如文字、音訊),而產生的輸出則是另一個令牌序列。應用程序示例包括:機器翻譯(從一種語言輸入句子並預測該句子用另一種語言將是什麼),文本摘要(輸入更長的單詞串並預測一個較短的字符串,即摘要), speech-to-text (音頻剪輯轉換為令牌中的輸出句子)。最近在此網域中的問題已成功使用深度神經網路來建立模型,展現較過去的方法更顯著的效能提升成果。Amazon SageMaker seq2seq 使用遞歸神經網絡(RNN)和卷積神經網絡(CNN)模型,並將其視為編碼器-解碼器架構。

序列對序列演算法的輸入/輸出界面

訓練

SageMaker seq2seq 期望以記錄協議格式的數據。但是,字符則應為整數,不應為平常使用的浮點數。

將字符化文字檔案中的資料轉換到 protobuf 格式的指令碼已隨附於 seq2seq 範例筆記本中。一般而言,它會將資料封裝為 32 位元的整數張量 (tensor) 並產生指標計算與推論所需的必要字彙檔案。

預先處理完成後,便可以呼叫演算法進行訓練。演算法預期會接受三個通道:

  • train:應包含培訓資料 (例如,由預先處理指令碼生成的 train.rec 檔案)。

  • validation:應包含驗證資料 (例如,由預先處理指令碼生成的 val.rec 檔案)。

  • vocab:應包含兩個詞彙檔案 (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"}

如需如何序列化和還原序列化輸入及輸出至特定格式,以用於推論的額外詳細資訊,請參閱 序列對序列範例筆記本

序列對序列演算法的 EC2 執行個體建議事項

Amazon SageMaker seq2seq 演算法僅支援 GPU 執行個體類型,而且只能在單一機器上進行訓練。不過,您可以將執行個體與多個 GPU 搭配使用。seq2seq 演算法可支援 P2、P3、G4dn 和 G5 GPU 執行個體系列。

序列對序列範例筆記本

如需示範如何使用「 SageMaker 序列對序列」演算法訓練英德翻譯模型的範例筆記本,請參閱使 SageMaker 用 Seq2Seq 的機器翻譯英文-德文範例。如需如何建立及存取可用來執行中範例的 Jupyter 筆記本執行個體的指示 SageMaker,請參閱。Amazon SageMaker 筆記本實建立筆記本執行個體並開啟之後,請選取 [SageMaker範例] 索引標籤以查看所有 SageMaker 範例的清單。使用 NTM 演算法模組化範例筆記本的主題位於 Amazon 演算法簡介一節。若要開啟筆記本,請按一下其使用標籤,然後選取建立複本