翻译文字

本页面介绍如何使用 Vertex AI Studio 快速将文本从一种语言翻译成另一种语言。Vertex AI Studio 中的 Translation 提供了 Gemini 和两种专用翻译模型供您选择,包括 Cloud Translation 神经机器翻译 (NMT) 模型和经过微调的翻译 LLM(也称为翻译 LLM)。

使用翻译 LLM 时,您可以通过提供示例翻译来定制回答,使其更符合您的风格、语气和行业领域。在翻译文本之前,模型会使用您的示例作为少样本上下文。在 Vertex AI Studio 中,此自定义仅适用于翻译 LLM;例如,使用 Gemini 或 NMT 模型时,您无法传递样本。

支持的语言

各个模型支持的语言可能有所不同。在请求翻译之前,请检查您使用的模型是否支持您的源语言和目标语言。

翻译 LLM

对于翻译 LLM,您可以在以下语言对之间进行翻译:

  • 中文(简体)<-> 英语
  • 法语 <-> 英语
  • 德语 <-> 英语
  • 意大利语 <-> 英语
  • 日语 <-> 英语
  • 韩语 <-> 英语
  • 葡萄牙语 <-> 英语
  • 西班牙语 <-> 英语

Gemini 和 NMT

如需了解 Gemini 和 NMT 模型支持的语言,请参阅以下文档:

翻译文本

您可以在 Google Cloud 控制台或 API 中,使用翻译 LLM、Gemini 或 NMT 模型来翻译文本。

控制台

  1. 在 Google Cloud 控制台的 Cloud Translation 部分中,进入 Vertex AI Studio 中的翻译文本页面。

    进入 Vertex AI Studio

  2. 运行设置窗格的模型字段中,选择一个翻译模型。

  3. 如需更改模型设置(例如温度),请展开高级

  4. 设置源语言和目标语言。

  5. 在输入字段中,输入要翻译的文本。

  6. 点击提交

  7. 如需获取演示如何请求翻译的代码或 curl 命令,请点击 获取代码

API

选择要用于翻译的模型。

翻译 LLM

使用 Vertex AI API 和翻译 LLM 来翻译文本。

REST

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_NUMBER_OR_ID:您的 Google Cloud 项目的数字或字母数字 ID
  • LOCATION:您要执行此操作的位置。 例如 us-central1
  • SOURCE_LANGUAGE_CODE:输入文本的语言代码。设置为自适应翻译中列出的某个语言代码。
  • TARGET_LANGUAGE_CODE:要将输入文字翻译成的目标语言。设置为自适应翻译中列出的某个语言代码。
  • SOURCE_TEXT:要翻译的源语言文本。

HTTP 方法和网址:

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"],
  "model": "projects/PROJECT_ID/locations/LOCATION/models/general/translation-llm"
}]

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

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

Node.js

试用此示例之前,请按照 Cloud Translation 快速入门:使用客户端库中的 Node.js 设置说明进行操作。 如需了解详情,请参阅 Cloud Translation Node.js API 参考文档

如需向 Cloud Translation 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证

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

试用此示例之前,请按照 Cloud Translation 快速入门:使用客户端库中的 Python 设置说明进行操作。 如需了解详情,请参阅 Cloud Translation Python API 参考文档

如需向 Cloud Translation 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证

from google.cloud import aiplatform

def translate():
  # Create a client
  endpoint = aiplatform.Endpoint('projects/PROJECT_ID/locations/LOCATION/publishers/google/models/cloud-translate-text')
  # Initialize the 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"
  }]
  # Make the request
  response = endpoint.predict(instances=instances)
  # 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:温度 (temperature) 在生成回答期间用于采样,在应用 topPtopK 时会生成回答。温度可以控制词元选择的随机性。 较低的温度有利于需要更少开放性或创造性回复的提示,而较高的温度可以带来更具多样性或创造性的结果。温度为 0 表示始终选择概率最高的词元。在这种情况下,给定提示的回复大多是确定的,但可能仍然有少量变化。

    如果模型返回的回答过于笼统、过于简短,或者模型给出后备回答,请尝试提高温度。

  • TOP_P:Top-P 可更改模型选择输出词元的方式。系统会按照概率从最高(见 top-K)到最低的顺序选择词元,直到所选词元的概率总和等于 top-P 的值。例如,如果词元 A、B 和 C 的概率分别为 0.3、0.2 和 0.1,并且 top-P 值为 0.5,则模型将选择 A 或 B 作为下一个词元(通过温度确定),并会排除 C,将其作为候选词元。

    指定较低的值可获得随机程度较低的回答,指定较高的值可获得随机程度较高的回答。

  • TOP_K:Top-K 可更改模型选择输出词元的方式。如果 top-K 设为 1,表示所选词元是模型词汇表的所有词元中概率最高的词元(也称为贪心解码)。如果 top-K 设为 3,则表示系统将从 3 个概率最高的词元(通过温度确定)中选择下一个词元。

    在每个词元选择步骤中,系统都会对概率最高的 top-K 词元进行采样。然后,系统会根据 top-P 进一步过滤词元,并使用温度采样选择最终的词元。

    指定较低的值可获得随机程度较低的回答,指定较高的值可获得随机程度较高的回答。

  • MAX_OUTPUT_TOKENS:回答中可生成的词元数量上限。词元约为 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 方法和网址:

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

试用此示例之前,请按照 Cloud Translation 快速入门:使用客户端库中的 Node.js 设置说明进行操作。 如需了解详情,请参阅 Cloud Translation Node.js API 参考文档

如需向 Cloud Translation 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证

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

试用此示例之前,请按照 Cloud Translation 快速入门:使用客户端库中的 Python 设置说明进行操作。 如需了解详情,请参阅 Cloud Translation Python API 参考文档

如需向 Cloud Translation 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证

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 方法和网址:

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

试用此示例之前,请按照 Cloud Translation 快速入门:使用客户端库中的 Node.js 设置说明进行操作。 如需了解详情,请参阅 Cloud Translation Node.js API 参考文档

如需向 Cloud Translation 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证

/**
 * 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() {
  // Construct request
  const request = {
    parent: `projects/${projectId}/locations/${location}`,
    contents: [text],
    mimeType: 'text/plain', // mime types: text/plain, text/html
    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

试用此示例之前,请按照 Cloud Translation 快速入门:使用客户端库中的 Python 设置说明进行操作。 如需了解详情,请参阅 Cloud Translation Python API 参考文档

如需向 Cloud Translation 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证

# Imports the Google Cloud Translation library
from google.cloud import translate


# Initialize Translation client
def translate_text(
    text: str = "YOUR_TEXT_TO_TRANSLATE", project_id: str = "YOUR_PROJECT_ID"
) -> translate.TranslationServiceClient:
    """Translating Text."""

    client = translate.TranslationServiceClient()

    location = "global"

    parent = f"projects/{project_id}/locations/{location}"

    # Translate text from English to French
    # Detail on supported types can be found here:
    # https://cloud.google.com/translate/docs/supported-formats
    response = client.translate_text(
        request={
            "parent": parent,
            "contents": [text],
            "mime_type": "text/plain",  # mime types: text/plain, text/html
            "source_language_code": "en-US",
            "target_language_code": "fr",
        }
    )

    # Display the translation for each input text provided
    for translation in response.translations:
        print(f"Translated text: {translation.translated_text}")

    return response

自定义翻译

通过提供您自己的示例翻译来自定义翻译 LLM 的回答。自定义翻译仅适用于翻译 LLM。

您可以通过 Vertex AI Studio 控制台或 API 请求自定义翻译,但有一个区别。仅当您在 TMX 或 TSV 文件中提供示例时,控制台才支持自定义翻译。只有当您在翻译请求中以内嵌方式提供示例(最多 5 个句对)时,此 API 才支持自定义翻译。

数据要求

如果您在用于 Google Cloud 控制台的文件中提供示例翻译,则这些示例必须以 TMX 或 TSV 文件中的句对形式编写。每个句对都包括一个源语言句段及其对应的译文句段。如需了解详情,请参阅 Cloud Translation 文档中的准备示例翻译

为了获得最准确的结果,请提供各种各样场景的具体示例。您必须至少提供五个句对,但不得超过 10,000 个句对。此外,一个句对最多可以包含 512 个字符。

控制台

  1. 在 Google Cloud 控制台的 Cloud Translation 部分中,进入 Vertex AI Studio 中的翻译文本页面。

    进入 Vertex AI Studio

  2. 运行设置窗格中,配置转换设置。

    1. 模型字段中,选择翻译 LLM
    2. 如需更改温度,请展开高级
  3. 点击添加示例

    1. 选择本地文件或 Cloud Storage 中的文件。Vertex AI Studio 会根据文件确定源语言和目标语言。
    2. 选择模型在生成回答之前要使用的示例数量。

    您选择的示例数量会计入每个请求 3,000 个输入字符数的限制。

  4. 在输入字段中,输入要翻译的文本。

  5. 点击提交

    Cloud Translation 会自动选择与您输入的内容最相似的参考句子的指定数量。翻译模型会识别样本中的模式,然后在生成回答时应用这些模式。

    每个请求的输出字符数限制为 3,000。 超出此限制的所有文本都会被丢弃。

  6. 如需获取演示如何请求翻译的代码或 curl 命令,请点击 获取代码

API

如需请求自定义翻译,请在翻译请求中最多添加五个参考句对。翻译模型使用所有这些模型来识别样本中的模式,然后在生成回答时应用这些模式。

REST

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_NUMBER_OR_ID:您的 Google Cloud 项目的数字或字母数字 ID
  • LOCATION:您要执行此操作的位置。 例如 us-central1
  • REFERENCE_SOURCE:参考句对中的源语言句子。
  • REFERENCE_TARGET:参考句对中的目标语言句子。
  • SOURCE_LANGUAGE:输入文本的语言代码。
  • TARGET_LANGUAGE:要将输入文本翻译成的目标语言。
  • SOURCE_TEXT:要翻译的源语言文本。

HTTP 方法和网址:

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"
  },
  "contents": ["SOURCE_TEXT"]
}]

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

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

Node.js

试用此示例之前,请按照 Cloud Translation 快速入门:使用客户端库中的 Node.js 设置说明进行操作。 如需了解详情,请参阅 Cloud Translation Node.js API 参考文档

如需向 Cloud Translation 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证

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

试用此示例之前,请按照 Cloud Translation 快速入门:使用客户端库中的 Python 设置说明进行操作。 如需了解详情,请参阅 Cloud Translation Python API 参考文档

如需向 Cloud Translation 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证

from google.cloud import aiplatform

def translate():
  # Create a client
  endpoint = aiplatform.Endpoint('projects/PROJECT_ID/locations/LOCATION/publishers/google/models/translate-llm')
  # Initialize the 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"]
  }]
  # Make the request
  response = endpoint.predict(instances=instances)
  # Handle the response
  print(response)
  

您还可以使用 Cloud Translation API 创建数据集并导入示例句对。使用 Cloud Translation API 请求翻译时,您可以添加数据集以自定义回答。该数据集仍然存在,并且可以在多个翻译请求中重复使用。如需了解详情,请参阅 Cloud Translation 文档中的请求自适应翻译