众所周知,图像、语音和文本数据等非结构化数据难以管理,更难分析。非结构化数据的分析包括用例,例如使用 OCR 从图像中提取文本、对客户评论进行情感分析以及简化分析翻译。所有这些数据都需要存储、管理并可用于机器学习。
新的 BigQuery ML 推理引擎使从业者能够使用预训练的 AI 模型对非结构化数据进行推理。可以分析这些推论的结果以提取见解并改进决策制定。这一切都可以在 BigQuery 中完成,只需使用几行 SQL。
在此博客中,我们将探讨如何使用新的 BigQuery ML 推理引擎对 BigQuery 中的非结构化数据运行推理。我们将演示如何检测和翻译电影海报图像中的文本,以及如何对电影评论进行情感分析。
BigQuery ML 的新推理引擎
Google Cloud 拥有一套预训练的 AI 模型和 API。BigQuery ML 推理引擎可以调用这些 API 并代表您管理响应。您所要做的就是定义要使用的模型并对数据运行推理。所有这些都是使用 SQL 在 BigQuery 中完成的。推理结果以 JSON 格式返回,并存储在 BigQuery 中以供分析。
为什么要在 BigQuery 中运行推理?
传统上,使用 AI 模型运行推理需要 Python 等编程语言方面的专业知识。仅使用 SQL 在 BigQuery 中运行推理的能力可以使使用 AI 从数据中生成见解变得简单且易于访问。BigQuery 也是无服务器的,因此您可以专注于分析数据,而不必担心可扩展性和基础架构。
推理结果存储在 BigQuery 中,这使您可以立即分析非结构化数据,而无需移动或复制数据。这里的一个关键优势是,这种分析还可以与存储在 BigQuery 中的结构化数据相结合,让您有机会加深您的洞察力。这可以简化数据管理并最大限度地减少所需的数据移动和复制量。
支持哪些型号?
目前,BigQuery ML 推理引擎可以与这些预训练的 Vertex AI 模型一起使用:
Vision AI API:此模型可用于从由BigQuery 对象表管理并存储在 Cloud Storage 上的图像中提取特征。例如,Vision AI 可以检测和分类对象,或阅读手写文本。
Translation AI API:该模型可用于将 BigQuery 表中的文本翻译成一百多种语言。
自然语言处理 API:此模型可用于从存储在 BigQuery 表中的文本数据中获取含义。例如,情感分析等功能可用于确定文本的情感基调是积极的还是消极的。
那么,这在实践中如何运作?让我们看一个使用电影海报图像的例子
我们将在 BigQuery ML 中为 Vision AI、Translation AI 和 NLP AI 定义预训练模型。
然后,我们将使用 Vision AI 从一些经典电影海报图像中检测文本。
接下来,我们将使用 Translation AI 检测任何外国海报并将其翻译成我们选择的语言 - 在本例中为英语。
最后,我们将在 BigQuery 中将非结构化数据与结构化数据结合起来。
我们将使用从电影海报中提取的电影标题从 BigQuery IMDB 公共数据集中查找观众评论。然后,我们可以使用 NLP AI 对这些评论进行情绪分析。
注意:BigQuery ML 推理引擎目前处于预览阶段。您需要填写此登记表,才能将您的项目列入白名单,以便与 BQML 推理引擎一起使用。
我们将提供定义模型和运行推理所需的 BigQuery SQL 示例。您需要查看我们的笔记本以获取有关如何在您的 Google Cloud 项目中启动和运行它的详细指南。
1. 在 BigQuery 中定义您的 AI 模型
您将需要启用下面列出的 API,还需要创建云资源连接以使 BigQuery 能够与这些服务进行交互。
然后,您可以为每个 AI 服务运行 CREATE MODEL 查询以创建预训练模型,并根据需要替换 model_name。
2. 使用 Vision AI API 检测存储在 Cloud Storage 中的图像中的文本
您需要在 Cloud Storage 中为图像创建一个对象表。此只读对象表提供存储在 Cloud Storage 中的图像的元数据:
要从我们的海报中检测文本,您可以使用ML.ANNOTATE_IMAGE并指定 text_detection 功能。
JSON 响应将返回到 BigQuery,其中包括文本内容和文本的语言代码。您可以使用上面突出显示的点注释将 JSON 解析为标量结果。

3.使用Translation AI API翻译外国电影片名
ML.TRANSLATE现在可用于将我们从图像中提取的外国标题翻译成英文。您只需要指定翻译的目标语言和电影海报表:
注意:包含要翻译的文本的表列必须命名为 text_content:结果表将包含可以解析以提取原始语言和翻译文本的 json。在这种情况下,模型检测到标题文本是法语并将其翻译成英语:
4. 最后,使用自然语言处理 (NLP) 对电影评论进行情感分析
您可以轻松地将非结构化数据的推理结果与其他 BigQuery 数据集结合起来,以支持您的分析。例如,我们现在可以将从海报中提取的电影标题与存储在 BigQuery 的 IMDB 公共数据集中的数千条电影评论结合起来`bigquery-public-data.imdb.reviews`。
您可以使用ML.UNDERSTAND_TEXT和analyze_sentiment功能对其中一些评论进行情绪分析,以确定它们是正面的还是负面的:
注意:包含要分析的文本的表列必须命名为 text_content:JSON 响应将包含分数和量级。分数表示文本的整体情感,而大小表示存在多少情感内容:
那么,失落的世界与当年的其他电影相比如何?
最后,我们将比较 1925 年失落的世界电影与当年上映的其他电影的平均评分,看看哪部更受欢迎。这可以使用熟悉的 SQL 分析来完成:
看起来 The Lost World 与 Sawdust 的 Sally 差点夺冠!想了解更多?查看我们的笔记本,了解有关在 Google Cloud 中使用 BQML 推理引擎处理非结构化数据的分步指南。