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

本文涉及的产品
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
简介: 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数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
2天前
|
人工智能 数据处理 C#
AI Dev Gallery:微软开源 Windows AI 模型本地运行工具包和示例库,助理开发者快速集成 AI 功能
微软推出的AI Dev Gallery,为Windows开发者提供开源AI工具包和示例库,支持本地运行AI模型,提升开发效率。
34 13
|
2天前
|
人工智能 关系型数据库 分布式数据库
PolarDB-PG AI最佳实践3 :PolarDB AI多模态相似性搜索最佳实践
本文介绍了如何利用PolarDB结合多模态大模型(如CLIP)实现数据库内的多模态数据分析和查询。通过POLAR_AI插件,可以直接在数据库中调用AI模型服务,无需移动数据或额外的工具,简化了多模态数据的处理流程。具体应用场景包括图像识别与分类、图像到文本检索和基于文本的图像检索。文章详细说明了技术实现、配置建议、实战步骤及多模态检索示例,展示了如何在PolarDB中创建模型、生成embedding并进行相似性检索
|
2天前
|
存储 数据采集 算法
构建AI数据管道:从数据到洞察的高效之旅最佳实践
本文探讨了大模型从数据处理、模型训练到推理的全流程解决方案,特别强调数据、算法和算力三大要素。在数据处理方面,介绍了多模态数据的高效清洗与存储优化;模型训练中,重点解决了大规模数据集和CheckPoint的高效管理;推理部分则通过P2P分布式加载等技术提升效率。案例展示了如何在云平台上实现高性能、低成本的数据处理与模型训练,确保业务场景下的最优表现。
|
1天前
|
人工智能 容灾 Serverless
AI推理新纪元,PAI全球化模型推理服务的创新与实践
本次分享主题为“AI推理新纪元,PAI全球化模型推理服务的创新与实践”,由阿里云高级产品经理李林杨主讲。内容涵盖生成式AI时代推理服务的变化与挑战、play IM核心引擎的优势及ES专属网关的应用。通过LM智能路由、多模态异步生成等技术,PAI平台实现了30%以上的成本降低和显著性能提升,确保全球客户的业务稳定运行并支持异地容灾,目前已覆盖16个地域,拥有10万张显卡的推理集群。
|
3月前
|
关系型数据库 MySQL 分布式数据库
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶!
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶,邀请好友完成更有机会获得​小米Watch S3、小米体重称​等诸多好礼!
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶!
|
4月前
|
关系型数据库 MySQL Serverless
探索PolarDB MySQL版:Serverless数据库的灵活性与性能
本文介绍了个人开发者对阿里云PolarDB MySQL版,特别是其Serverless特性的详细评测体验。评测涵盖了产品初体验、性能观测、Serverless特性深度评测及成本效益分析等方面。尽管试用过程中遇到一些小问题,但总体而言,PolarDB MySQL版表现出色,提供了高性能、高可用性和灵活的资源管理,是个人开发者和企业用户的优秀选择。
|
8天前
|
NoSQL 关系型数据库 分布式数据库
基于PolarDB的图分析:通过DTS将其它数据库的数据表同步到PolarDB的图
本文介绍了使用DTS任务将数据从MySQL等数据源实时同步到PolarDB-PG的图数据库中的步骤.
|
11天前
|
SQL 关系型数据库 分布式数据库
夺冠在即 | PolarDB数据库创新设计赛(天池杯)决赛答辩通知
2024年全国大学生计算机系统能力大赛PolarDB数据库创新设计赛(天池杯)于8月21日启动,吸引了200多所高校近千支队伍参赛。经过激烈角逐,60支队伍晋级决赛第一阶段,36支队伍脱颖而出进入现场答辩,将于12月29日在武汉大学争夺最终奖项。决赛要求选手基于PolarDB-PG开源代码部署集群并优化TPCH查询性能。完赛率超90%,成绩表现出明显梯度,前20名均在500秒内完成。评委来自学术界和工业界,确保评选公正。预祝选手们取得优异成绩!
|
26天前
|
Cloud Native 关系型数据库 分布式数据库
PolarDB 分布式版 V2.0,安全可靠的集中分布式一体化数据库管理软件
阿里云PolarDB数据库管理软件(分布式版)V2.0 ,安全可靠的集中分布式一体化数据库管理软件。

热门文章

最新文章

相关产品

  • 云原生数据库 PolarDB