arrow_back

使用 BigQuery 实现多模态向量搜索:实验室挑战赛

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

使用 BigQuery 实现多模态向量搜索:实验室挑战赛

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

GSP523

Google Cloud 自学实验的徽标

概览

在实验室挑战赛中,我们会为您提供一个场景和一系列任务。您将使用从课程的各个实验中学到的技能自行确定如何完成这些任务,而不是按照分步说明进行操作。自动评分系统(显示在本页面中)会提供有关您是否已正确完成任务的反馈。

在您参加实验室挑战赛期间,我们不会再教授新的 Google Cloud 概念知识。您需要拓展所学的技能,例如通过更改默认值和查看并研究错误消息来更正您自己所犯的错误。

要想获得满分,您必须在该时间段内成功完成所有任务!

我们建议已报名参加“使用 BigQuery 实现多模态向量搜索”技能徽章课程的学员参加此实验室挑战赛。准备好接受挑战了吗?

挑战场景

您是 Cymbal 的一名数据科学家,Cymbal 是一家线上零售商店。您希望构建一个流水线,以随时搜索市场上的相似产品,为营销对比研究提供依据。您面临着以下挑战:

  • 如何处理多模态数据:您收集的数据属于多模态数据,包括文本、图片和视频,以及存储在 Cloud Storage 中的一些文件。
  • 如何执行语义相似度搜索,而不是关键字搜索:您想跨多个维度(例如图片、说明和具体特性)查找相似产品,而关键字搜索可能无法有效实现这一目标。
  • 如何使用 BigQuery 实现这一目标:由于您的大部分数据已存储在 BigQuery 中,使用同一工具可以最大限度缩短学习曲线。

为应对这些挑战,您决定使用 BigQuery 实现多模态向量搜索

测试的主题

  • 在 BigQuery 中创建外部来源连接并授予适当的 IAM 权限。
  • 创建对象表以存储图片。
  • 生成嵌入以将图片(多模态数据)转换为向量。
  • 运行向量搜索以查找相似产品。

前提条件

要完成此实验,您应该熟悉 BigQuery 和 Cloud Storage。

学习路线 Gemini in 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. 创建来源连接并授予 IAM 权限

创建外部来源连接

要在 BigQuery 中的 Vertex AI 上利用远程生成式 AI 模型(例如嵌入模型),请在名为 的区域中新建一个名为 vector_conn 的外部来源连接。

此连接充当 Vertex AI 和 BigQuery 之间的安全流水线,使您能够安全地使用生成式 AI 模型。

展开提示,获取实用技巧!

向新的服务账号授予 IAM 权限

要访问 Vertex AI 资源和 BigQuery 数据,您需要向服务账号授予适当的 IAM 权限,以创建外部来源连接。

将以下角色分配给在上一部分中生成的服务账号:

  • BigQuery Data Owner
  • Storage Object Viewer
  • Vertex AI User

展开提示,获取实用技巧!

点击检查我的进度以验证是否完成了以下目标: 创建来源连接并授予 IAM 权限。

任务 2. 创建对象表

要查询存储在 Google Cloud Storage 中的图片和视频等非结构化数据,请在预创建的名为 gcc_bqml_dataset 的 BigQuery 数据集中创建一个名为 gcc_image_object_table 的对象表。

该表存储有关对象的元数据,例如对象的网址和内容类型,但并不直接存储非结构化数据。由于对象表可以像任何其他 BigQuery 表那样执行查询,因此,您可以使用 SQL(或 Python)根据元数据过滤和选择对象。

在 BigQuery SQL 编辑器中运行以下 SQL 代码。请务必将括号 [] 内的占位符替换成正确的代码(例如,将 [PROJECT_ID] 替换成为此实验环境分配的项目 ID)。

Create or replace external table `[PROJECT_ID].[DATASET_NAME].[OBJECT_TABLE_NAME]` with connection `[PROJECT_ID].[CONNECTION_REGION].[CONNECTION_NAME]` options ( object_metadata='SIMPLE', uris=['gs://[PROJECT_ID]/*'] )

展开提示,获取实用技巧!

点击检查我的进度以验证是否完成了以下目标: 创建对象表。

任务 3. 生成嵌入

连接到嵌入模型

要连接到远程嵌入模型,请在预创建的 BigQuery 数据集(名为 gcc_bqml_dataset)中创建一个名为 gcc_embedding 的新模型,并将端点(模型名称)指定为 multimodalembedding@001

在 BigQuery SQL 编辑器中运行以下 SQL 代码。请务必将括号 [] 内的占位符替换成正确的代码(例如,将 [PROJECT_ID] 替换成为此实验环境分配的项目 ID)。

Create or replace model `[PROJECT_ID].[DATASET_NAME].[MODEL_NAME]` remote with connection `[PROJECT_ID].[CONNECTION_REGION].[CONNECTION_NAME]` options( [DEFINE_ENDPOINT] );

展开提示,获取实用技巧!

生成嵌入

生成图片嵌入后,将嵌入保存到名为 gcc_retail_store_embeddings 的表中,该表位于预创建的名为 gcc_bqml_dataset 的 BigQuery 数据集中。

  1. 在 BigQuery SQL 编辑器中运行以下 SQL 代码。请务必将括号 [] 内的占位符替换成正确的代码(例如,将 [PROJECT_ID] 替换成为此实验环境分配的项目 ID)。
Create or replace table `[PROJECT_ID].[DATASET_NAME].[EMBEDDINGS_TABLE_NAME]` as select *, REGEXP_EXTRACT(uri, r'[^/]+$') as product_name from [EMBEDDINGS_FUNCTION] ( MODEL `[PROJECT_ID].[DATASET_NAME].[MODEL_NAME]`, TABLE `[PROJECT_ID].[DATASET_NAME].[OBJECT_TABLE_NAME]` )

展开提示,获取实用技巧!

  1. [可选步骤] 若要查看嵌入结果,请更新并运行以下代码(请注意,嵌入结果为浮点数,可能无法直接解读其含义):
SELECT * FROM `[PROJECT_ID].[DATASET_NAME].[EMBEDDINGS_TABLE_NAME]`

点击检查我的进度以验证是否完成了以下目标: 创建新模型并生成嵌入。

任务 4. 运行向量搜索

执行向量搜索时,找到与搜索词组最相似的图片后,将搜索结果保存到名为 gcc_vector_search_table 的表中,该表位于预创建的名为 gcc_bqml_dataset 的 BigQuery 数据集中。

  1. 在 BigQuery SQL 编辑器中运行以下 SQL 代码。请务必将括号 [] 内的占位符替换成正确的代码(例如,将 [PROJECT_ID] 替换成为此实验环境分配的项目 ID)。
Create or replace table `[PROJECT_ID].[DATASET_NAME].[SEARCH_RESULTS_TABLE]` AS select base.uri, base.product_name, base.content_type, distance from [VECTOR_SEARCH_FUNCTION](table [DATASET_NAME].[EMBEDDINGS_TABLE_NAME],'ml_generate_embedding_result', ( SELECT ml_generate_embedding_result as embedding_col FROM [EMBEDDINGS_FUNCTION] ( MODEL `[DATASET_NAME].[MODEL_NAME]`, (select 'Men Sweaters' as content), STRUCT(TRUE AS flatten_json_output) ) ), [STATEMENT_TO_SELECT_TOP_2_RESULTS], distance_type => 'COSINE' );

展开提示,获取实用技巧!

  1. [可选步骤] 若要查看向量搜索结果,请更新并运行以下代码:
SELECT * FROM `[PROJECT_ID].[DATASET_NAME].[SEARCH_RESULTS_TABLE]`

点击检查我的进度以验证是否完成了以下目标: 运行向量搜索。

恭喜!

您已成功使用 BigQuery 实现多模态向量搜索!在本实验中,您首先建立了与外部资源的连接,并向服务账号授予了适当的 IAM 权限。接下来,您创建了对象表来存储图片元数据。之后,您生成了嵌入以将图片转换为向量。最后,您搜索向量并找到了所需产品。

现在,您可以按照相同的流程,在自己的应用场景中搜索多模态数据了!

Google Cloud 培训和认证

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

本手册的最后更新时间:2025 年 2 月 12 日

本实验的最后测试时间:2025 年 2 月 12 日

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

准备工作

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

使用无痕浏览模式

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

登录控制台

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

此内容目前不可用

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

太好了!

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

一次一个实验

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

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

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