本页面介绍如何使用 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 模型来翻译文本。
控制台
在 Google Cloud 控制台的 Cloud Translation 部分中,进入 Vertex AI Studio 中的翻译文本页面。
在运行设置窗格的模型字段中,选择一个翻译模型。
如需更改模型设置(例如温度),请展开高级。
设置源语言和目标语言。
在输入字段中,输入要翻译的文本。
点击提交。
如需获取演示如何请求翻译的代码或 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:要翻译的源语言文本。
- MIME_TYPE(可选):源文本的格式,例如
text/html
或text/plain
。默认情况下,MIME 类型设置为text/plain
。
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"], "mimeType": "MIME_TYPE", "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) 在生成回答期间用于采样,在应用
topP
和topK
时会生成回答。温度可以控制词元选择的随机性。 较低的温度有利于需要更少开放性或创造性回复的提示,而较高的温度可以带来更具多样性或创造性的结果。温度为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 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Python
试用此示例之前,请按照 Cloud Translation 快速入门:使用客户端库中的 Python 设置说明进行操作。 如需了解详情,请参阅 Cloud Translation Python API 参考文档。
如需向 Cloud Translation 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
自定义翻译
通过提供您自己的示例翻译来自定义翻译 LLM 的回答。自定义翻译仅适用于翻译 LLM。
您可以通过 Vertex AI Studio 控制台或 API 请求自定义翻译,但有一个区别。只有在您在 TMX 或 TSV 文件中提供示例的情况下,控制台才支持自定义翻译。只有当您在翻译请求中内嵌提供示例(最多 5 个句子对)时,该 API 才支持自定义翻译。
数据要求
如果您在 Google Cloud 控制台的文件中提供示例翻译,则示例必须编写为句对形式,并保存为 TMX 或 TSV 文件。每个句对都包括一个源语言句段及其对应的译文句段。如需了解详情,请参阅 Cloud Translation 文档中的准备示例翻译。
为了获得最准确的结果,请提供各种各样场景的具体示例。您必须至少提供五个句对,但不得超过 10,000 个句对。此外,一个句对最多可以包含 512 个字符。
控制台
在 Google Cloud 控制台的 Cloud Translation 部分中,进入 Vertex AI Studio 中的翻译文本页面。
在运行设置窗格中,配置翻译设置。
- 在模型字段中,选择翻译 LLM。
- 如需更改温度,请展开高级。
点击添加示例。
- 选择本地文件或 Cloud Storage 中的文件。Vertex AI Studio 会根据文件确定源语言和目标语言。
- 选择模型在生成回答之前要使用的示例数量。
您选择的示例数量会计入每个请求 3,000 个输入字符数的限制。
在输入字段中,输入要翻译的文本。
点击提交。
Cloud Translation 会自动选择与您输入的内容最相似的参考句子的指定数量。翻译模型会识别样本中的模式,然后在生成回答时应用这些模式。
每个请求的输出字符数限制为 3,000。 超出此限制的所有文本都会被丢弃。
如需获取演示如何请求翻译的代码或 curl 命令,请点击
获取代码。
API
如需请求自定义翻译,请在翻译请求中添加最多五个参考句对。翻译模型使用所有这些模型来识别样本中的模式,然后在生成回答时应用这些模式。
REST
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_NUMBER_OR_ID:您的 Google Cloud 项目的数字或字母数字 ID
- LOCATION:您要执行此操作的位置。
例如
us-central1
。 - REFERENCE_SOURCE:参考句对中的源语言句子。
- REFERENCE_TARGET:参考句对中的目标语言句子。
- SOURCE_LANGUAGE:输入文本的语言代码。
- TARGET_LANGUAGE:要将输入文本翻译成的目标语言。
- SOURCE_TEXT:要翻译的源语言文本。
- MIME_TYPE(可选):源文本的格式,例如
text/html
或text/plain
。默认情况下,MIME 类型设置为text/plain
。
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"], "mimeType": "MIME_TYPE" }]
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 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 文档中的请求自适应翻译。