本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立自訂語言模型
在建立自訂語言模型之前,您必須:
-
準備資料。數據必須以純文本格式保存,並且不能包含任何特殊字符。
-
將您的資料上傳至Amazon S3值區。建議為訓練和調整資料建立個別的資料夾。
-
確保Amazon Transcribe可以訪問您的存Amazon S3儲桶。您必須指定具有存取權限的IAM角色才能使用您的資料。
準備資料
您可以將所有數據編譯在一個文件中,也可以將其另存為多個文件。請注意,如果您選擇包括調整資料,則必須將其儲存在與訓練資料不同的檔案中。
無論您使用多少文本文件進行培訓或調整數據都沒關係。上傳一個包含 100,000 個字詞的文件,結果與上傳 10 個文件(含 10,000 個字)相同的結果。以最方便的方式準備文字資料。
請確定您的所有資料檔符合以下條件:
-
它們都使用與您要創建的模型相同的語言。例如,如果您想要建立以美式英文 (
en-US
) 轉錄音訊的自訂語言模型,則所有文字資料都必須使用美式英文。 -
它們採用 UTF-8 編碼的純文本格式。
-
它們不包含任何特殊字符或格式,例如 HTML 標記。
-
訓練資料的合併大小上限為 2 GB,而調整資料的最大大小為 200 MB。
若未符合這些條件,您的模型將失敗。
上傳您的資料
上傳資料之前,請先為訓練資料建立新資料夾。如果使用調整資料,請建立另一個獨立的資料夾
您的存儲桶的 URI 可能如下所示:
-
s3://DOC-EXAMPLE-BUCKET/my-model-training-data/
-
s3://DOC-EXAMPLE-BUCKET/my-model-tuning-data/
將您的訓練和調整資料上傳至適當的值區。
您可以稍後將更多資料新增至這些值區。但是,如果這樣做,則需要使用新資料重新建立模型。現有模型無法使用新數據進行更新。
允許存取您的資料
若要建立自訂語言模型,您必須指定具有存取Amazon S3值區之權限的IAM角色。如果您尚未擁有可存取放置訓練資料之Amazon S3值區的角色,則必須建立一個角色。建立角色之後,您可以附加原則以授與該角色權限。請勿將政策連接至使用者。
如需取得範例政策,請參閱 Amazon Transcribe 身分型政策範例。
若要瞭解如何建立新IAM身分,請參閱IAM身分識別 (使用者、使用者群組和角色)。
若要進一步了解政策,請參閱:
建立您的自訂語言模型
建立自訂語言模型時,您必須選擇基礎模型。有兩種基本模型選項:
-
NarrowBand
:針對取樣率小於 16,000 Hz 的音訊使用此選項。此模型類型通常用於以 8,000 赫茲記錄的電話對話。 -
WideBand
:針對取樣率大於或等於 16,000 Hz 的音訊使用此選項。
您可以使用AWS Management Console、AWS CLI或 AWS SDK 建立自訂語言模型。請參閱下列範例:
-
在導覽窗格中,選擇自訂語言模型。這會開啟 [自訂語言模型] 頁面,您可以在其中檢視現有的自訂語言模型或訓練新的自訂語言模型。
-
若要訓練新模型,請選取訓練模型。
這將帶您進入「火車模型」頁面。新增名稱、指定語言,然後選擇您要用於模型的基礎模型。然後,將路徑新增至訓練,並加入您的調整資料 (選擇性)。您必須包含具有存取資料之權限的IAM角色。
-
完成所有欄位後,請選取頁面底部的 [訓練模型]。
此範例使用create-language-modelCreateLanguageModel
及 LanguageModel
。
aws transcribe create-language-model \ --base-model-name
NarrowBand
\ --model-namemy-first-language-model
\ --input-data-config S3Uri=s3://DOC-EXAMPLE-BUCKET
/my-clm-training-data
/,TuningDataS3Uri=s3://DOC-EXAMPLE-BUCKET
/my-clm-tuning-data
/,DataAccessRoleArn=arn:aws:iam::111122223333
:role/ExampleRole
\ --language-codeen-US
下面是另一個使用create-language-model
aws transcribe create-language-model \ --cli-input-json file://
filepath
/my-first-language-model
.json
該文件 my-first-language-model.json 包含以下請求主體。
{ "BaseModelName": "
NarrowBand
", "ModelName": "my-first-language-model
", "InputDataConfig": { "S3Uri": "s3://DOC-EXAMPLE-BUCKET
/my-clm-training-data
/", "TuningDataS3Uri"="s3://DOC-EXAMPLE-BUCKET
/my-clm-tuning-data
/", "DataAccessRoleArn": "arn:aws:iam::111122223333
:role/ExampleRole
" }, "LanguageCode": "en-US
" }
這個範例會使用建AWS SDK for Python (Boto3)立 CLM,使用建立CreateLanguageModel
及 LanguageModel
。
如需使用 AWS SDK 的其他範例,包括特定功能、案例和跨服務範例,請參閱本章。使用 Amazon Transcribe 的程式碼範例 AWS SDKs
from __future__ import print_function import time import boto3 transcribe = boto3.client('transcribe', '
us-west-2
') model_name = 'my-first-language-model
', transcribe.create_language_model( LanguageCode = 'en-US
', BaseModelName = 'NarrowBand
', ModelName = model_name, InputDataConfig = { 'S3Uri':'s3://DOC-EXAMPLE-BUCKET
/my-clm-training-data
/', 'TuningDataS3Uri':'s3://DOC-EXAMPLE-BUCKET
/my-clm-tuning-data
/', 'DataAccessRoleArn':'arn:aws:iam::111122223333
:role/ExampleRole
' } ) while True: status = transcribe.get_language_model(ModelName = model_name) if status['LanguageModel']['ModelStatus'] in ['COMPLETED', 'FAILED']: break print("Not ready yet...") time.sleep(5) print(status)
更新您的自訂語言模型
Amazon Transcribe不斷更新可用於自訂語言模型的基礎模型。為了從這些更新中受益,我們建議每 6 到 12 個月訓練一次新的自訂語言模型。
若要查看您的自訂語言模型是否使用最新的基礎模型,DescribeLanguageModel
請使用AWS CLI或 AWS SDK 執行要求,然後在回應中尋找UpgradeAvailability
欄位。
如果UpgradeAvailability
是true
,則表示您的模型未執行最新版本的基礎模型。若要在自訂語言模型中使用最新的基礎模型,您必須建立新的自訂語言模型。自訂語言模型無法升級。