本页面简要介绍了 Spanner Vertex AI 集成。Spanner Vertex AI 集成适用于 GoogleSQL 和 PostgreSQL 数据库。
Spanner Vertex AI 集成有助于您通过 GoogleSQL 和 PostgreSQL 页面访问托管在 Vertex AI 上的分类器和回归机器学习模型。这有助于将 ML 预测服务功能与使用 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 在线预测的标准费率付费。总费用取决于您使用的模型类型。某些模型类型的费率是按小时固定的,具体取决于您使用的机器类型和节点数量。某些模型类型具有每通话费率。我们建议您在已设置明确预测配额的专用项目中部署后者。
您需要为在 Spanner 和 Vertex AI 之间传输数据支付标准费率。总费用取决于托管执行查询的服务器的区域以及托管被调用的端点的区域。为最大限度地降低费用,请在 Spanner 实例所在的区域部署 Vertex AI 端点。使用多区域实例配置或多个 Vertex AI 端点时,请将端点部署在同一大陆上。
服务等级协议
由于 Vertex AI 在线预测可用性较低,因此在使用 Spanner Vertex AI 集成时,您必须正确配置 Spanner ML 模型,以保持 Spanner 的高可用性:
- Spanner ML 模型必须在后端使用多个 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 行 | 1,000 行 |
---|---|---|---|---|---|
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 ML 模型配置为将复杂且计算密集的主要模型作为其第一个端点。后续的故障切换端点可以指向计算密集度较低、可更好地扩缩且可以吸收流量高峰的简化模型。
合规性
Assured Workloads 不支持 Vertex AI Prediction API。启用限制资源使用限制条件会停用 Vertex AI API,并有效停用 Spanner Vertex AI 集成功能。
此外,我们建议您创建 VPC Service Controls 边界,以确保您的生产数据库无法连接到可能未采用适当合规性配置的非生产项目中的 Vertex AI 端点。