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

本文涉及的产品
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介: 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数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
1月前
|
存储 人工智能 大数据
AI开发新范式,PAI模型构建平台升级发布
本次分享由阿里云智能集团产品专家高慧玲主讲,聚焦AI开发新范式及PAI模型构建平台的升级。分享分为四个部分,围绕“人人可用”和“面向生产”两大核心理念展开。通过降低AI工程化门槛、提供一站式全链路服务,PAI平台致力于帮助企业和开发者更高效地实现AI应用。案例展示中,介绍了多模态模型微调在文旅场景的应用,展示了如何快速复现并利用AI解决实际问题。最终目标是让AI技术更普及,赋能各行业,推动社会进步。
|
1月前
|
人工智能 开发框架 安全
Smolagents:三行代码就能开发 AI 智能体,Hugging Face 开源轻量级 Agent 构建库
Smolagents 是 Hugging Face 推出的轻量级开源库,旨在简化智能代理的构建过程,支持多种大语言模型集成和代码执行代理功能。
304 69
Smolagents:三行代码就能开发 AI 智能体,Hugging Face 开源轻量级 Agent 构建库
|
30天前
|
NoSQL 关系型数据库 MySQL
阿里云PolarDB游戏场景最佳实践
阿里云PolarDB游戏场景最佳实践涵盖了数据库体系演进、行业优化、Redis解决方案、性能优化、备份还原及全球部署等内容。PolarDB通过共享存储、物理复制等技术提升读扩展和大容量支持,针对游戏行业的高IO需求进行优化,提供秒级备份与快速恢复能力。同时,PolarDB for Redis实现了一写多读架构,支持百TB级别的高性能存储,具备成本优势。该方案已在米哈游等大型游戏中广泛应用,确保了高并发下的稳定性和数据一致性,满足游戏行业的特殊需求。
77 36
|
3天前
|
人工智能 Java 语音技术
【最佳实践系列】零基础上手百炼语音AI模型
阿里云百炼语音AI服务提供了丰富的功能,包括语音识别、语音合成、实时翻译等。通过`alibabacloud-bailian-speech-demo`项目,可以一键调用这些服务,体验语音及大模型的魅力,降低接入门槛。该项目支持Python和Java,涵盖从简单的一句话合成到复杂的同声传译等多个示例,助力开发者快速上手并进行二次开发。
|
27天前
|
存储 人工智能 NoSQL
Tablestore深度解析:面向AI场景的结构化数据存储最佳实践
《Tablestore深度解析:面向AI场景的结构化数据存储最佳实践》由阿里云专家团队分享,涵盖Tablestore十年发展历程、AI时代多模态数据存储需求、VCU模式优化、向量检索发布及客户最佳实践等内容。Tablestore支持大规模在线数据存储,提供高性价比、高性能和高可用性,特别针对AI场景进行优化,满足结构化与非结构化数据的统一存储和高效检索需求。通过多元化索引和Serverless弹性VCU模式,助力企业实现低成本、灵活扩展的数据管理方案。
63 12
|
27天前
|
存储 人工智能 Kubernetes
MiniMax云上AI数据湖最佳实践
本简介介绍MiniMax云上AI数据湖的最佳实践。MiniMax成立于2021年,专注于通用人工智能领域,提供ToB和C端产品。面对每日3万亿token、2000万张图片及7万小时语音数据的处理需求,MiniMax基于阿里云构建了稳定灵活的基础设施,采用多云策略实现全球化部署。通过引入Kubernetes、Ray等技术,优化了多模态数据处理效率,并利用对象存储与数据湖技术降低成本。此外,与阿里云合作开发边缘缓存方案,提升跨地域数据传输效率。主讲人:阿里云弹性计算技术专家高庆端。
71 10
|
28天前
|
人工智能 供应链 安全
阿里云 Confidential AI 最佳实践
本次分享的主题是阿里云 Confidential AI 最佳实践,由阿里云飞天实验室操作系统安全团队工程师张佳分享。主要分为三个部分: 1. Confidential AI 技术背景与挑战 2. Confidential AI 技术架构与应用场景 3. Confidential AI 技术实践与未来展望
|
28天前
|
存储 Serverless 文件存储
AI 场景下,函数计算 GPU 实例模型存储最佳实践
当前,函数计算 FC 已被广泛应用在各种 AI 场景下,函数计算支持通过使用容器镜像部署 AI 推理应用,并且提供多种选项来访问训练好的模型。为了帮助开发者高效地在函数计算上部署 AI 推理应用,并快速解决不同场景下的模型存储选型问题,本文将对函数计算的 GPU 模型存储的优缺点及适用场景进行对比分析,以期为您的模型存储决策提供帮助。
|
1月前
|
人工智能 数据处理 C#
AI Dev Gallery:微软开源 Windows AI 模型本地运行工具包和示例库,助理开发者快速集成 AI 功能
微软推出的AI Dev Gallery,为Windows开发者提供开源AI工具包和示例库,支持本地运行AI模型,提升开发效率。
87 13
|
1月前
|
存储 数据采集 算法
构建AI数据管道:从数据到洞察的高效之旅最佳实践
本文探讨了大模型从数据处理、模型训练到推理的全流程解决方案,特别强调数据、算法和算力三大要素。在数据处理方面,介绍了多模态数据的高效清洗与存储优化;模型训练中,重点解决了大规模数据集和CheckPoint的高效管理;推理部分则通过P2P分布式加载等技术提升效率。案例展示了如何在云平台上实现高性能、低成本的数据处理与模型训练,确保业务场景下的最优表现。

热门文章

最新文章

相关产品

  • 云原生数据库 PolarDB