arrow_back

在 BigQuery 中利用导入的模型简化野生动物图片分类

登录 加入
访问 700 多个实验和课程

在 BigQuery 中利用导入的模型简化野生动物图片分类

实验 1 小时 universal_currency_alt 5 个积分 show_chart 中级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

GSP1248

Google Cloud 自学实验的徽标

概览

在本实验中,您将学习如何利用导入的模型(以 ONNX 格式创建的 PyTorch 模型)和 Google SQL 查询,在 BigQuery 中简化图片分类工作流。

作为 Cymbal 媒体与娱乐公司的新任数据分析师,您的任务是尝试使用 BigQuery Machine Learning(简称 BigQuery ML)推理功能通过导入的模型对野生动物图片进行分类。本项目旨在实现图片分类流程的自动化,简化内容创作,构建一个更庞大的野生动物图片数据库,以方便将来在 Cymbal 流媒体平台上发布内容。

ONNX 是一种用于表示机器学习模型的开放格式。ONNX 定义了一组通用运算符(机器学习和深度学习模型的组成块)和一种通用文件格式,使 AI 开发者能够在各种框架、工具、运行时和编译器中使用模型。

BigQuery 是一个 AI 就绪型全托管式数据分析平台,有助于充分发掘数据价值,并支持多引擎、多格式和多云应用。其核心功能之一便是 BigQuery Machine Learning 推理,该功能允许用户通过 SQL 查询创建和运行机器学习模型。

通过 GoogleSQL 查询运行机器学习模型

通常,在对大型数据集执行机器学习或人工智能 (AI) 任务时,需要进行大量的程序设计并深入了解机器学习框架。因此,各公司只有一小部分人能负责开发解决方案,而那些精通数据分析但对机器学习和程序设计专业知识知之甚少的数据分析师只能是爱莫能助。现在,借助 BigQuery ML,SQL 从业人员可以利用现有的 SQL 知识、技能和工具通过 ONNX 构建模型,根据模型生成结果并将其存储在 Cloud Storage 存储桶中。从 MLOps 角度来看,这能为各公司提供更多的模型选择和更大的灵活性。此外,还有助于扩大机器学习计划的规模。

图片数据集

本实验中使用的图片来自 Kaggle 上的动物检测图片数据集

目标

在本实验中,您将学习如何完成以下操作:

  • 创建 Cloud 资源连接。
  • 向连接的服务账号授予权限。
  • 创建 BigQuery 数据集和表。
  • 将 ONNX 模型导入 BigQuery。
  • 利用导入的模型对图片进行分类。

设置和要求

点击“开始实验”按钮前的注意事项

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。

此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式(推荐)或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:请仅使用学生账号完成本实验。如果您使用其他 Google Cloud 账号,则可能会向该账号收取费用。

如何开始实验并登录 Google Cloud 控制台

  1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:

    • “打开 Google Cloud 控制台”按钮
    • 剩余时间
    • 进行该实验时必须使用的临时凭据
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
  2. 点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。

    该实验会启动资源并打开另一个标签页,显示“登录”页面。

    提示:将这些标签页安排在不同的窗口中,并排显示。

    注意:如果您看见选择账号对话框,请点击使用其他账号
  3. 如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。

    {{{user_0.username | "<用户名>"}}}

    您也可以在“实验详细信息”窗格中找到“用户名”。

  4. 点击下一步

  5. 复制下面的密码,然后将其粘贴到欢迎对话框中。

    {{{user_0.password | "<密码>"}}}

    您也可以在“实验详细信息”窗格中找到“密码”。

  6. 点击下一步

    重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。 注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
  7. 继续在后续页面中点击以完成相应操作:

    • 接受条款及条件。
    • 由于这是临时账号,请勿添加账号恢复选项或双重验证。
    • 请勿注册免费试用。

片刻之后,系统会在此标签页中打开 Google Cloud 控制台。

注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。 “导航菜单”图标和“搜索”字段

任务 1.创建 Cloud 资源连接

在此任务中,您将在 BigQuery 中创建 Cloud 资源连接,以便将 Cloud Storage 中的图片导入数据集内的对象表中。

注意:请使用实验指南中指定的 Google Cloud 区域创建资源连接。此外,我们还建议您在该区域创建数据集,这样有助于减少实验中发生错误的几率。
  1. 在 Google Cloud 控制台中,点击导航菜单下的 BigQuery

  2. 系统会显示“欢迎使用 BigQuery”弹出式窗口。点击完成

  3. 要创建连接,点击 + 添加,然后点击与外部数据源的连接

  4. 在“连接类型”列表中,选择 Vertex AI 远程模型、远程函数和 BigLake(Cloud 资源)

  5. 在“连接 ID”字段中,输入 onnx_conn 作为连接名称。

  6. 在“位置类型”字段中,选择区域

  7. 在“区域”字段中,选择“”。

  8. 点击创建连接

  9. 点击转至连接

  10. 您会看到该连接已添加到 BigQuery 探索器中您项目下的“外部连接”部分。将“连接信息”窗格中的服务账号 ID 复制到一个文本文件中,以便在下个任务中使用。

点击检查我的进度,验证是否完成了以下目标: 创建 Cloud 资源连接。

任务 2.查看图片和文件,并向服务账号授予访问权限

在此任务中,您将查看图片和文件(ONNX 模型和 classifier.csv),并向 Cloud 资源连接的服务账号授予 IAM 权限。

查看 Cloud Storage 上的图片和 ONNX 模型

在开始执行向资源连接服务账号授予权限的任务之前,先查看存储在 Cloud Storage 存储桶中的图片、模型和 classifier.csv 文件。

  1. 在 Google Cloud 控制台中,选择导航菜单 (“导航菜单”图标),然后选择 Cloud Storage

  2. 点击 -bucket 存储桶。

  3. 该存储桶包含 gsp1248 文件夹,请打开该文件夹。您将看到其中有三项内容:

    • 图片文件夹包含待分类的所有图片。请随意访问图片文件夹,并查看图片。您会看到一张图片,上面有狮子、黑天鹅、河马、美洲黑熊和帝王蟹。
    • resnet18.onnx 文件是模型文件。在后续任务中,您要将该文件导入 BigQuery 并使用它。
    • 在查询中,将使用 classifier.csv 文件和模型来对图片进行分类。

向连接的服务账号授予 IAM 权限

开始在 BigQuery 中执行相关操作之前,向资源连接的服务账号授予 IAM 权限,可确保在运行查询时不会遇到访问遭拒的错误。

  1. 返回存储桶根目录。

  2. 点击权限

  3. 点击授予访问权限

  4. 新的主账号字段中,输入之前复制的服务账号 ID。

  5. 在“选择角色”字段中,输入 Storage Object,然后选择 Storage Object Admin 角色。

  6. 点击保存

    这样,该服务账号 ID 就拥有了 Storage Object Admin 角色。

点击检查我的进度,验证是否完成了以下目标: 向连接的服务账号授予 IAM 权限

任务 3.在 BigQuery 中创建数据集和表

在此任务中,您需要为项目创建一个数据集、一个用于存储图片的对象表,以及一个存储分类列表的表。

创建数据集

  1. 在 Google Cloud 控制台中,选择导航菜单 (“导航菜单”图标),然后选择 BigQuery

  2. 探索器面板中,针对“”,选择查看操作 (“更多菜单”图标),然后选择创建数据集

    通过创建数据集来存储数据库对象,包括表和模型。

  3. 创建数据集窗格中,输入以下信息:

    字段
    数据集 ID onnx_demo
    位置类型 选择“

    将其他字段保留默认值。

  4. 点击创建数据集

    这将创建 onnx_demo 数据集,并在 BigQuery 探索器中您的项目下列出该数据集。

为图片创建对象表

创建数据集后,可以创建引用存储桶中图片的对象表。

要创建对象表,可以使用 SQL 查询。

  1. 点击 + 即可创建新的 SQL 查询。

  2. 在查询编辑器中,粘贴下面的查询。

    CREATE OR REPLACE EXTERNAL TABLE `onnx_demo.wildlife` WITH CONNECTION `{{{project_0.default_region|lab region}}}.onnx_conn` OPTIONS ( object_metadata = 'SIMPLE', uris = ['gs://{{{project_0.project_id|set at lab start}}}-bucket/gsp1248/images/*'] );
  3. 运行查询。

    这会将 wildlife 对象表添加到 onnx_demo 数据集中,并加载每张动物图片的 URI(Cloud Storage 位置)。

  4. 在“探索器”中,点击 wildlife 表,查看其架构和详细信息。

创建用于存储分类列表的表

要创建用于存储分类列表的表,可以使用 SQL 查询。

  1. 点击 + 即可创建新的 SQL 查询。

  2. 在查询编辑器中,粘贴下面的查询。

    LOAD DATA OVERWRITE onnx_demo.classifier (ID INT64,Classification STRING) FROM FILES ( format = 'CSV', uris = ['gs://{{{project_0.project_id|set at lab start}}}-bucket/gsp1248/classifier.csv']);
  3. 运行查询。

    这会将 classifier 表添加到 onnx_demo 数据集中,并在数据集中加载每项内容的 ID 和分类。其中包括将在本实验中后续环节进行分类的野生动物。

  4. 在“探索器”中,点击 classifier 表,查看其架构和详细信息。请随意查询此表,以查看系统如何对每项内容进行分类。注意:该表包含许多其他内容,而不仅限于野生动物(如动物、鱼类、昆虫和鸟类)。

点击检查我的进度,验证是否完成了以下目标: 在 BigQuery 中创建数据集和表

任务 4.将模型导入 BigQuery

在此任务中,您需要将 resnet18 ONNX 模型导入 BigQuery,以便使用该模型对图片进行分类。

  1. 点击 + 即可创建新的 SQL 查询。

  2. 在查询编辑器中,粘贴下面的查询。

    CREATE OR REPLACE MODEL `onnx_demo.model` OPTIONS (MODEL_TYPE='ONNX', MODEL_PATH='gs://{{{project_0.project_id|set at lab start}}}-bucket/gsp1248/resnet18.onnx')
  3. 运行查询。

    这会将模型添加到“模型”部分的 onnx_demo 数据集中。

  4. 在“探索器”中,点击模型并查看详细信息。

点击检查我的进度,验证是否完成了以下目标: 将模型导入 BigQuery

任务 5.利用导入的 ONNX 模型对图片进行分类

在此任务中,您需要预留一个槽,并将其分配给您的项目,然后使用查询通过 ONNX 模型对新图片进行分类。

添加槽预留

要使用 ONNX 模型,就必须创建槽预留,并将其分配给您的项目。

  1. 在 BigQuery 菜单中,点击容量管理

  2. 在“容量管理”页,点击创建预留

  3. 在“创建预留”页,输入 reservation 作为预留名称。

  4. 针对“位置”选择“”。

  5. 在“预留大小上限选择器”选项中,选择小(100 个槽)

  6. 点击保存

将槽预留分配给您的项目。

  1. 点击您的预留对应的预留操作按钮(查看操作)。

  2. 在弹出式菜单中,点击创建分配

  3. 在“创建分配”弹出式窗口中,可以看到“作业类型”默认为“查询”。保留该选项。

  4. 点击浏览

  5. 在弹出式窗口中,选择项目名称。这样会将项目添加到“选择一个组织、文件夹或项目”字段中。

  6. 点击创建

    这样会将项目分配到刚刚创建的槽预留。

  7. 等待 2 分钟。将槽预留分配应用到账号需要一些时间。

使用模型对图片进行分类

  1. 返回至 BigQuery Studio。

  2. 点击 + 即可创建新的 SQL 查询。

  3. 在查询编辑器中,粘贴下面的查询。

    SELECT * FROM `{{{project_0.project_id|set at lab start}}}.onnx_demo.classifier` WHERE EXISTS ( SELECT 1 FROM ML.PREDICT(MODEL onnx_demo.model, ( SELECT ML.RESIZE_IMAGE(ML.DECODE_IMAGE(DATA), 224, 224, FALSE) AS input FROM `onnx_demo.wildlife` ) ) WHERE class_label = ID - 1 )
  4. 运行查询。

    这样会对图片进行分类,每张图片的分类结果按行(包含 ID 和根据 ONNX 模型预测的分类)存放。

点击检查我的进度,验证是否完成了以下目标: 使用导入的 ONNX 模型对图片进行分类

恭喜!

您成功创建了 Cloud 资源连接,为该连接服务账号授予了访问权限,创建了数据集和表,将 ONNX 模型导入了 BigQuery,并使用该模型对图片进行了分类。

后续步骤/了解详情

Google Cloud 培训和认证

…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。

本手册的最后更新时间:2024 年 5 月 24 日

本实验的最后测试时间:2024 年 5 月 24 日

版权所有 2025 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。