このチュートリアルでは、AutoML Translation を使用してカスタム翻訳モデルを作成する方法を説明します。このアプリケーションでは、ソフトウェアのローカライゼーションから取得した、技術に関する英語からスペイン語への文のペアのデータセットを使用して、カスタムモデルをトレーニングします。
このチュートリアルでは、カスタムモデルのトレーニング、パフォーマンスの評価、新しいコンテンツの翻訳について説明します。
要件
プロジェクトの環境を構成する
- Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Google Cloud プロジェクトの課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。
-
AutoML Translation API を有効にします。
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Google Cloud プロジェクトの課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。
-
AutoML Translation API を有効にします。
- Google Cloud CLI をインストールします。
- 手順に沿ってサービス アカウントを作成し、鍵ファイルをダウンロードします。
GOOGLE_APPLICATION_CREDENTIALS
環境変数を、サービス アカウントの作成時にダウンロードしたサービス アカウントの鍵ファイルのパスに設定します。次に例を示します。export GOOGLE_APPLICATION_CREDENTIALS=key-file
- 次のコマンドを使用して、新しいサービス アカウントを AutoML 編集者の IAM 役割に追加します。project-id を実際の Google Cloud プロジェクトの名前に置き換え、service-account-name を新しいサービス アカウントの名前に置き換えます。たとえば、
service-account1@myproject.iam.gserviceaccount.com
です。gcloud auth login gcloud config set project project-id gcloud projects add-iam-policy-binding project-id \ --member=serviceAccount:service-account-name \ --role='roles/automl.editor'
- AutoML Translation サービス アカウントが使用する Google Cloud プロジェクトのリソースにアクセスできるようにします。
gcloud projects add-iam-policy-binding project-id \ --member="serviceAccount:service-project-number@gcp-sa-automl.iam.gserviceaccount.com" \ --role="roles/automl.serviceAgent"
- クライアント ライブラリをインストールします。
- PROJECT_ID および REGION_NAME 環境変数を設定します。
project-id は、Google Cloud プロジェクトの プロジェクト ID に置き換えます。現在、AutoML Translation にはロケーションとしてus-central1
を指定する必要があります。export PROJECT_ID="project-id" export REGION_NAME="us-central1"
- カスタムモデルのトレーニングに使用するドキュメントを保存する Google Cloud Storage バケットを作成します。
バケット名の形式は、$PROJECT_ID-vcm
にする必要があります。次のコマンドによって、$PROJECT_ID-vcm
という名前のus-central1
リージョンにストレージ バケットが作成されます。gsutil mb -p $PROJECT_ID -c regional -l $REGION_NAME gs://$PROJECT_ID-vcm/
-
モデルのトレーニングに使用するサンプルデータを含むアーカイブ ファイルをダウンロードし、そのコンテンツを抽出してファイルを Google Cloud Storage バケットにアップロードします。
形式の詳細については、トレーニング データの準備をご覧ください。このチュートリアルのサンプルコードでは、英語からスペイン語へのデータセットを使用しています。ターゲット言語がドイツ語、フランス語、ロシア語、中国語のデータセットも用意されています。これらの代替データセットのいずれかを使用する場合は、サンプルの言語コード
es
を適切な言語コードに置き換えます。 - 前のステップの
en-es.csv
ファイルで、{project_id}
をプロジェクトのプロジェクト ID に置き換えます。
ソースコード ファイルの場所
ソースコードは以下の場所からダウンロードできます。ダウンロードした後、ソースコードを Google Cloud プロジェクト フォルダにコピーできます。
Python
このチュートリアルは、次の Python ファイルで構成されています。
translate_create_dataset.py
– データセットを作成するための関数が含まれていますimport_dataset.py
– データセットをインポートするための関数が含まれていますtranslate_create_model.py
- モデルを作成するための関数が含まれていますlist_model_evaluations.py
- モデル評価を一覧表示するための関数が含まれていますtranslate_predict.py
- 予測に関連する関数が含まれていますdelete_model.py
- モデルを削除するための関数が含まれています
Java
このチュートリアルは、次の Java ファイルで構成されています。
TranslateCreateDataset.java
– データセットを作成するための関数が含まれていますImportDataset.java
– データセットをインポートするための関数が含まれていますTranslateCreateModel.java
- モデルを作成するための関数が含まれていますListModelEvaluations.java
- モデル評価を一覧表示するための関数が含まれていますTranslatePredict.java
- 予測に関連する関数が含まれていますDeleteModel.java
- モデルを削除するための関数が含まれています
Node.js
このチュートリアルは、次の Node.js プログラムで構成されています。
translate_create_dataset.js
– データセットを作成するための関数が含まれていますimport_dataset.js
– データセットをインポートするための関数が含まれていますtranslate_create_model.js
- モデルを作成するための関数が含まれていますlist_model_evaluations.js
- モデル評価を一覧表示するための関数が含まれていますtranslate_predict.js
- 予測に関連する関数が含まれていますdelete_model.js
- モデルを削除するための関数が含まれています
アプリケーションの実行
ステップ 1: データセットを作成する
カスタムモデルを作成するには、まず空のデータセットを作成します。作成したデータセットには、最終的にそのモデルのトレーニング データが格納されます。データセットの作成時には、翻訳のソース言語とターゲット言語を指定します。
コードをコピーする
Python
AutoML Translation 用のクライアント ライブラリをインストールして使用する方法については、AutoML Translation クライアント ライブラリをご覧ください。詳細については、AutoML Translation Python API のリファレンス ドキュメントをご覧ください。
AutoML Translation で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
AutoML Translation 用のクライアント ライブラリをインストールして使用する方法については、AutoML Translation クライアント ライブラリをご覧ください。詳細については、AutoML Translation Java API のリファレンス ドキュメントをご覧ください。
AutoML Translation で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
AutoML Translation 用のクライアント ライブラリをインストールして使用する方法については、AutoML Translation クライアント ライブラリをご覧ください。詳細については、AutoML Translation Node.js API のリファレンス ドキュメントをご覧ください。
AutoML Translation で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
リクエスト
create_dataset
関数を実行して、空のデータセットを作成します。次のコード行を変更する必要があります。
project_id
を実際の PROJECT_ID に設定します- データセット(
en_es_dataset
)のdisplay_name
を設定します target_language_code
フィールドをja
からes
に変更します
Python
python translate_create_dataset.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.TranslateCreateDataset"
Node.js
node translate_create_dataset.js
レスポンス
レスポンスには、新しく作成されたデータセットの詳細が格納されます。その詳細に、今後のリクエストでデータセットを参照するために使用するデータセット ID が含まれています。環境変数 DATASET_ID
を、レスポンスで返されたデータセット ID の値に設定することをおすすめします。
Dataset name: projects/216065747626/locations/us-central1/datasets/TRL7372141011130533778 Dataset id: TRL7372141011130533778 Dataset display name: en_es_dataset Translation dataset Metadata: source_language_code: en target_language_code: es Dataset example count: 0 Dataset create time: seconds: 1530251987 nanos: 216586000
ステップ 2: データセットにトレーニング用のセンテンスペアをインポートする
次のステップとして、トレーニング用の文のペアのリストをデータセットに入力します。
import_dataset
関数インターフェースは、すべてのトレーニング用ドキュメントの場所と各トレーニング用ドキュメントの適切なラベルをリストした .csv ファイルを入力として受け取ります(必要な形式について詳しくは、データの準備をご覧ください)。このチュートリアルでは、上記で Google Cloud Storage にアップロードした en-es.csv
を使用します。
コードをコピーする
Python
AutoML Translation 用のクライアント ライブラリをインストールして使用する方法については、AutoML Translation クライアント ライブラリをご覧ください。詳細については、AutoML Translation Python API のリファレンス ドキュメントをご覧ください。
AutoML Translation で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
AutoML Translation 用のクライアント ライブラリをインストールして使用する方法については、AutoML Translation クライアント ライブラリをご覧ください。詳細については、AutoML Translation Java API のリファレンス ドキュメントをご覧ください。
AutoML Translation で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
AutoML Translation 用のクライアント ライブラリをインストールして使用する方法については、AutoML Translation クライアント ライブラリをご覧ください。詳細については、AutoML Translation Node.js API のリファレンス ドキュメントをご覧ください。
AutoML Translation で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
リクエスト
import_data
関数を実行してトレーニング コンテンツをインポートします。次のコード行を変更する必要があります。
project_id
を実際の PROJECT_ID に設定します- データセットの
dataset_id
を設定します(前のステップの出力から取得) (
gs://YOUR_PROJECT_ID-vcm/en-es.csv
)の URI であるpath
を設定します
Python
python import_dataset.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.ImportDataset"
Node.js
node import_dataset.js
レスポンス
Processing import... Dataset imported.
ステップ 3: モデルを作成(トレーニング)する
ラベル付きトレーニング用ドキュメントのデータセットが作成されたので、新しいモデルをトレーニングできます。
コードをコピーする
Python
AutoML Translation 用のクライアント ライブラリをインストールして使用する方法については、AutoML Translation クライアント ライブラリをご覧ください。詳細については、AutoML Translation Python API のリファレンス ドキュメントをご覧ください。
AutoML Translation で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
AutoML Translation 用のクライアント ライブラリをインストールして使用する方法については、AutoML Translation クライアント ライブラリをご覧ください。詳細については、AutoML Translation Java API のリファレンス ドキュメントをご覧ください。
AutoML Translation で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
AutoML Translation 用のクライアント ライブラリをインストールして使用する方法については、AutoML Translation クライアント ライブラリをご覧ください。詳細については、AutoML Translation Node.js API のリファレンス ドキュメントをご覧ください。
AutoML Translation で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
リクエスト
create_model
を実行するには、次のコード行を変更する必要があります。
project_id
を実際の PROJECT_ID に設定します- データセットの
dataset_id
を設定します(前のステップの出力から取得) 新しいモデル(en_es_test_model)の
display_name
を設定します
Python
python translate_create_model.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.TranlateCreateModel"
Node.js
node translate_create_model.js
レスポンス
create_model
関数はトレーニング オペレーションを開始し、オペレーション名を出力します。トレーニングは非同期で行われ、完了するまでに時間がかかることがあります。オペレーション ID を使用すると、トレーニング ステータスを確認できます。トレーニングが完了したら、create_model
によってモデル ID が返されます。データセット ID の場合と同様に、返されたモデル ID に環境変数 MODEL_ID
を設定することもできます。
Training operation name: projects/216065747626/locations/us-central1/operations/TRL3007727620979824033 Training started... Model name: projects/216065747626/locations/us-central1/models/TRL3007727620979824033 Model id: TRL3007727620979824033 Model display name: en_es_test_model Model create time: seconds: 1529649600 nanos: 966000000 Model deployment state: deployed
ステップ 4: モデルを評価する
トレーニングが終了したら、モデルの BLEU スコアを確認することでモデルの準備状況を評価できます。
list_model_evaluations
関数はモデル ID をパラメータとして取得します。
コードをコピーする
Python
AutoML Translation 用のクライアント ライブラリをインストールして使用する方法については、AutoML Translation クライアント ライブラリをご覧ください。詳細については、AutoML Translation Python API のリファレンス ドキュメントをご覧ください。
AutoML Translation で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
AutoML Translation 用のクライアント ライブラリをインストールして使用する方法については、AutoML Translation クライアント ライブラリをご覧ください。詳細については、AutoML Translation Java API のリファレンス ドキュメントをご覧ください。
AutoML Translation で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
AutoML Translation 用のクライアント ライブラリをインストールして使用する方法については、AutoML Translation クライアント ライブラリをご覧ください。詳細については、AutoML Translation Node.js API のリファレンス ドキュメントをご覧ください。
AutoML Translation で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
リクエスト
次のリクエストを実行して、モデルの全体的な評価パフォーマンスを表示するリクエストを行います。次のコード行を変更する必要があります。
project_id
を実際の PROJECT_ID に設定しますmodel_id
をモデル ID に設定します
Python
python list_model_evaluations.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.ListModelEvaluations"
Node.js
node list_model_evaluations.js
レスポンス
BLEU スコアが低すぎる場合は、トレーニング データセットを強化してモデルを再トレーニングできます。詳細については、モデルの評価をご覧ください。
List of model evaluations: name: "projects/216065747626/locations/us-central1/models/5419131644870929143/modelEvaluations/TRL7683346839371803263" create_time { seconds: 1530196488 nanos: 509247000 } evaluated_example_count: 3 translation_evaluation_metrics { bleu_score: 19.23076957464218 base_bleu_score: 11.428571492433548 }
ステップ 5: モデルを使用して予測する
カスタムモデルが品質基準を満たしている場合は、このモデルを新しいコンテンツの翻訳に使用できます。
コードをコピーする
Python
AutoML Translation 用のクライアント ライブラリをインストールして使用する方法については、AutoML Translation クライアント ライブラリをご覧ください。詳細については、AutoML Translation Python API のリファレンス ドキュメントをご覧ください。
AutoML Translation で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
AutoML Translation 用のクライアント ライブラリをインストールして使用する方法については、AutoML Translation クライアント ライブラリをご覧ください。詳細については、AutoML Translation Java API のリファレンス ドキュメントをご覧ください。
AutoML Translation で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
AutoML Translation 用のクライアント ライブラリをインストールして使用する方法については、AutoML Translation クライアント ライブラリをご覧ください。詳細については、AutoML Translation Node.js API のリファレンス ドキュメントをご覧ください。
AutoML Translation で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
リクエスト
predict
関数では、次のコード行を変更する必要があります。
project_id
を実際の PROJECT_ID に設定しますmodel_id
をモデル ID に設定しますダウンロードしたファイル(resources/input.txt)に
file_path
を設定します
Python
python tranlsate_predict.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.TranslatePredict"
Node.js
node translate_predict.js predict
レスポンス
この関数は、翻訳後のコンテンツを返します。
Translated content: Ver y administrar tus cuentas de Google Tag Manager.
上記は、「View and manage your Google Tag Manager accounts.」という英文のスペイン語訳です。このカスタム翻訳と、基本的な Google モデルの翻訳を比較します。
Ver y administrar sus cuentas de Administrador de etiquetas de Google
ステップ 6: モデルを削除する
サンプルモデルの使用が終わったら、モデルを完全に削除できます。削除したモデルは、予測に使用できなくなります。
コードをコピーする
Python
AutoML Translation 用のクライアント ライブラリをインストールして使用する方法については、AutoML Translation クライアント ライブラリをご覧ください。詳細については、AutoML Translation Python API のリファレンス ドキュメントをご覧ください。
AutoML Translation で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
AutoML Translation 用のクライアント ライブラリをインストールして使用する方法については、AutoML Translation クライアント ライブラリをご覧ください。詳細については、AutoML Translation Java API のリファレンス ドキュメントをご覧ください。
AutoML Translation で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
AutoML Translation 用のクライアント ライブラリをインストールして使用する方法については、AutoML Translation クライアント ライブラリをご覧ください。詳細については、AutoML Translation Node.js API のリファレンス ドキュメントをご覧ください。
AutoML Translation で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
リクエスト
オペレーション タイプ delete_model
でリクエストを作成し、作成したモデルを削除します。次のコード行を変更する必要があります。
project_id
を実際の PROJECT_ID に設定しますmodel_id
をモデル ID に設定します
Python
python delete_model.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.DeleteModel"
Node.js
node delete_model.js
レスポンス
Model deleted.