PolarDB-PG AI最佳实践 2 :PolarDB AI X EAS实现自定义库内模型推理最佳实践

简介: PolarDB通过POLAR_AI插件支持使用SQL调用AI/ML模型,无需专业AI知识或额外部署环境。结合阿里云EAS在线模型服务,可轻松部署自定义模型,在SQL中实现如文本翻译等功能。

业务场景

随着AI/ML的火热,后端开发人员也在考虑如何直接方便地为数据库添加AI/ML能力,更好地为业务服务。比如,直接使用SQL语句就可以完成大模型的调用,实现向量的生成,评论情绪分析以及更为复杂的文本生成等操作。业务端无需具备专业的知识,无需部署专门的SDK,仅使用SQL就可以完成专业的AI/ML应用。

PolarDB具备POLAR_AI模型服务调用插件,支持使用SQL的方式调用模型服务,不需要拥有AI/ML学习经验,不需要拷贝移动数据,不需要学习新的单独的工具,就可以将AI/ML的能力添加到数据库中。

当常用的在线模型服务不能满足业务需求时,通过自定义部署的模型服务,来满足业务需求。基于POLAR_AI X 阿里云EAS在线模型服务,通过在数据库中实现自定义SQL函数,实现业务模型的调用,满足业务需求。

最佳实践

技术实现

PolarDB

PolarDB PostgreSQL版(下文简称为 PolarDB)是一款阿里云自主研发的云原生关系型数据库产品,100% 兼容 PostgreSQL,高度兼容Oracle语法;采用基于 Shared-Storage 的存储计算分离架构,具有极致弹性、毫秒级延迟、HTAP 的能力和高可靠、高可用、弹性扩展等企业级数据库特性。同时,PolarDB 具有大规模并行计算能力,可以应对OLTP与OLAP混合负载。

PolarDB具备POLAR_AI模型服务调用插件,支持使用SQL的方式调用模型服务,不需要拥有机器学习经验,不需要拷贝移动数据,不需要学习新的单独的工具,就可以将AI/ML的能力添加到数据库中。

PolarDB从底层直接调用模型服务,不经过应用程序层,因此访问延迟低、性能优、吞吐大、安全高,也不会影响到数据库的性能。

EAS

模型在线服务EAS(Elastic Algorithm Service)是阿里云PAI产品为实现一站式模型开发部署应用,针对在线推理场景提供的模型在线服务,支持将模型服务部署在公共资源组或专属资源组,实现基于异构硬件(CPU和GPU)的模型加载和数据请求的实时响应。

使用EAS可以将魔搭或用户模型一键部署并提供模型在线服务,并按调用进行收费。

查询流程

主要的查询步骤包含以下步骤:

  1. 客户端将AI相关的SQL发送给PolarDB
  2. PolarDB将相关的数据转换为EAS模型服务的协议进行调用
  3. PolarDB将EAS模型服务的返回的结果转换为数据库的数据表示
  4. PolarDB将结果返回给客户端

建议配置

为了得到良好的体验,建议使用以下配置:

项目

推荐配置

PolarDB 版本

标准版 兼容PostgreSQL 14

CPU

>16 Core

内存

>64 GB

磁盘

>100GB (AUTOPL)

版本

>=14.13.28.0(20241230发布)

实战步骤

本案例以机器翻译模型-CSANMT连续语义增强机器翻译为例,示例如何使用EAS进行模型部署,并通过POLAR_AI 插件自定义函数的能力实现数据库内的基于连续语义增强的神经机器翻译。

部署模型

开通EAS并搭建模型服务,具体步骤可参考https://help.aliyun.com/zh/pai/use-cases/deploy-huggingface-and-modelscope-service-applications-with-one-click-of?spm=a2c4g.11186623.0.0.229d65713qlYzb#790dec242a083

部署完成后可通过页面来验证结果是否准确。

需要记录Post的URL地址以及Headers中的token信息。Token信息是访问服务的凭证,需要妥善保管。

数据库准备

创建扩展

创建POLAR_AI扩展

CREATE EXTENSION POLAR_AI WITH SCHEMA PUBLIC;
set search_path="$user", public,polar_ai;

创建模型

一个自定义的模型包含输入,输出以及用户使用的三个函数

输入和输出函数

从EAS的部署步骤中可知,数据的输入为以下json:

{"input": {"text": "PolarDB AI function is very easy to use"}}

输出的数据为以下json:

{"translation":"PolarDB AI 非常易于使用"}

因此,输入和输出函数可以定义为:

CREATE OR REPLACE FUNCTION my_translate_in(model text, setence text)
    RETURNS jsonb
    LANGUAGE plpgsql
    AS $function$
    BEGIN
    RETURN ('{"input":{"texts":"' || setence ||'"}}')::jsonb;
    END;
    $function$;
-- 此处返回的是一个简单json对象,out函数不做任何处理
CREATE OR REPLACE FUNCTION my_translate_out(model_id text, response_json jsonb)
    RETURNS jsonb
    AS $$ select response_json as result $$
    LANGUAGE 'sql' IMMUTABLE;

创建模型

创建一个自定义的模型,使用之前定义的in和out函数。

SELECT POLAR_AI.ai_createmodel('damo/nlp_csanmt_translation_en2zh', 
 -- 模型名称
'http://xxxx.cn-shanghai.pai-eas.aliyuncs.com/api/predict/translate', -- 模型调用地址
'Alibaba', -- 模型提供商
'机器翻译模型', -- 模型分类
'iic/nlp_csanmt_translation_en2zh', -- 调用时模型的名称
'{"author_type": "token", "token": "xxxxxxx"}', -- 认证信息
NULL, -- header函数
'my_translate_in'::regproc, --
'my_translate_out'::regproc);

注意:url地址与token需要替换为EAS部署时记录的信息

模型调用

可以通过CALLMODEL函数实现对于模型的调用:

select ((POLAR_AI.AI_CALLMODEL('damo/nlp_csanmt_translation_en2zh','PolarDB AI function is very easy to use')::jsonb)->>'translation')::text;

创建用户函数

为了使用方便起见,可以把以上调用过程封装为用户函数。封装后业务方无需关心模型服务实际的地址,只需要和通用的SQL函数一样进行使用。

创建用户使用的函数,此处定义一个my_translate函数,支持用户使用该函数实现翻译功能:

CREATE OR REPLACE FUNCTION my_translate(content text)
    RETURNS text
    AS $$ select ((POLAR_AI.AI_CALLMODEL('damo/nlp_csanmt_translation_en2zh',$1)::jsonb)->>'translation')::text; $$
    LANGUAGE 'sql' IMMUTABLE;

函数的输入的text是需要翻译的文本,返回的text是翻译完成的结果。

函数调用

最后,可以使用刚才定义的my_translate函数愉快地进行翻译操作了。

select my_translate('PolarDB AI function is very easy to use');
        
---
 PolarDB AI 函数非常易于使用
select my_translate('PolarDB is a secure and reliable database service that provides auto scaling, high performance, and mass storage. PolarDB is 100% compatible with MySQL and PostgreSQL and highly compatible with Oracle. PolarDB provides three engines: PolarDB for MySQL, PolarDB for PostgreSQL, and PolarDB-X.');
my_translate                                   
                                                                 
---
 PolarDB 是一种安全可靠的数据库服务 , 提供自动伸缩、高性能和海量存储。 PolarDB
 与 MySQL 和 PostgreSQL 100% 兼容 , 与 Oracle 高度兼容。 PolarDB 提供三种引擎 : PolarDB for MySQL 、 PolarDB for PostgreSQL 和 PolarDB - X 。

总结

PolarDB POLAR_AI模型服务调用插件具备较强的灵活性,结合EAS在线模型服务,实现自定义模型的部署,通过定制SQL的方式实现对自定义模型的调用。使用时不需要专业的AI/ML背景,无需部署AI相关环境,不需要了解模型部署的具体信息,使用时不需要移动数据,仅使用SQL即可实现模型调用,满足业务需求。

试用体验

欢迎访问PolarDB免费试用页面,选择试用“云原生数据库PolarDB PostgreSQL版”,体验PolarDB的AI能力

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
5月前
|
人工智能 自然语言处理 IDE
模型微调不再被代码难住!PAI和Qwen3-Coder加速AI开发新体验
通义千问 AI 编程大模型 Qwen3-Coder 正式开源,阿里云人工智能平台 PAI 支持云上一键部署 Qwen3-Coder 模型,并可在交互式建模环境中使用 Qwen3-Coder 模型。
1001 109
人工智能 关系型数据库 分布式数据库
390 19
|
5月前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段三:自定义 Advisor 与结构化输出实现以及对话记忆持久化开发
本文介绍如何在Spring AI中自定义Advisor实现日志记录、结构化输出、对话记忆持久化及多模态开发,结合阿里云灵积模型Qwen-Plus,提升AI应用的可维护性与功能性。
1134 125
AI 超级智能体全栈项目阶段三:自定义 Advisor 与结构化输出实现以及对话记忆持久化开发
|
7月前
|
人工智能 关系型数据库 MySQL
轻松搭建AI知识问答系统,阿里云PolarDB MCP深度实践
无论是PolarDB MySQL兼容MySQL语法的SQL执行功能,还是其特有的OLAP分析与AI能力,通过MCP协议向LLM开放接口后,显著降低了用户使用门槛,更为未来基于DB-Agent的智能体开发奠定了技术基础
|
7月前
|
机器学习/深度学习 人工智能 监控
AI 基础知识从0.1到0.2——用“房价预测”入门机器学习全流程
本系列文章深入讲解了从Seq2Seq、RNN到Transformer,再到GPT模型的关键技术原理与实现细节,帮助读者全面掌握Transformer及其在NLP中的应用。同时,通过一个房价预测的完整案例,介绍了算法工程师如何利用数据训练模型并解决实际问题,涵盖需求分析、数据收集、模型训练与部署等全流程。文章适合初学者和开发者学习AI基础与实战技能。
929 25
AI 基础知识从0.1到0.2——用“房价预测”入门机器学习全流程
|
4月前
|
人工智能 小程序 搜索推荐
【一步步开发AI运动APP】十二、自定义扩展新运动项目2
本文介绍如何基于uni-app运动识别插件实现“双手并举”自定义扩展运动,涵盖动作拆解、姿态检测规则构建及运动分析器代码实现,助力开发者打造个性化AI运动APP。
|
8月前
|
人工智能 监控 测试技术
云上AI推理平台全掌握 (1):PAI-EAS LLM服务一键压测
在AI技术飞速发展的今天,大语言模型(LLM)、多模态模型等前沿技术正深刻改变行业格局。推理服务是大模型从“实验室突破”走向“产业级应用”的必要环节,需直面高并发流量洪峰、低延时响应诉求、异构硬件优化适配、成本精准控制等复杂挑战。 阿里云人工智能平台 PAI 致力于为用户提供全栈式、高可用的推理服务能力。在本系列技术专题中,我们将围绕分布式推理架构、Serverless 弹性资源全球调度、压测调优和服务可观测等关键技术方向,展现 PAI 平台在推理服务侧的产品能力,助力企业和开发者在 AI 时代抢占先机,让我们一起探索云上 AI 推理的无限可能,释放大模型的真正价值!
|
8月前
|
机器学习/深度学习 PyTorch API
昇腾AI4S图机器学习:DGL消息传递接口的PyG替换
DGL (Deep Graph Learning) 和 PyG (Pytorch Geometric) 是两个主流的图神经网络库,它们在API设计和底层实现上有一定差异,在不同场景下,研究人员会使用不同的依赖库,昇腾NPU对PyG图机器学习库的支持亲和度更高,因此有些时候需要做DGL接口的PyG替换。

热门文章

最新文章

相关产品

  • 云原生数据库 PolarDB