使用 ML.Translate 函数翻译文本
本文档介绍了如何将 ML.TRANSLATE 函数与远程模型搭配使用来翻译 BigQuery 标准表中的文本。
所需的角色
如需创建远程模型和翻译文本,您需要在项目级层拥有以下 Identity and Access Management (IAM) 角色:
- 创建和使用 BigQuery 数据集、表和模型:BigQuery Data Editor (roles/bigquery.dataEditor)
- 创建、委托和使用 BigQuery 连接:BigQuery Connections Admin ( - roles/bigquery.connectionsAdmin)- 如果您尚未配置默认连接,则可以在运行 - CREATE MODEL语句时创建并设置一个连接。为此,您必须拥有项目的 BigQuery Admin (- roles/bigquery.admin) 角色。如需了解详情,请参阅配置默认连接。
- 向连接的服务账号授予权限:Project IAM Admin ( - roles/resourcemanager.projectIamAdmin)
- 创建 BigQuery 作业:BigQuery Job User ( - roles/bigquery.jobUser)
这些预定义角色包含执行本文档中的任务所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
- 创建数据集:bigquery.datasets.create
- 创建、委托和使用连接:bigquery.connections.*
- 设置服务账号权限:resourcemanager.projects.getIamPolicy和resourcemanager.projects.setIamPolicy
- 创建模型并运行推断:- bigquery.jobs.create
- bigquery.models.create
- bigquery.models.getData
- bigquery.models.updateData
- bigquery.models.updateMetadata
 
准备工作
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- 
    
    
      In the Google Cloud console, on the project selector page, select or create a Google Cloud project. Roles required to select or create a project - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
- 
      Create a project: To create a project, you need the Project Creator
      (roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
 
- 
  
    Verify that billing is enabled for your Google Cloud project. 
- 
  
  
    
      Enable the BigQuery, BigQuery Connection API, and Cloud Translation APIs. Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
- 
    
    
      In the Google Cloud console, on the project selector page, select or create a Google Cloud project. Roles required to select or create a project - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
- 
      Create a project: To create a project, you need the Project Creator
      (roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
 
- 
  
    Verify that billing is enabled for your Google Cloud project. 
- 
  
  
    
      Enable the BigQuery, BigQuery Connection API, and Cloud Translation APIs. Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
- 在 Google Cloud 控制台中,前往 BigQuery 页面。 
- 在左侧窗格中,点击 探索器:  - 如果您没有看到左侧窗格,请点击 展开左侧窗格以打开该窗格。 
- 在探索器窗格中,点击您的项目名称。 
- 点击 查看操作 > 创建数据集。 
- 在 创建数据集 页面上,执行以下操作: - 在数据集 ID 中,输入数据集的名称。 
- 在位置类型部分,选择区域或多区域。 - 如果您选择了区域,请从区域列表中选择一个位置。
- 如果您选择了多区域,请从多区域列表中选择美国或欧洲。
 
- 点击创建数据集。 
 
- 前往 BigQuery 页面。 
- 在探索器窗格中,点击 添加数据:   - 系统随即会打开添加数据对话框。 
- 在过滤条件窗格中的数据源类型部分,选择企业应用。 - 或者,在搜索数据源字段中,您可以输入 - Vertex AI。
- 在精选数据源部分中,点击 Vertex AI。 
- 点击 Vertex AI 模型:BigQuery 联合解决方案卡片。 
- 在连接类型列表中,选择 Vertex AI 远程模型、远程函数、BigLake 和 Spanner(Cloud 资源)。 
- 在连接 ID 字段中,输入连接的名称。 
- 点击创建连接。 
- 点击转到连接。 
- 在连接信息窗格中,复制服务账号 ID 以在后续步骤中使用。 
- 在命令行环境中,创建连接: - bq mk --connection --location=REGION --project_id=PROJECT_ID \ --connection_type=CLOUD_RESOURCE CONNECTION_ID - --project_id参数会替换默认项目。- 请替换以下内容: - REGION:您的连接区域
- PROJECT_ID:您的 Google Cloud 项目 ID
- CONNECTION_ID:您的连接的 ID
 - 当您创建连接资源时,BigQuery 会创建一个唯一的系统服务账号,并将其与该连接相关联。 - 问题排查:如果您收到以下连接错误,请更新 Google Cloud SDK: - Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of... 
- 检索并复制服务账号 ID 以在后续步骤中使用: - bq show --connection PROJECT_ID.REGION.CONNECTION_ID - 输出类似于以下内容: - name properties 1234.REGION.CONNECTION_ID {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
- 启动 Cloud Shell。
- 
    设置要应用 Terraform 配置的默认 Google Cloud 项目。 您只需为每个项目运行一次以下命令,即可在任何目录中运行它。 export GOOGLE_CLOUD_PROJECT=PROJECT_ID 如果您在 Terraform 配置文件中设置显式值,则环境变量会被替换。 
- 
    在 Cloud Shell 中,创建一个目录,并在该目录中创建一个新文件。文件名必须具有 .tf扩展名,例如main.tf。在本教程中,该文件称为main.tf。mkdir DIRECTORY && cd DIRECTORY && touch main.tf 
- 
    如果您按照教程进行操作,可以在每个部分或步骤中复制示例代码。 将示例代码复制到新创建的 main.tf中。(可选)从 GitHub 中复制代码。如果端到端解决方案包含 Terraform 代码段,则建议这样做。 
- 查看和修改要应用到您的环境的示例参数。
- 保存更改。
- 
    初始化 Terraform。您只需为每个目录执行一次此操作。
    terraform init (可选)如需使用最新的 Google 提供程序版本,请添加 -upgrade选项:terraform init -upgrade 
- 
    查看配置并验证 Terraform 将创建或更新的资源是否符合您的预期:terraform plan 根据需要更正配置。 
- 
    通过运行以下命令并在提示符处输入 yes来应用 Terraform 配置:terraform apply 等待 Terraform 显示“应用完成!”消息。 
- 打开您的 Google Cloud 项目以查看结果。在 Google Cloud 控制台的界面中找到资源,以确保 Terraform 已创建或更新它们。
- 前往 IAM 和管理页面。 
- 点击 Add。 - 系统随即会打开添加主账号对话框。 
- 在新的主账号字段中,输入您之前复制的服务账号 ID。 
- 在选择角色字段中,选择 Service Usage,然后选择 Service Usage Consumer。 
- 点击添加其他角色。 
- 在选择角色字段中,选择 BigQuery,然后选择 BigQuery Connection User。 
- 点击添加其他角色。 
- 在选择角色字段中,选择 Cloud Translation,然后选择 Cloud Translation API User。 
- 点击保存。 
- PROJECT_NUMBER:您的项目编号。
- MEMBER:您之前复制的服务账号 ID。
- PROJECT_ID:您的项目 ID。
- DATASET_ID:包含模型的数据集的 ID。 此数据集必须与您使用的连接位于同一位置。
- MODEL_NAME:模型的名称。
- REGION:连接使用的区域。
- CONNECTION_ID:连接 ID,例如- myconnection。- 当您在 Google Cloud 控制台中查看连接详情时,连接 ID 是连接 ID 中显示的完全限定连接 ID 的最后一部分的值,例如 - projects/myproject/locations/connection_location/connections/myconnection
- PROJECT_ID:您的项目 ID。
- DATASET_ID:包含该模型的数据集的 ID。
- MODEL_NAME:模型的名称。
- TABLE_NAME:包含名为- text_content的列中要翻译文本的表的名称。如果文本位于其他名称的列中,请指定- text_content作为该列的别名。
- QUERY:包含名为- text_content的列中要翻译的文本的查询。如果文本位于其他名称的列中,请指定- text_content作为该列的别名。
- MODE:支持的翻译模式的名称。
- LANGUAGE:支持的语言代码的名称。仅当您使用- TRANSLATE_TEXT翻译模式时才需要此参数。
- 如需详细了解 BigQuery ML 中的模型推理,请参阅模型推理概览。
- 如需详细了解如何使用 Cloud AI API 执行 AI 任务,请参阅 AI 应用概览。
- 如需详细了解生成式 AI 模型支持的 SQL 语句和函数,请参阅生成式 AI 模型的端到端用户体验历程。
- 试用使用 BigQuery ML 和 Vertex AI 预训练模型进行非结构化数据分析笔记本。
创建数据集
创建 BigQuery 数据集以包含您的资源:
控制台
bq
创建连接
如果您已配置默认连接,或者您具有 BigQuery Admin 角色,则可以跳过此步骤。
创建一个 Cloud 资源连接供远程模型使用,并获取连接的服务账号。在上一步中创建的数据集所在的位置创建连接。
从下列选项中选择一项:
控制台
bq
Terraform
使用 google_bigquery_connection 资源。
如需向 BigQuery 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为客户端库设置身份验证。
以下示例在 US 区域中创建一个名为 my_cloud_resource_connection 的 Cloud 资源连接:
如需在 Google Cloud 项目中应用 Terraform 配置,请完成以下部分中的步骤。
准备 Cloud Shell
准备目录
每个 Terraform 配置文件都必须有自己的目录(也称为“根模块”)。
应用更改
向服务账号授予访问权限
从下列选项中选择一项:
控制台
gcloud
使用 gcloud projects add-iam-policy-binding 命令:
gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/serviceusage.serviceUsageConsumer' --condition=None gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/bigquery.connectionUser' --condition=None gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/cloudtranslate.user' --condition=None
替换以下内容:
未能授予权限会导致错误。
创建模型
使用 CLOUD_AI_TRANSLATE_V3 这一 REMOTE_SERVICE_TYPE 创建远程模型:
CREATE OR REPLACE MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME` REMOTE WITH CONNECTION {DEFAULT | `PROJECT_ID.REGION.CONNECTION_ID`} OPTIONS (REMOTE_SERVICE_TYPE = 'CLOUD_AI_TRANSLATE_V3');
替换以下内容:
翻译文字
使用 ML.TRANSLATE 函数翻译文本:
SELECT * FROM ML.TRANSLATE( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, { TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (QUERY) }, STRUCT('MODE' AS translate_mode, ['LANGUAGE' AS target_language_code]) );
替换以下内容:
示例 1
以下示例将表的 text_content 列中的文本翻译为印地语:
SELECT * FROM ML.TRANSLATE( MODEL `mydataset.mytranslatemodel`, TABLE mydataset.mytable, STRUCT('translate_text' AS translate_mode, 'hi' AS target_language_code) );
示例 2
以下示例检测表的 comment 列中文本的语言:
SELECT * FROM ML.TRANSLATE( MODEL `mydataset.mytranslatemodel`, (SELECT comment AS text_content from mydataset.mytable), STRUCT('detect_language' AS translate_mode) );