本页面简要介绍了 Spanner Vertex AI 集成。Spanner Vertex AI 集成适用于 GoogleSQL 和 PostgreSQL 数据库。
Spanner Vertex AI 集成有助于您通过 GoogleSQL 和 PostgreSQL 接口访问托管在 Vertex AI 上的分类器和回归机器学习模型。这有助于将机器学习预测服务功能与使用 DQL/DML 查询执行的常规 Spanner 数据访问操作无缝集成。
Spanner Vertex AI 集成的优势
与分别访问 Spanner 数据和 Vertex AI 预测端点的方法相比,使用 Spanner Vertex AI 集成生成机器学习预测结果具有多项优势:
- 性能:
- 延迟时间更短:Spanner Vertex AI 集成直接与 Vertex AI 服务通信,从而消除了运行 Spanner 客户端的计算节点与 Vertex AI 服务之间的额外往返时间。
- 更高的吞吐量/并行度:Spanner Vertex AI 集成在 Spanner 的分布式查询处理基础设施之上运行,该基础设施支持高度可并行化查询执行。
- 用户体验:
- 能够使用简单、连贯且熟悉的单一 SQL 接口,在 Spanner 级别的规模上实现数据转换和机器学习服务场景,从而降低机器学习的入门门槛,并提供更顺畅的用户体验。
- 费用:
- Spanner Vertex AI 集成使用 Spanner 计算容量来合并机器学习计算和 SQL 查询执行的结果,从而无需为此预配额外的计算资源(例如,在 Compute Engine 或 Google Kubernetes Engine 中)。
Spanner Vertex AI 集成的工作原理是什么?
Spanner Vertex AI 集成不会托管机器学习模型,而是依赖于 Vertex AI 服务基础设施。您无需使用 Vertex AI 训练模型,即可将其与 Spanner Vertex AI 集成搭配使用,但必须将其部署到 Vertex AI 端点。
如需使用存储在 Spanner 中的数据训练模型,您可以使用以下方法:
结合使用 BigQuery 联合查询和 BigQuery ML。
Spanner Vertex AI 集成扩展了使用机器学习模型的以下函数:
通过对 Spanner 数据使用 SQL 调用模型,生成机器学习预测结果。您可以使用来自 Vertex AI Model Garden 的模型,也可以使用部署到 Vertex AI 端点的模型。
生成文本嵌入,以使 LLM 将文本提示转换为数字。如需详细了解嵌入,请参阅获取文本嵌入。
使用 Spanner Vertex AI 集成函数
Spanner Vertex AI 集成中的模型可用于使用机器学习预测函数在 SQL 代码中生成预测结果或文本嵌入。这些函数如下所示:
GoogleSQL
您可以将以下机器学习预测函数用于 GoogleSQL:
您需要先使用 CREATE MODEL
DDL 语句注册模型,然后才能将其与 ML.PREDICT
函数搭配使用。
您还可以使用 SAFE.ML.PREDICT
在预测结果中返回 null
,而不是错误。在运行大型查询且可以容忍部分预测失败的情况下,这非常有用。
PostgreSQL
您可以将以下机器学习预测函数用于 PostgreSQL:
如需使用这些函数,您可以从 Vertex AI Model Garden 中选择模型,也可以使用已部署到 Vertex AI 的模型。
如需详细了解如何将模型部署到 Vertex AI 中的端点,请参阅将模型部署到端点。
如需详细了解如何使用这些函数生成机器学习预测结果,请参阅使用 SQL 生成机器学习预测结果。
如需详细了解如何使用这些函数生成文本嵌入,请参阅获取文本嵌入。
价格
将 Spanner 与 Spanner Vertex AI 集成搭配使用时,Spanner 不会产生额外费用。但是,此功能可能会产生其他费用:
您需要按照标准费率为 Vertex AI Online Prediction 支付费用。总费用取决于您使用的模型类型。某些模型类型按小时收取固定费用,具体取决于您使用的机器类型和节点数。某些模型类型具有按调用计算的费率。我们建议您将后者部署在您已设置明确预测配额的专用项目中。
您需要按照标准费率为 Spanner 和 Vertex AI 之间的数据传输支付费用。总费用取决于托管执行查询的服务器所在的区域,以及托管所调用端点的区域。如需最大限度地降低费用,请将 Vertex AI 端点部署在与 Spanner 实例相同的区域。使用多区域实例配置或多个 Vertex AI 端点时,请将端点部署在同一大洲。
SLA
由于Vertex AI Online Prediction 可用性较低,因此您必须在使用 Spanner Vertex AI 集成时正确配置 Spanner 机器学习模型,以保持Spanner 的高可用性:
- Spanner 机器学习模型必须在后端使用多个 Vertex AI 端点才能实现故障切换。
- Vertex AI 端点必须符合 Vertex AI 服务等级协议 (SLA)。
- Vertex AI 端点必须预配足够的容量来处理传入流量。
- Vertex AI 端点必须使用靠近 Spanner 数据库的单独区域,以避免区域性服务中断。
- Vertex AI 端点应使用单独的项目,以避免出现每个项目的预测配额问题。
冗余 Vertex AI 端点的数量取决于其服务等级协议 (SLA),以及 Spanner 查询中的行数:
Spanner 服务等级协议 (SLA) | Vertex AI 服务等级协议 (SLA) | 1 行 | 10 行 | 100 行 | 1000 行 |
---|---|---|---|---|---|
99.99% | 99.9% | 2 | 2 | 2 | 3 |
99.99% | 99.5% | 2 | 3 | 3 | 4 |
99.999% | 99.9% | 2 | 2 | 3 | 3 |
99.999% | 99.5% | 3 | 3 | 4 | 4 |
Vertex AI 端点不需要托管完全相同的模型。我们建议您将 Spanner 机器学习模型配置为使用主要的计算密集型复杂模型作为其第一个端点。后续故障切换端点可以指向计算密集度较低、可更好地扩缩且可以避免出现流量高峰的简化模型。
限制
- 模型输入和输出必须是 JSON 对象。
合规性
Assured Workloads 不支持 Vertex AI Prediction API。启用限制资源使用限制条件会停用 Vertex AI API,并有效地停用 Spanner Vertex AI 集成功能。
此外,我们建议您创建 VPC Service Controls 边界,以确保您的生产数据库无法连接到可能未正确配置合规性的非生产项目中的 Vertex AI 端点。