カスタム言語モデルの作成 - Amazon Transcribe

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

カスタム言語モデルの作成

カスタム言語モデルを作成したい場合、次のことを行う必要があります。

  • データを準備する。データはプレーンテキスト形式で保存する必要があり、特殊文字を含めることはできません。

  • Amazon S3データをバケットにアップロードします。トレーニングデータとチューニングデータ用に別々のフォルダーを作成することをお勧めします。

  • Amazon S3バケットにアクセスできることを確認してくださいAmazon Transcribe。データを使用するには、IAMアクセス権限を持つロールを指定する必要があります。

データを準備する

すべてのデータを 1 つのファイルにまとめることも、複数のファイルとして保存することもできます。チューニングデータを含める場合は、トレーニングデータとは別のファイルに保存する必要があることに注意してください。

トレーニングやチューニングデータに使用するテキストファイルの数は関係ありません。100,000 ワードのファイルを 1 つアップロードすると、10,000 ワードのファイルを 10 個アップロードしたときと同じ結果になります。都合の良い方法でテキストデータを準備してください。

すべてのデータファイルが次の基準を満たすことを確認してください。

  • これらはすべて、作成したいモデルと同じ言語であるか。例えば、米国英語 (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/

トレーニングとチューニングのデータを適切なバケットにアップロードします。

後日、これらのバケットにさらにデータを追加できます。ただし、その場合は、新しいデータを使用してモデルを再作成する必要があります。既存のモデルを新しいデータで更新することはできません。

データへのアクセスを許可する

カスタム言語モデルを作成するには、IAMAmazon S3バケットにアクセスするアクセス許可を持つロールを指定する必要があります。Amazon S3トレーニングデータを置いたバケットにアクセスできるロールをまだ持っていない場合は、ロールを作成してください。ロールを作成した後、ポリシーをアタッチして、ロールにアクセス許可を付与できます。ポリシーをユーザーにアタッチしないでください。

エンドポイントポリシーの例については、Amazon Transcribe ID ベースのポリシーの例を参照してください。

新しい IAM ID を作成する方法については、「IAMID (ユーザー、ユーザーグループ、ロール)」を参照してください。

ポリシーの詳細については、次の情報を参照してください。

カスタム言語モデルの作成

カスタム言語モデルを作成するときは、基本モデルを選択する必要があります。2 つのベースモデルのオプションがあります。

  • NarrowBand: サンプルレートが 16,000 Hz 未満の音声にこのオプションを使用します。このモデルタイプは、通常 8,000 Hz で録音された電話での会話に使用されます。

  • WideBand: サンプルレートが 16,000 Hz 以上の音声にこのオプションを使用します。

AWS Management Console、AWS CLIまたは AWS SDK を使用してカスタム言語モデルを作成できます。次の例を参照してください。

  1. AWS Management Console にサインインします。

  2. ナビゲーションペインで [カスタム言語モデル] を選択します。カスタム言語モデルのページが開き、既存のカスタム言語モデルを表示したり、新しいカスタム言語モデルをトレーニングしたりできます。

  3. 新しいモデルをトレーニングするには、モデルのトレーニングを選択します。

    Amazon Transcribeコンソールのスクリーンショット:「カスタム言語モデル」ページ。

    列車のモデルページに移動します。名前を追加し、言語を指定して、モデルに必要な基本モデルを選択します。次に、トレーニングへのパスと、オプションでチューニングデータを追加します。IAMデータにアクセスする権限を持つロールを含める必要があります。

    Amazon Transcribeコンソールのスクリーンショット:「鉄道模型」ページ。
  4. すべてのフィールドを完了したら、モデルのトレーニングを選択します。

この例では、create-language-modelコマンドを使用しています。詳細については、CreateLanguageModelおよびLanguageModelを参照してください。

aws transcribe create-language-model \ --base-model-name NarrowBand \ --model-name my-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-code en-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) を使用して create_language_model メソッドで 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 か月ごとに新しいカスタム言語モデルをトレーニングすることをお勧めします。

カスタム言語モデルが最新のベースモデルを使用しているかどうかを確認するには、AWS CLIまたは AWS SDK DescribeLanguageModelを使用してリクエストを実行し、UpgradeAvailabilityレスポンス内のフィールドを探します。

UpgradeAvailabilityそうである場合true、モデルで最新バージョンのベースモデルが実行されていないことになります。カスタム言語モデルで最新のベースモデルを使用するには、カスタム言語モデルを新規に作成する必要があります。カスタム言語モデルはアップグレードできません。