適応型翻訳をリクエストする

適応型翻訳をリクエストするときに、翻訳するテキストと、Cloud Translation がレスポンスの調整に使用する翻訳例を指定します。

プログラムによる翻訳リクエストの場合、データセットに翻訳サンプルを含めるか、翻訳リクエストの一部として翻訳サンプルを含めることができます。データセットを使用する場合、Cloud Translation は原文と最も類似する 5 つの参照文を自動的に選択して翻訳をカスタマイズします。翻訳リクエストに参照文を含める場合、Cloud Translation はすべての参照文を使用して翻訳をカスタマイズします。

始める前に

適応型翻訳を使用するには、プロジェクトで Cloud Translation API を有効にして、認証を設定する必要があります。詳細については、Cloud Translation の設定をご覧ください。

また、ソースとターゲットの言語が適応型翻訳でサポートされていることも確認します。

データの要件と推奨事項

データセットを作成するか、Google Cloud コンソールを使用する場合は、TSV ファイルまたは TMX ファイルで翻訳サンプルを指定する必要があります。サンプルは、目的の原文の言語と翻訳する言語のセンテンスペアにする必要があります。該当分野の語彙、用法、文法上の特性を網羅した例を提示することをおすすめします。その他のヒントについては、AutoML Translation ドキュメントのデータの準備をご覧ください。

データに含まれるセンテンスペアは 5 個以上で、コンソールを使用する場合は 10,000 個以下、API を使用する場合は 30,000 個以下である必要があります。セグメントペアの最大文字数は 512 文字(合計)です。

制限事項

  • 翻訳できるのは、書式なしテキストに限られます。
  • 一度に翻訳できる原文の言語は 1 つのみです。
  • 適応型翻訳では、入力と出力の文字数に上限があります。詳細については、[割り当て] ページで適応型翻訳の上限をご覧ください。

翻訳をリクエストする

コンソール

Google Cloud コンソールを使用する場合は、翻訳サンプルを含むファイルを選択し、翻訳をリクエストします。インポートしたデータは Cloud Translation に保存されません。永続的なデータセットを操作する場合は API を使用します。

  1. AutoML Translation のコンソールに移動します。

    [適応型翻訳] ページに移動

  2. 翻訳サンプルを含むローカル ファイルまたは Cloud Storage 内のファイルを選択します。

    ファイルを選択すると、Cloud Translation がデータに応じて [ソース言語] フィールドと [ターゲット言語] フィールドを設定します。たとえば、英語からポルトガル語への翻訳データセットをインポートする場合、コンソールでは英語のセンテンスをポルトガル語に翻訳できます。

  3. ソース言語のフィールドにテキストを入力します。

    適応型変換では、入力と出力の文字数に上限があります。詳細については、[割り当て] ページで適応型翻訳の制限をご覧ください。

  4. パラメータを調整するには、スライダーまたはテキスト フィールドを使用して値を設定します。

    • temperature - トークン選択のランダム性の度合いを制御します。temperature を低くすると、正しいレスポンスや適切なレスポンスになる可能性があります。temperature を高くすると、ばらつきの大きい結果や想定外の結果になる可能性があります。
    • サンプル数 - LLM に対するプロンプトでソースデータから使用するサンプルの数を設定します。
  5. デフォルトの Google NMT モデルからの翻訳と適応型翻訳の出力を含めるには、[NMT モデルとの比較] を選択します。

  6. [翻訳] をクリックします。

    しばらくすると、Cloud Translation からターゲット言語のフィールドにレスポンスが返されます。Cloud Translation は、出力文字数の上限を超えるテキストを返しません。

API

API を使用して、参照センテンスペアを含めるかデータセットを指定して、適応型翻訳をリクエストします。

参照センテンスペアを使用した適応型翻訳

翻訳リクエストの一部として翻訳サンプルを含めるには、referenceSentenceConfig オブジェクトの一部である referenceSentencePairs フィールドに原文と翻訳する言語のサンプルペアを含めます。詳細については、adaptiveMtTranslate メソッドをご覧ください。最大 5 つのセンテンスペアを含めることができます。

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_NUMBER_OR_ID: Google Cloud プロジェクトの数字または英数字の ID。
  • LOCATION: 翻訳リクエストが処理されるリージョン(us-central1 など)。
  • REFERENCE_SOURCE: 参照センテンスペアの一部である原文の言語の文。
  • REFERENCE_TARGET: 参照センテンスペアの一部である翻訳する言語の文。
  • SOURCE_LANGUAGE: 原文テキストの言語コード
  • TARGET_LANGUAGE: 原文テキストの翻訳先言語の言語コード
  • SOURCE_TEXT: 翻訳するテキスト。

HTTP メソッドと URL:

POST https://translation.googleapis.com/v3/projects/PROJECT_ID/locations/LOCATION:adaptiveMtTranslate

リクエストの本文(JSON):

{
  "referenceSentenceConfig": {
    "referenceSentencePairLists": [
      {
        "referenceSentencePairs": [{
          "sourceSentence": REFERENCE_SOURCE_1_1,
          "targetSentence": REFERENCE_TARGET_1_1
        },
        {
          "sourceSentence": REFERENCE_SOURCE_1_2,
          "targetSentence": REFERENCE_SOURCE_1_2
        }]
      }
    ],
    "sourceLanguageCode": SOURCE_LANGUAGE,
    "targetLanguageCode": TARGET_LANGUAGE
  }
  "content": ["SOURCE_TEXT"]
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "translations": [
    {
      "translatedText": "TRANSLATED_TEXT"
    }
  ],
  "languageCode": "TARGET_LANGUAGE"
}

Java

このサンプルを試す前に、クライアント ライブラリを使用して Cloud Translation クイックスタートにある Java の設定手順を完了してください。 詳細については、Cloud Translation Java API リファレンス ドキュメントをご覧ください。

Cloud Translation に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

/** Translates using AdaptiveMt. */
private static void adaptiveMtTranslate(
    TranslationServiceClient translationServiceClient, String projectId, String sourceLang, String targetLang, Pair<String, String> referencePairs) {
  ReferenceSentencePairList refList = ReferenceSentencePairList.newBuilder();
  for (Pair<String, String> referencePair: referencePairs) {
    ReferenceSentencePair refPair = ReferenceSentencePair.newBuilder()
      .setSourceSentence(referencePair.getKey())
      .setTargetSentence(referencePair.getValue());
    refList.addReferenceSentencePair(refPair);
  }
  AdaptiveMtTranslateRequest request =
      AdaptiveMtTranslateRequest.newBuilder()
          .setParent(LocationName.of(projectId, "us-central1").toString())
          .setSourceLanguageCode(sourceLang)
          .setTargetLanguageCOde(targetLang)
          .addReferenceSentencePairLists(refList)
          .build();
  AdaptiveMtTranslateResponse response = translationServiceClient.adaptiveMtTranslate(request);

  System.out.println("Translating using AdaptiveMt");
  System.out.println(response);
}

Node.js

このサンプルを試す前に、クライアント ライブラリを使用して Cloud Translation クイックスタートにある Node.js の設定手順を完了してください。 詳細については、Cloud Translation Node.js API リファレンス ドキュメントをご覧ください。

Cloud Translation に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

async function translate() {
  const request = {
    parent: `projects/${projectId}/locations/${location}`,
    referenceSentenceConfig: {
      referenceSentencePairLists: [
        {
          referenceSentencePairs: [{
            sourceSentence: 'Sample reference source 1'
            targetSentence: 'Sample reference target 1'
          },
          {
            sourceSentence: 'Sample reference source 2'
            targetSentence: 'Sample reference target 2'
          }]
        }
      ],
      sourceLanguageCode: 'en'
      targetLanguageCode: 'ja'
    },
    content: ['Sample translate query']
  } const [response] = await translationClient.adaptiveMtTranslate(request)
  console.log('Translating')
  console.log(response)
}

Python

このサンプルを試す前に、クライアント ライブラリを使用して Cloud Translation クイックスタートにある Python の設定手順を完了してください。 詳細については、Cloud Translation Python API リファレンス ドキュメントをご覧ください。

Cloud Translation に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

def adaptive_mt_translate():
  # Create a client
  client = translate.TranslationServiceClient()
  # Initialize the request
  request = translate.AdaptiveMtTranslateRequest(
    parent="projects/PROJECT_ID/locations/LOCATION",
    reference_sentence_config=[
      "reference_sentence_pair_lists": [
        "reference_sentence_pairs": {
          "source_sentence": 'REFERENCE_SOURCE_1_1'
          "target_sentence": 'REFERENCE_TARGET_1_1'
        },
        "reference_sentence_pairs": {
          "source_sentence": 'REFERENCE_SOURCE_1_2'
          "target_sentence": 'REFERENCE_TARGET_1_2'
        }
      ],
      "source_language_code": 'SOURCE_LANGUAGE'
      "target_language_code": 'TARGET_LANGUAGE'
    ],
    content=["SOURCE_TEXT"]
  )
  # Make the request
  response = client.adaptive_mt_translate(request)
  # Handle the response
  print(response)

データセットを使用した適応型翻訳

翻訳でデータセットを使用するには、まずデータセットを作成してセンテンスペアをインポートします。データセットがすでにある場合は、そのデータセットを使用した適応型翻訳をリクエストできます。データセットは、削除するまでプロジェクトに保持されます。

  1. 翻訳サンプルをインポートするデータセットを作成します。

    原文および翻訳する言語は、翻訳で使用する言語と一致する必要があります。詳細については、adaptiveMtDataset.create メソッドをご覧ください。

    REST

    リクエストのデータを使用する前に、次のように置き換えます。

    • PROJECT_NUMBER_OR_ID: Google Cloud プロジェクトの数字または英数字の ID
    • LOCATION: ソース データセットが配置されているリージョン(us-central1 など)。
    • DATASET_ID: データセットの一意の識別子。
    • DISPLAY_NAME: データセットのわかりやすい名前。
    • SOURCE_LANGUAGE: 入力テキストの言語コード。サポートされている言語コードについては、サポートされている言語をご覧ください。
    • TARGET_LANGUAGE: 入力テキストを翻訳する言語。サポートされている言語コードについては、サポートされている言語をご覧ください。

    HTTP メソッドと URL:

    POST https://translation.googleapis.com/v3/projects/PROJECT_ID/locations/LOCATION/adaptiveMtDatasets

    リクエストの本文(JSON):

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/adaptiveMtDatasets/DATASET_ID,
      "display_name": "DISPLAY_NAME",
      "source_language_code": "SOURCE_LANGUAGE",
      "target_language_code": "TARGET_LANGUAGE"
    }
    

    リクエストを送信するには、次のいずれかのオプションを展開します。

    次のような JSON レスポンスが返されます。

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/adaptiveMtDatasets/DATASET_ID",
      "displayName": "DISPLAY_NAME",
      "sourceLanguageCode": "SOURCE_LANGUAGE",
      "targetLanguageCode": "TARGET_LANGUAGE"
    }
    

    Java

    このサンプルを試す前に、クライアント ライブラリを使用して Cloud Translation クイックスタートにある Java の設定手順を完了してください。 詳細については、Cloud Translation Java API リファレンス ドキュメントをご覧ください。

    Cloud Translation に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

    /** Creates an AdaptiveMtDataset. */
    private static void createAdaptiveMtDataset(
        TranslationServiceClient translationServiceClient, String projectName, String datasetName) {
      String adaptiveMtDatasetName =
          String.format(
              "projects/%s/locations/LOCATION/adaptiveMtDatasets/%s", projectName, datasetName);
      AdaptiveMtDataset adaptiveMtDataset =
          AdaptiveMtDataset.newBuilder()
              .setName(adaptiveMtDatasetName)
              .setDisplayName("DATASET_DISPLAY_NAME")
              .setSourceLanguageCode("SOURCE_LANGUAGE_CODE")
              .setTargetLanguageCode("TARGET_LANGUAGE_CODE")
              .build();
      CreateAdaptiveMtDatasetRequest request =
          CreateAdaptiveMtDatasetRequest.newBuilder()
              .setParent(LocationName.of("PROJECT_NAME", "LOCATION").toString())
              .setAdaptiveMtDataset(adaptiveMtDataset)
              .build();
      AdaptiveMtDataset dataset = translationServiceClient.createAdaptiveMtDataset(request);
      System.out.println("Created dataset");
      System.out.println(dataset);
    }
    

    Node.js

    このサンプルを試す前に、クライアント ライブラリを使用して Cloud Translation クイックスタートにある Node.js の設定手順を完了してください。 詳細については、Cloud Translation Node.js API リファレンス ドキュメントをご覧ください。

    Cloud Translation に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

    async function createAdaptiveMtDataset() {
      // Construct request
      const request = {
        parent: `projects/${projectId}/locations/${location}`,
        adaptiveMtDataset: {
          name: `projects/${projectId}/locations/${location}/adaptiveMtDatasets/${
              adaptiveMtDatasetName}`,
          displayName: 'DATASET_DISPLAY_NAME',
          sourceLanguageCode: 'SOURCE_LANGUAGE_CODE',
          targetLanguageCode: 'TARGET_LANGUAGE_CODE',
        }
      };
    
      // Run request
      const [response] = await translationClient.createAdaptiveMtDataset(request);
      console.log('Created')
      console.log(response)
    }
    

    Python

    このサンプルを試す前に、クライアント ライブラリを使用して Cloud Translation クイックスタートにある Python の設定手順を完了してください。 詳細については、Cloud Translation Python API リファレンス ドキュメントをご覧ください。

    Cloud Translation に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

    def create_adaptive_mt_dataset():
      # Create a client
      client = translate.TranslationServiceClient()
      # Initialize request argument(s)
      adaptive_mt_dataset = translate.AdaptiveMtDataset()
      adaptive_mt_dataset.name = "projects/PROJECT_ID/locations/LOCATION/adaptiveMtDatasets/DATASET_ID"
      adaptive_mt_dataset.display_name = "DATASET_DISPLAY_NAME"
      adaptive_mt_dataset.source_language_code = "SOURCE_LANGUAGE_CODE"
      adaptive_mt_dataset.target_language_code = "TARGET_LANGUAGE_CODE"
      request = translate.CreateAdaptiveMtDatasetRequest(
          parent="projects/PROJECT_ID/locations/LOCATION",
          adaptive_mt_dataset=adaptive_mt_dataset,
      )
      # Make the request
      response = client.create_adaptive_mt_dataset(request=request)
      # Handle the response
      print(response)
    

  2. データセットを作成したら、TSV ファイルまたは TMX ファイルから翻訳サンプルを読み込みます。

    1 つのデータセットに複数のファイルからデータをインポートできます。詳細については、adaptiveMtDatasets.importAdaptiveMtFile メソッドをご覧ください。

    REST

    リクエストのデータを使用する前に、次のように置き換えます。

    • PROJECT_NUMBER_OR_ID: Google Cloud プロジェクトの数字または英数字の ID
    • LOCATION: データセットが配置されているリージョン(us-central1 など)。
    • DATASET_ID: データのインポート先であるデータセットの一意の識別子。
    • GCS_FILE_PATH: Cloud Storage のソースデータ ファイルのパス(gs://example/data.tsv など)。

    HTTP メソッドと URL:

    POST https://translation.googleapis.com/v3/projects/PROJECT_ID/locations/LOCATION/adaptiveMtDatasets/DATASET_ID:importAdaptiveMtFile

    リクエストの本文(JSON):

    {
      "gcs_input_source": {
        "input_uri": "GCS_FILE_PATH"
      }
    }
    

    リクエストを送信するには、次のいずれかのオプションを展開します。

    次のような JSON レスポンスが返されます。

    {
      "adaptiveMtFile": {
        "name": "DATASET_NAME",
        "displayName": "FILE_NAME",
        "entryCount": TOTAL_ENTRIES
      }
    }
    

    Java

    このサンプルを試す前に、クライアント ライブラリを使用して Cloud Translation クイックスタートにある Java の設定手順を完了してください。 詳細については、Cloud Translation Java API リファレンス ドキュメントをご覧ください。

    Cloud Translation に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

    /** Imports an AdaptiveMtFile. */
    private static String importAdaptiveMtFile(
        TranslationServiceClient translationServiceClient,
        String projectId,
        String datasetId,
        String gcsUri) {
      String adaptiveMtDatasetName =
          String.format(
              "projects/%s/locations/LOCATION/adaptiveMtDatasets/%s", projectId, datasetId);
      ImportAdaptiveMtFileRequest importAdaptiveMtFileRequest =
          ImportAdaptiveMtFileRequest.newBuilder()
              .setParent(adaptiveMtDatasetName)
              .setGcsInputSource(GcsInputSource.newBuilder().setInputUri(gcsUri).build())
              .build();
      ImportAdaptiveMtFileResponse response =
          translationServiceClient.importAdaptiveMtFile(importAdaptiveMtFileRequest);
    
      System.out.println("Importing file");
      System.out.println(response);
      return response.getAdaptiveMtFile().getName();
    }
    

    Node.js

    このサンプルを試す前に、クライアント ライブラリを使用して Cloud Translation クイックスタートにある Node.js の設定手順を完了してください。 詳細については、Cloud Translation Node.js API リファレンス ドキュメントをご覧ください。

    Cloud Translation に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

    async function importAdaptiveMtFile() {
      const request = {
        parent: `projects/${projectId}/locations/${location}/adaptiveMtDatasets/${
            adaptiveMtDatasetName}`,
        gcsInputSource: {inputUri: gcs_file_uri}
      } const [response] = await translationClient.importAdaptiveMtFile(request)
      console.log('Importing file')
      console.log(response)
    }
    

    Python

    このサンプルを試す前に、クライアント ライブラリを使用して Cloud Translation クイックスタートにある Python の設定手順を完了してください。 詳細については、Cloud Translation Python API リファレンス ドキュメントをご覧ください。

    Cloud Translation に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

    def import_adaptive_mt_file():
      # Create a client
      client = translate.TranslationServiceClient()
      gcs_input_source = translate.GcsInputSource()
      gcs_input_source.input_uri = "gs://SOURCE_LOCATION/FILE.tsv"
      # Initialize the request
      request = translate.ImportAdaptiveMtFileRequest(
          parent="projects/PROJECT_ID/locations/LOCATION/adaptiveMtDatasets/DATASET_ID",
          gcs_input_source=gcs_input_source
      )
      # Make the request
      response = client.import_adaptive_mt_file(request)
      # Handle the response
      print(response)
    

  3. 翻訳する原文と、Cloud Translation が翻訳のカスタマイズに使用するデータセットを指定して、適応型翻訳をリクエストします。

    Cloud Translation は、データセットの原文の言語と翻訳する言語を使用して、翻訳に使用する言語を決定します。たとえば、en から es へのデータセットは、テキストを英語からスペイン語に翻訳します。詳細については、adaptiveMtTranslate メソッドをご覧ください。

    REST

    リクエストのデータを使用する前に、次のように置き換えます。

    • PROJECT_NUMBER_OR_ID: Google Cloud プロジェクトの数字または英数字の ID
    • LOCATION: ソース データセットが配置されているリージョン(us-central1 など)。
    • DATASET_NAME: Cloud Translation が翻訳のカスタマイズに使用するデータセットの名前(projects/PROJECT_ID/locations/LOCATION/adaptiveMtDatasets/DATASET_ID 形式)。データセット名を取得するには、プロジェクト内のすべてのデータセットを一覧表示します。
    • SOURCE_TEXT: 翻訳するテキスト。

    HTTP メソッドと URL:

    POST https://translation.googleapis.com/v3/projects/PROJECT_ID/locations/LOCATION:adaptiveMtTranslate

    リクエストの本文(JSON):

    {
      "dataset": "DATASET_NAME",
      "content": ["SOURCE_TEXT"]
    }
    

    リクエストを送信するには、次のいずれかのオプションを展開します。

    次のような JSON レスポンスが返されます。

    {
      "translations": [
        {
          "translatedText": "TRANSLATED_TEXT"
        }
      ],
      "languageCode": "TARGET_LANGUAGE"
    }
    

    Java

    このサンプルを試す前に、クライアント ライブラリを使用して Cloud Translation クイックスタートにある Java の設定手順を完了してください。 詳細については、Cloud Translation Java API リファレンス ドキュメントをご覧ください。

    Cloud Translation に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

    /** Translates using AdaptiveMt. */
    private static void adaptiveMtTranslate(
        TranslationServiceClient translationServiceClient, String projectId, String datasetId) {
      String adaptiveMtDatasetName =
          String.format(
              "projects/%s/locations/LOCATION/adaptiveMtDatasets/%s", projectId, datasetId);
    
      AdaptiveMtTranslateRequest request =
          AdaptiveMtTranslateRequest.newBuilder()
              .setParent(LocationName.of(projectId, "us-central1").toString())
              .setDataset(adaptiveMtDatasetName)
              .addContent("Sample translation text")
              .build();
      AdaptiveMtTranslateResponse response = translationServiceClient.adaptiveMtTranslate(request);
    
      System.out.println("Translating using AdaptiveMt");
      System.out.println(response);
    }
    

    Node.js

    このサンプルを試す前に、クライアント ライブラリを使用して Cloud Translation クイックスタートにある Node.js の設定手順を完了してください。 詳細については、Cloud Translation Node.js API リファレンス ドキュメントをご覧ください。

    Cloud Translation に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

    async function translate() {
      const request = {
        parent: `projects/${projectId}/locations/${location}`,
        dataset: `projects/${projectId}/locations/${location}/adaptiveMtDatasets/${
            adaptiveMtDatasetName}`,
        content: ['Sample translate query']
      } const [response] = await translationClient.adaptiveMtTranslate(request)
      console.log('Translating')
      console.log(response)
    }
    

    Python

    このサンプルを試す前に、クライアント ライブラリを使用して Cloud Translation クイックスタートにある Python の設定手順を完了してください。 詳細については、Cloud Translation Python API リファレンス ドキュメントをご覧ください。

    Cloud Translation に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

    def adaptive_mt_translate():
      # Create a client
      client = translate.TranslationServiceClient()
      # Initialize the request
      request = translate.AdaptiveMtTranslateRequest(
          parent="projects/PROJECT_ID/locations/LOCATION",
          dataset="projects/PROJECT_ID/locations/LOCATION/adaptiveMtDatasets/DATASET_ID",
          content=["Sample translation request"]
      )
      # Make the request
      response = client.adaptive_mt_translate(request)
      # Handle the response
      print(response)
    

次のステップ