テキスト翻訳

翻訳タスクの場合、Vertex AI の生成 AI では、Gemini モデルと Cloud Translation API の 2 つの特殊な翻訳モデルのどちらかを選択できます。

  • 翻訳 LLM - Google の最新で高品質の LLM スタイルの翻訳サービス。妥当なレイテンシ(Gemini 2.0 Flash より約 3 倍高速)でサービングしながら、最高品質の翻訳を実現します。

  • Cloud Translation のニューラル機械翻訳(NMT)モデル - レイテンシが約 100 ミリ秒の翻訳を実現する Google のリアルタイム翻訳サービス。このモデルは、同程度のレイテンシでベンチマークされたすべてのモデルの中で最高品質を実現し、品質の継続的な向上を実現しています。NMT は、Gemini 2.0 Flash よりも最大 20 倍高速なレイテンシを実現できます。

Translation LLM の主な利点と差別化要因

  • 比類のない翻訳品質 - 翻訳 LLM は、他のベンチマーク モデルと比較してベンチマークで大幅に高いパフォーマンスを実現し、最高の翻訳品質を提供します。Translation LLM は、他の翻訳モデルでよく見られるような、不自然な「単語単位」の翻訳ではなく、文を大幅に書き換えて、ターゲット言語でより自然な表現にする可能性がはるかに高くなります
  • 優れた品質とレイテンシのトレードオフ - 翻訳 LLM は、Gemini 2.0 Flash よりも大幅に優れたレイテンシで LLM を活用した翻訳を提供します。翻訳 LLM は NMT モデルよりもレイテンシが高くなりますが、通常は幅広いアプリケーションで高品質のレスポンスを提供します。

モデルの機能の比較

機能 翻訳 LLM(Gemini を搭載) NMT モデル
説明 Gemini を基盤とする翻訳に特化した大規模言語モデルで、翻訳用にファインチューニングされています。Vertex AI の生成 AI と Cloud Translation - Advanced API で使用できます。 Cloud Translation - Advanced API と Cloud Translation - Basic API で利用可能な Google のニューラル機械翻訳モデル。シンプルさとスケールを念頭に最適化されています。
品質 最高品質の翻訳。品質において NMT、Gemini 2.0 Flash、Gemini 2.5 Pro を上回ります。自然な流れになるように文を書き換える可能性が高くなります。エラーが大幅に減少していることを示します。 言語ペアに応じて中程度から高品質。多くの言語とドメインの組み合わせで、最もパフォーマンスの高いリアルタイム NMT モデルの 1 つです。
レイテンシ レイテンシは Gemini 2.0 Flash よりも大幅に改善されていますが、NMT よりも遅いです。 最速のリアルタイム翻訳。低レイテンシで、チャットやリアルタイム アプリケーションに適しています。Gemini 2.0 Flash より最大 20 倍高速なレイテンシを実現
言語サポート 対応言語は、アラビア語、中国語、チェコ語、オランダ語、英語、フランス語、ドイツ語、ヒンディー語、インドネシア語、イタリア語、日本語、韓国語、ポーランド語、ポルトガル語、ロシア語、スペイン語、タイ語、トルコ語、ウクライナ語、ベトナム語です。全リストについては、サポートされている言語を参照してください。 広東語、フィジー語、バリ語などの言語をサポートしています。サポートされているリストにある任意の言語から任意の言語への翻訳が可能です。全リストについては、サポートされている言語を参照してください。
カスタマイズ - 高度な用語集、ドメイン/顧客固有の適応のための Vertex AI の教師ありファインチューニング、少数の例によるリアルタイム スタイル カスタマイズのための適応型翻訳をサポート。 Cloud Translation - Advanced API で、用語を制御する用語集と、AutoML Translation を使用したカスタムモデルのトレーニングをサポートします。
翻訳機能 HTML 翻訳 HTML、バッチ、書式設定済みドキュメントの翻訳
API 統合 Cloud Translation - Advanced API、Vertex AI API Cloud Translation - Basic API、Cloud Translation - Advanced API、Vertex AI API

用途

このセクションでは、Vertex AI Studio を使用してテキストをある言語から別の言語に迅速に翻訳する方法について説明します。 Google Cloud コンソールまたは API を使用して、翻訳 LLM、Gemini、または NMT モデルを使用してテキストを翻訳できます。各モデルがサポートする言語は異なります。翻訳をリクエストする前に、使用しているモデルが目的のソース言語とターゲット言語をサポートしていることを確認してください。

コンソール

  1. Google Cloud コンソールの [Vertex AI] セクションで、[Vertex AI Studio] の [Translate text] ページに移動します。

    Vertex AI Studio に移動

  2. [実行設定] ペインの [モデル] フィールドで、翻訳モデルを選択します。

  3. モデルの設定(温度など)を変更するには、[詳細] を開きます。

  4. 原文の言語と訳文の言語を設定します。

  5. 入力フィールドに、翻訳するテキストを入力します。

  6. [送信] をクリックします。

  7. 翻訳のリクエスト方法を示すコードまたは curl コマンドを取得するには、[コードを取得] をクリックします。

Vertex AI Studio では、翻訳 LLM を使用して翻訳例を指定し、スタイル、トーン、業界ドメインに近づけてモデルのレスポンスを調整できます。モデルは、テキストを翻訳する前に、少量のサンプルをコンテキストとして使用します。

API

翻訳に使用するモデルを選択します。

翻訳 LLM

Vertex AI API と Translation LLM を使用してテキストを翻訳します。

REST

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

  • PROJECT_NUMBER_OR_ID: Google Cloud プロジェクトの数字または英数字の ID
  • LOCATION: このオペレーションを実行するロケーション。例: us-central1
  • SOURCE_LANGUAGE_CODE: 入力テキストの言語コード。適応型翻訳に記載されているいずれかの言語コードを設定します。
  • TARGET_LANGUAGE_CODE: 入力テキストを翻訳する言語。適応型翻訳に記載されているいずれかの言語コードを設定します。
  • SOURCE_TEXT: 翻訳対象のソース言語のテキスト。
  • MIME_TYPE(省略可): ソーステキストの形式(text/htmltext/plain など)。デフォルトでは、MIME タイプは text/plain に設定されます。

HTTP メソッドと URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/cloud-translate-text:predict

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

{
  "instances": [
    {
      "source_language_code": "SOURCE_LANGUAGE_CODE",
      "target_language_code": "TARGET_LANGUAGE_CODE",
      "contents": [
        "SOURCE_TEXT"
      ],
      "mimeType": "MIME_TYPE",
      "model": "projects/PROJECT_ID/locations/LOCATION/models/general/translation-llm"
    }
  ]
}

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

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

{
  "predictions": [
    {
      "translations": [
        {
          "translatedText": "TRANSLATED_TEXT",
          "model": "projects/PROJECT_ID/locations/LOCATION/models/general/translation-llm"
        }
      ]
    }
  ]
}

Node.js

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

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

async function translate() {
  const request = {
    instances: [{
      source_language_code: SOURCE_LANGUAGE_CODE,
      target_language_code: TARGET_LANGUAGE_CODE,
      contents: [SOURCE_TEXT],
      model: "projects/PROJECT_ID/locations/LOCATION/models/general/translation-llm"
    }]
  };
  const {google} = require('googleapis');
  const aiplatform = google.cloud('aiplatform');
  const endpoint = aiplatform.predictionEndpoint('projects/PROJECT_ID/locations/LOCATION/publishers/google/models/cloud-translate-text');

  const [response] = await endpoint.predict(request)
  console.log('Translating')
  console.log(response)
}
      

Python

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

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

from google.cloud import aiplatform

def translate():
  # Create a client
  client_options = {"api_endpoint": "LOCATION-aiplatform.googleapis.com"}
  client = aiplatform.gapic.PredictionServiceClient(client_options=client_options)
  
  # Initialize the request
  endpoint_id = f"projects/PROJECT_ID/locations/LOCATION/publishers/google/models/cloud-translate-text"
  instances=[{
    "model": "projects/PROJECT_ID/locations/LOCATION/models/general/translation-llm",
    "source_language_code": 'SOURCE_LANGUAGE_CODE',
    "target_language_code": 'TARGET_LANGUAGE_CODE',
    "contents": ["SOURCE_TEXT"],
  }]

  # Make the request
  response = client.predict(instances=instances, endpoint=endpoint_id)
  # Handle the response
  print(response)
      

Gemini

Vertex AI API と Gemini を使用してテキストを翻訳します。

オープン プロンプトとプロンプト エンジニアリングにより、Gemini の回答をさらにカスタマイズできます。

REST

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

  • PROJECT_NUMBER_OR_ID: Google Cloud プロジェクトの数字または英数字の ID。
  • LOCATION: リクエストを処理するロケーション。使用できるオプションは以下のとおりです。

    クリックして、利用可能なリージョンの一部を開く

    • us-central1
    • us-west4
    • northamerica-northeast1
    • us-east4
    • us-west1
    • asia-northeast3
    • asia-southeast1
    • asia-northeast1
  • MODEL_ID: モデルの ID(gemini-1.0-pro-002 など)
  • SOURCE_LANGUAGE_CODE: 入力テキストの言語。
  • TARGET_LANGUAGE_CODE: 入力テキストを翻訳する言語。
  • SOURCE_TEXT: 翻訳するテキスト。
  • TEMPERATURE: 温度は、topPtopK が適用された場合に発生するレスポンス生成時のサンプリングに使用されます。温度は、トークン選択のランダム性の度合いを制御します。温度が低いほど、確定的で自由度や創造性を抑えたレスポンスが求められるプロンプトに適しています。一方、温度が高いと、より多様で創造的な結果を導くことができます。温度が 0 の場合、確率が最も高いトークンが常に選択されます。この場合、特定のプロンプトに対するレスポンスはほとんど確定的ですが、わずかに変動する可能性は残ります。

    モデルが返すレスポンスが一般的すぎる、短すぎる、あるいはフォールバック(代替)レスポンスが返ってくる場合は、温度を高く設定してみてください。

  • TOP_P: Top-P は、モデルが出力用にトークンを選択する方法を変更します。トークンは、確率の合計が Top-P 値に等しくなるまで、確率の高いものから低いものへと選択されます。たとえば、トークン A、B、C の確率が 0.3、0.2、0.1 であり、トップ P 値が 0.5 であるとします。この場合、モデルは温度を使用して A または B を次のトークンとして選択し、C は候補から除外します。

    ランダムなレスポンスを減らしたい場合は小さい値を、ランダムなレスポンスを増やしたい場合は大きい値を指定します。

  • TOP_K: Top-K は、モデルが出力用にトークンを選択する方法を変更します。Top-K が 1 の場合、次に選択されるトークンは、モデルの語彙内のすべてのトークンで最も確率の高いものであることになります(グリーディ デコードとも呼ばれます)。Top-K が 3 の場合は、最も確率が高い上位 3 つのトークンから次のトークン選択されることになります(温度を使用します)。

    トークン選択のそれぞれのステップで、最も高い確率を持つ Top-K のトークンがサンプリングされます。その後、トークンはトップ P に基づいてさらにフィルタリングされ、最終的なトークンは温度サンプリングを用いて選択されます。

    ランダムなレスポンスを減らしたい場合は小さい値を、ランダムなレスポンスを増やしたい場合は大きい値を指定します。

  • MAX_OUTPUT_TOKENS: レスポンスで生成できるトークンの最大数。1 トークンは約 4 文字です。100 トークンは約 60~80 語に相当します。

    レスポンスを短くしたい場合は小さい値を、長くしたい場合は大きい値を指定します。

  • SAFETY_CATEGORY: しきい値を構成する安全性カテゴリ。指定できる値は以下のとおりです。

    クリックして安全性カテゴリを開く

    • HARM_CATEGORY_SEXUALLY_EXPLICIT
    • HARM_CATEGORY_HATE_SPEECH
    • HARM_CATEGORY_HARASSMENT
    • HARM_CATEGORY_DANGEROUS_CONTENT
  • THRESHOLD: 確率に基づいて、指定された安全性カテゴリに属する可能性のあるレスポンスをブロックするためのしきい値。指定できる値は以下のとおりです。

    クリックしてブロックしきい値を開く

    • BLOCK_NONE
    • BLOCK_ONLY_HIGH
    • BLOCK_MEDIUM_AND_ABOVE(デフォルト)
    • BLOCK_LOW_AND_ABOVE
    BLOCK_LOW_AND_ABOVE はブロック対象が最も多く、BLOCK_ONLY_HIGH はブロック対象が最も少なくなります。

HTTP メソッドと URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent

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

{
  "contents": [
    {
      "role": "user",
      "parts": [
        {
        "text": "SOURCE_LANGUAGE_CODE: SOURCE_TEXT\nTARGET_LANGUAGE_CODE:"
        }
      ]
    }
  ],
  "generation_config": {
    "temperature": TEMPERATURE,
    "topP": TOP_P,
    "topK": TOP_K,
    "candidateCount": 1,
    "maxOutputTokens": MAX_OUTPUT_TOKENS
  }
  "safetySettings": [
    {
      "category": "SAFETY_CATEGORY",
      "threshold": "THRESHOLD"
    }
  ]
}

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

成功したことを示すステータス コード(2xx)と空のレスポンスが返されます。

Node.js

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

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

const {VertexAI} = require('@google-cloud/vertexai');

// Initialize Vertex with your Cloud project and location
const vertex_ai = new VertexAI({project: 'PROJECT_ID', location: 'LOCATION'});
const model = 'gemini-1.0-pro';

// Instantiate the models
const generativeModel = vertex_ai.preview.getGenerativeModel({
  model: model,
  generationConfig: {
    'candidate_count': 1,
    'max_output_tokens': MAX_OUTPUT_TOKENS,
    'temperature': TEMPERATURE,
    'top_p': TOP_P,
    'top_k': TOP_K,
  },
  safetySettings: [
    {
        'category': 'HARM_CATEGORY_HATE_SPEECH',
        'threshold': 'BLOCK_MEDIUM_AND_ABOVE'
    },
    {
        'category': 'HARM_CATEGORY_DANGEROUS_CONTENT',
        'threshold': 'BLOCK_MEDIUM_AND_ABOVE'
    },
    {
        'category': 'HARM_CATEGORY_SEXUALLY_EXPLICIT',
        'threshold': 'BLOCK_MEDIUM_AND_ABOVE'
    },
    {
        'category': 'HARM_CATEGORY_HARASSMENT',
        'threshold': 'BLOCK_MEDIUM_AND_ABOVE'
    }
  ],
});


async function generateContent() {
  const req = {
    contents: [
      {role: 'user', parts: [{text: `SOURCE_LANGUAGE_CODE: TEXT
TARGET_LANGUAGE_CODE:`}]}
    ],
  };

  const streamingResp = await generativeModel.generateContentStream(req);

  for await (const item of streamingResp.stream) {
    process.stdout.write('stream chunk: ' + JSON.stringify(item) + '\n');
  }

  process.stdout.write('aggregated response: ' + JSON.stringify(await streamingResp.response));
}

generateContent();
      

Python

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

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

import base64
import vertexai
from vertexai.generative_models import GenerativeModel, Part, FinishReason
import vertexai.preview.generative_models as generative_models

def generate():
  vertexai.init(project="PROJECT_ID", location="LOCATION")
  model = GenerativeModel("gemini-1.0-pro")
  responses = model.generate_content(
      ["""SOURCE_LANGUAGE_CODE: TEXT
TARGET_LANGUAGE_CODE:"""],
      generation_config=generation_config,
      safety_settings=safety_settings,
  )

  print(responses)


generation_config = {
    "candidate_count": 1,
    "max_output_tokens": MAX_OUTPUT_TOKENS,
    "temperature": TEMPERATURE,
    "top_p": TOP_P,
    "top_k": TOP_K,
}

safety_settings = {
    generative_models.HarmCategory.HARM_CATEGORY_HATE_SPEECH: generative_models.HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE,
    generative_models.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: generative_models.HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE,
    generative_models.HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT: generative_models.HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE,
    generative_models.HarmCategory.HARM_CATEGORY_HARASSMENT: generative_models.HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE,
}

generate()
      

NMT

Cloud Translation API と NMT モデルを使用してテキストを翻訳します。

REST

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

  • PROJECT_NUMBER_OR_ID: Google Cloud プロジェクトの数字または英数字の ID。
  • SOURCE_LANGUAGE: (省略可)入力ドキュメントの言語コード。サポートされている言語コードについては、言語のサポートをご覧ください。
  • TARGET_LANGUAGE: 入力テキストを翻訳する言語。サポートされている言語コードのいずれかに設定します。
  • SOURCE_TEXT: 翻訳するテキスト。

HTTP メソッドと URL:

POST https://translation.googleapis.com/v3/projects/PROJECT_ID:translateText

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

{
  "sourceLanguageCode": "SOURCE_LANGUAGE",
  "targetLanguageCode": "TARGET_LANGUAGE",
  "contents": ["SOURCE_TEXT1", "SOURCE_TEXT2"]
}

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

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

{
  "translations": [
    {
      "translatedText": "TRANSLATED_TEXT1"
    },
    {
      "translatedText": "TRANSLATED_TEXT2"
    }
  ]
}

Node.js

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

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

/**
 * TODO(developer): Uncomment these variables before running the sample
 */
// const projectId = 'YOUR_PROJECT_ID';
// const location = 'global';
// const text = 'text to translate';

// Imports the Google Cloud Translation library
const {TranslationServiceClient} = require('@google-cloud/translate');

// Instantiates a client
const translationClient = new TranslationServiceClient();

async function translateText() {
  // MIME type of the content to translate
  // Supported MIME types:
  // https://cloud.google.com/translate/docs/supported-formats
  const mimeType = 'text/plain';

  // Construct request
  const request = {
    parent: `projects/${projectId}/locations/${location}`,
    contents: [text],
    mimeType: mimeType,
    sourceLanguageCode: 'en',
    targetLanguageCode: 'sr-Latn',
  };

  // Run request
  const [response] = await translationClient.translateText(request);

  for (const translation of response.translations) {
    console.log(`Translation: ${translation.translatedText}`);
  }
}

translateText();

Python

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

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

import os

# Import the Google Cloud Translation library.
from google.cloud import translate_v3

PROJECT_ID = os.environ.get("GOOGLE_CLOUD_PROJECT")


def translate_text(
    text: str = "YOUR_TEXT_TO_TRANSLATE",
    source_language_code: str = "en-US",
    target_language_code: str = "fr",
) -> translate_v3.TranslationServiceClient:
    """Translate Text from a Source language to a Target language.
    Args:
        text: The content to translate.
        source_language_code: The code of the source language.
        target_language_code: The code of the target language.
            For example: "fr" for French, "es" for Spanish, etc.
            Find available languages and codes here:
            https://cloud.google.com/translate/docs/languages#neural_machine_translation_model
    """

    # Initialize Translation client.
    client = translate_v3.TranslationServiceClient()
    parent = f"projects/{PROJECT_ID}/locations/global"

    # MIME type of the content to translate.
    # Supported MIME types:
    # https://cloud.google.com/translate/docs/supported-formats
    mime_type = "text/plain"

    # Translate text from the source to the target language.
    response = client.translate_text(
        contents=[text],
        parent=parent,
        mime_type=mime_type,
        source_language_code=source_language_code,
        target_language_code=target_language_code,
    )

    # Display the translation for the text.
    # For example, for "Hello! How are you doing today?":
    # Translated text: Bonjour comment vas-tu aujourd'hui?
    for translation in response.translations:
        print(f"Translated text: {translation.translated_text}")

    return response

カスタム翻訳

独自の翻訳例を指定することで、翻訳 LLM からのレスポンスをカスタマイズします。カスタム翻訳は、翻訳 LLM でのみ機能します。

カスタマイズされた翻訳は、Vertex AI Studio コンソールまたは API でリクエストできますが、1 つ違いがあります。コンソールは、TMX ファイルまたは TSV ファイルでサンプルを指定した場合にのみ、カスタム翻訳をサポートします。API は、翻訳リクエストの一部としてサンプル(最大 5 つの文ペア)をインラインで指定した場合にのみ、カスタム翻訳をサポートします。

データ要件

Google Cloud コンソールのファイルで翻訳サンプルを指定する場合は、TMX ファイルまたは TSV ファイルにセグメントのペアとしてサンプルを記述する必要があります。各ペアには、ソース言語のセグメントとその訳文が含まれます。詳細については、Cloud Translation ドキュメントの翻訳例を準備するをご覧ください。

最も正確な結果を得るには、さまざまなシナリオの具体的な例を含めてください。5 つ以上の文のペアを含める必要があります。ペアは 10,000 個以下にする必要があります。また、1 つのセグメントペアの最大文字数は合計で 512 文字です。

コンソール

  1. Google Cloud コンソールの [Vertex AI] セクションで、[Vertex AI Studio] の [Translate text] ページに移動します。

    Vertex AI Studio に移動

  2. [実行設定] ペインで、翻訳の設定を行います。

    1. [モデル] フィールドで [Translation LLM] を選択します。
    2. 温度を変更するには、[詳細] を開きます。
  3. [例を追加] をクリックします。

    1. ローカル ファイルまたは Cloud Storage のファイルを選択します。Vertex AI Studio は、ファイルからソース言語とターゲット言語を決定します。
    2. レスポンスの生成前に、モデルで使用するサンプル数を選択します。

    選択したサンプルの数は、リクエストあたりの入力文字数の上限(3,000)にカウントされます。

  4. 入力フィールドに、翻訳するテキストを入力します。

  5. [送信] をクリックします。

    Vertex AI は、入力に最も類似した参照文を指定の数だけ自動的に選択します。翻訳モデルはサンプルからパターンを識別し、レスポンスを生成する際にそれらのパターンを適用します。

    リクエストごとの出力文字数は 3,000 文字です。この上限を超えるテキストは破棄されます。

  6. 翻訳のリクエスト方法を示すコードまたは curl コマンドを取得するには、[コードを取得] をクリックします。

API

カスタム翻訳をリクエストするには、翻訳リクエストに最大 5 つの参照文のペアを含めます。翻訳モデルは、これらすべてを使用してサンプルからパターンを識別し、レスポンスを生成する際にそれらのパターンを適用します。

REST

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

  • PROJECT_NUMBER_OR_ID: Google Cloud プロジェクトの数字または英数字の ID
  • LOCATION: このオペレーションを実行するロケーション。例: us-central1
  • REFERENCE_SOURCE: 参照文のペアの一部である原文言語の文。
  • REFERENCE_TARGET: 参照文のペアの一部である訳文言語の文。
  • SOURCE_LANGUAGE: 入力テキストの言語コード。
  • TARGET_LANGUAGE: 入力テキストを翻訳する言語。
  • SOURCE_TEXT: 翻訳対象のソース言語のテキスト。
  • MIME_TYPE(省略可): ソーステキストの形式(text/htmltext/plain など)。デフォルトでは、MIME タイプは text/plain に設定されます。

HTTP メソッドと URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/translate-llm:predict

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

{
  "instances": [
    {
      "reference_sentence_config": {
        "reference_sentence_pair_lists": [
          {
            "reference_sentence_pairs": [
              {
                "source_sentence": "REFERENCE_SOURCE_1_1",
                "target_sentence": "REFERENCE_TARGET_1_1"
              },
              {
                "source_sentence": "REFERENCE_SOURCE_1_2",
                "target_sentence": "REFERENCE_SOURCE_1_2"
              }
            ]
          }
        ],
        "source_language_code": "SOURCE_LANGUAGE_CODE",
        "target_language_code": "TARGET_LANGUAGE_CODE"
      },
      "content": [
        "SOURCE_TEXT"
      ],
      "mimeType": "MIME_TYPE"
    }
  ]
}

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

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

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

Node.js

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

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

async function translate() {
  const request = {
    instances: [{
        "reference_sentence_config": {
          "reference_sentence_pair_lists": [{
            "reference_sentence_pairs": [{
              "source_sentence": 'SAMPLE_REFERENCE_SOURCE_1',
              "target_sentence": 'SAMPLE_REFERENCE_TARGET_1'
            },
            "reference_sentence_pairs": {
              "source_sentence": 'SAMPLE_REFERENCE_SOURCE_2',
              "target_sentence": 'SAMPLE_REFERENCE_TARGET_2'
            }]
          }],
          "source_language_code": 'SOURCE_LANGUAGE_CODE',
          "target_language_code": 'TARGET_LANGUAGE_CODE'
        },
        "contents": ["SOURCE_TEXT"]
    }]
  };
  const {google} = require('googleapis');
  const aiplatform = google.cloud('aiplatform');
  const endpoint = aiplatform.predictionEndpoint('projects/PROJECT_ID/locations/LOCATION/publishers/google/models/translate-llm');

  const [response] = await endpoint.predict(request)
  console.log('Translating')
  console.log(response)
}
  

Python

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

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

from google.cloud import aiplatform
from google.protobuf.json_format import MessageToDict

def translate():
  # Create a client
  client_options = {"api_endpoint": "LOCATION-aiplatform.googleapis.com"}
  client = aiplatform.gapic.PredictionServiceClient(client_options=client_options)

  # Initialize the request
  endpoint_id = f"projects/PROJECT_ID/locations/LOCATION/publishers/google/models/translate-llm"
  instances=[{
      "reference_sentence_config": {
        "reference_sentence_pair_lists": [{
          "reference_sentence_pairs": [{
            "source_sentence": 'SAMPLE_REFERENCE_SOURCE_1',
            "target_sentence": 'SAMPLE_REFERENCE_TARGET_1'
          },
          {
            "source_sentence": 'SAMPLE_REFERENCE_SOURCE_2',
            "target_sentence": 'SAMPLE_REFERENCE_TARGET_2'
          }]
        }],
        "source_language_code": 'SOURCE_LANGUAGE_CODE',
        "target_language_code": 'TARGET_LANGUAGE_CODE'
      },
      "content": ["SOURCE_TEXT"]
  }]
  # Make the request
  response = client.predict(
      endpoint=endpoint_id, instances=instances,
  )
  # Handle the response
  print(response)

  # The predictions are a google.protobuf.Value representation of the model's predictions.
  predictions = MessageToDict(response._pb)['predictions']
  for prediction in predictions:
      print(prediction['translations'])
  

Cloud Translation API を使用してデータセットを作成し、例文ペアをインポートすることもできます。Cloud Translation API を使用して翻訳をリクエストする場合は、データセットを含めてレスポンスをカスタマイズできます。データセットは保持され、複数の翻訳リクエストで再利用できます。詳細については、Cloud Translation ドキュメントの適応型翻訳をリクエストするをご覧ください。

サポートされている言語

翻訳 LLM

翻訳 LLM では、次のいずれかの言語間で翻訳できます。

言語名 言語コード
アラビア語 ar
ベンガル語 bn
ブルガリア語 bg
カタルーニャ語 ca
中国語(簡体) zh-CN
クロアチア語 hr
チェコ語 cs
デンマーク語 da
オランダ語 nl
英語 en
エストニア語 et
フィンランド語 fi
フランス語 fr
ドイツ語 de
ギリシャ語 el
グジャラト語 gu
ヘブライ語 he
ヒンディー語 hi
ハンガリー語 hu
アイスランド語 is
インドネシア語 id
イタリア語 it
日本語 ja
カンナダ語 kn
韓国語 ko
ラトビア語 lv
リトアニア語 lt
マラヤーラム語 ml
マラーティー語 mr
ノルウェー語 no
ペルシャ語 fa
ポーランド語 pl
ポルトガル語 pt
パンジャブ語 pa
ルーマニア語 ro
ロシア語 ru
スロバキア語 sk
スロベニア語 sl
スペイン語 es
スワヒリ語 sw
スウェーデン語 sv
タミル語 ta
テルグ語 te
タイ語 th
トルコ語 tr
ウクライナ語 uk
ウルドゥー語 ur
ベトナム語 vi
ズールー語 zu

Gemini と NMT

Gemini モデルと Cloud Translation NMT モデルでサポートされている言語については、次のドキュメントをご覧ください。