数据库也能AIGC?

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云原生数据库 PolarDB PostgreSQL 版,企业版 4核16GB
推荐场景:
HTAP混合负载
简介: 云原生数据库Lindorm,AIGC时代数据基础设施

01背景

最近AI行业的发展真是日新月异,自年初以来ChatGPT的火爆,几乎每隔几天都被各种新产品发布刷屏,从GPT-4、文心一言到Microsoft 365 Copilot、Github Copilot X、ChatGPT Plugin等等。AI正在掀起一场新的生产力革命,以集成了AI能力的Office和Github为例,仅仅使用简单的语言进行描述就能在Word中轻松生成初稿和总结,在Excel中自动分析关键趋势并创建数据模型可视化等操作,在PPT中快速制作出漂亮的演示文稿。AI还可以通过分析注释,函数名,上下文,基于分析结果给出自动补全建议、函数和方法调用、甚至是完整的代码段。对于那种常年无人维护的项目,还能帮助你分析,生成文档,编写注释。从此程序员悖论——程序员最讨厌的两件事:“别人不写文档”以及“写文档”,今天终于被AI彻底解决了。1.gif因此,老板想我蹭一把热度——将Lindorm AI 引擎光速对AIGC相关模型适配,然后写个文章,一开始我是拒绝的,蹭热点不是我这种务实又进取的程序员的风格,但看我余额为0的钱包还是不得不开工。既然介绍AIGC ,那我把老板需求提给ChatGPT应该不过分吧。

2.png

AIGC是AIGC是(AI-Generated Content)的简称,通常指的是使用人工智能技术生成的各种内容,包括文本、图像、音频和视频。这些内容是通过使用机器学习算法和神经网络等技术进行训练和生成的。

...

这不是写的比我还好!火速化身为CV工程师 (Ctrl+C 和 Ctrl+V) 把文档转发给老板不就完事了。老板说小伙子不错啊,让你调研AIGC不是让你当需求路由器呀。你得把最新最牛逼的产品让读者知道AIGC具体是个啥玩意,ChatGPT知识比较落后,还得靠你亲自调研。好吧让我看看最近营销号什么东东火,就是你了Midjourney v5。3.jpegprompt:A pair of young Chinese lovers, wearing jackets and jeans, sitting on the roof, the background is Beijing in the 1990s, and the opposite building can be seen —v 5 —s 250 —q 2.

*注:图片及文字部分来自Midjourney官方

这幅作品是由Midjourney推出,由人工智能(AI)生成的“中国情侣”图片在国内外社交媒体上广为传播。这幅作品逼真的视觉效果让很多网友惊叹,认为“AI已经不逊于人类画师了”。该工具是继GPT-4之后又一个备受关注的AI产品。(聪明的你肯定猜到了,这句话又是ChatGPT生成。)只需要在Midjourney中输入上面这段英文prompt,就可以生成这张图片,是不是很酷炫!

02AIGC与数据库

AIGC这么好用,还不赶紧做个APP玩一玩,万一火了,搞个公司上市,走上人生巅峰,指日可待。不过,对于我这种小白程序员,只会写前端和SQL,对这些模型又不太了解,更别说还要部署复杂的服务架构。该咋办呢?

来了来了,Lindorm AI 引擎它来了,使用Lindorm AI 引擎的In-DB Inference功能,仅仅需要写几句SQL,就能在数据库内完成模型部署和推理,省去一系列安装部署步骤,快速搭建起一个AIGC应用。那么什么是Lindorm AI引擎, 什么是In-DB Inference呢,具体的操作方法是什么呢?

03Lindorm AI 引擎

Lindorm是面向互联网、物联网中的海量非事务数据设计和优化的云原生多模数据库,支持结构化、半结构化、非结构化数据的统一存储和计算,提供宽表、时序、时空、对象、流等多种处理模型,并兼容多种开源标准接口和无缝集成三方生态工具,满足车联网、自动驾驶、监控、推荐、风控、账单、工业互联网等业务场景的需求。4.pngLindorm AI 引擎是Lindorm最新推出的支持在数据库内集成 AI 能力对非结构化数据进行智能分析和处理的引擎,结合Lindorm已有的对结构化和半结构化数据的分析和处理能力,这使得多模数据的融合分析成为可能。伴随着 AI 模型生态的逐渐成熟,如框架、格式逐渐收敛统一,以及一些开源模型平台(如ModelScope、HuggingFace)的出现,让一些常用的模型唾手可得,可以预见到未来更多的需求是直接使用这些预训练模型对数据进行推理,或微调,而不是从头训练一个新的模型。为此,Lindorm AI 引擎即将推出BYOM(Bring Your Own Model)功能,支持导入预训练模型在数据库内直接进行推理的能力,就是In-DB Inference功能。

Lindorm AI 引擎支持用户自己上传预训练模型到数据库中,也支持直接从开源模型平台(包括ModelScope、HuggingFace)导入模型的功能,用户无需下载模型就可以很方便地完成模型在 Lindorm 内的部署和推理。Lindorm AI 引擎会根据用户指定的模型平台上的模型路径,自动下载模型并针对Lindorm AI 引擎使用的推理节点硬件对其进行适当的优化,以达到最佳的运行效率。

*ModelScope:https://modelscope.cn/home

04Lindorm AI In-DB Inference使用介绍

Lindorm AI In-DB Inference功能的使用非常简单,首先用户通过一个CREATE MODEL的SQL在数据库中导入模型,指定模型在数据库中或ModelScope/HuggingFace中的路径,以及对应的CV、NLP任务等信息。然后就可以使用一个SQL函数指定刚刚导入的模型使用数据库中的数据作为输入进行推理。

05利用Lindorm AI 引擎进行AIGC应用开发Demo

根据文本生成设计图

▶︎ 模型背景

这里我们以ModelScope上的中文StableDiffusion模型为例,演示如何在Lindorm AI 引擎内完成根据文本生成设计图。Stable Diffusion是一种AI文本生成图片的扩散模型,能够在给定文本输入的情况下生成逼真的图像。

▶︎ 构建步骤

1. 在Lindorm数据库中创建室内设计文本描述表,将用于生成图片的文本插入到表中,这里我们插入了3条关于室内设计的文字描述:

lindorm:default> CREATE TABLE `room_desc` (
    >  `room_desc_id` INTEGER,
    >  `room_desc` VARCHAR,
    >  primary key(`room_desc_id`)
    > );
lindorm:default> INSERT INTO `room_desc` (
    >  `room_desc_id`,
    >  `room_desc`
    > ) VALUES (
    >  1,
    >  '新中式风格的家居设计,在传统中式风格的基础上,融入了现代时尚的设计理念,打造出一个充满禅意的中式风格卧室空间。'
    >  ), (
    >  2,
    >  '室内设计,开放式,厨房和起居室,模块化家具与棉织品,木地板,高天花板,大钢窗,可以看到一个城市。'
    >  ), (
    >  3,
    >  '高分辨率摄影室内设计,梦幻般的下沉式客厅,木地板,通向花园的小窗户,包豪斯家具和装饰,高天花板,米色蓝色鲑鱼粉色调,室内设计杂志,舒适的气氛。'
    >  );
3 row affected (22 ms)
lindorm:default> select * from room_desc;
+--------------+----------------------------------------------------------------------------------------------------------------------------------------------+
| room_desc_id |                                                                  room_desc                                                                   |
+--------------+----------------------------------------------------------------------------------------------------------------------------------------------+
| 1            | 新中式风格的家居设计,在传统中式风格的基础上,融入了现代时尚的设计理念,打造出一个充满禅意的中式风格卧室空间。|
| 2            | 室内设计,开放式,厨房和起居室,模块化家具与棉织品,木地板,高天花板,大钢窗,可以看到一个城市。                                                             |
| 3            | 高分辨率摄影室内设计,梦幻般的下沉式客厅,木地板,通向花园的小窗户,包豪斯家具和装饰,高天花板,米色蓝色鲑鱼粉色调,室内设计杂志,舒适的气氛                        |
+--------------+----------------------------------------------------------------------------------------------------------------------------------------------+
3 rows in set (30 ms)

2. 接下来我们使用Lindorm AI 引擎扩展的CREATE MODEL SQL语法自动从 ModelScope平台导入中文Stable Diffusion模型:

lindorm:default> CREATE MODEL `room_maker_model`
    >  FROM 'modelscope://damo/multi-modal_chinese_stable_diffusion_v1.0'
    >  TASK TEXT_TO_IMAGE
    >  ALGORITHM STABLE_DIFFUSION;
 0 row affected (63 ms)

3. 最后通过SQL调用推理函数 AI_INFER在数据库中使用刚刚导入的模型进行推理,Lindorm会先使用模型根据文本生成图片,自动保存成Lindorm内的BLOB对象类型,并返回图片的下载链接:

lindorm:default> SELECT
    >   `room_desc`,
    >   AI_INFER(
    >     'room_maker_model',
    >     `room_desc`
    >   ) as 'room_image'
    > FROM room_desc;
+--------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
|                                                                  room_desc                                               |                                        room_image                                                |
+--------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
| 新中式风格的家居设计,在传统中式风格的基础上,融入了现代时尚的设计理念,打造出一个充满禅意的中式风格卧室空间。                              | http://ld-xxx-blob.xxx.com:9000/images/sd_1678873258559.jpg                                     |
| 室内设计,开放式,厨房和起居室,模块化家具与棉织品,木地板,高天花板,大钢窗,可以看到一个城市。                                         | http://ld-xxx-blob.xxx.com:9000/images/sd_1678873265155.jpg                                      |
| 高分辨率摄影室内设计,梦幻般的下沉式客厅,木地板,通向花园的小窗户,包豪斯家具和装饰,高天花板,米色蓝色鲑鱼粉色调,室内设计杂志,舒适的气氛。   | http://ld-xxx-blob.xxx.com:9000/images/sd_1678873271757.jpg                                      |
+--------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
3 rows in set (7875 ms)

4. 通过得到的链接(备注:上述案例中的链接为测试实例所属VPC内网链接,无法通过公网访问)可以看到生成了三张室内设计图片。

设计文案

👇

新中式风格的家居设计,在传统中式风格的基础上,融入了现代时尚的设计理念,打造出一个充满禅意的中式风格卧室空间。

设计图

👇

5.png

设计文案

👇

室内设计,开放式,厨房和起居室,模块化家具与棉织品,木地板,高天花板,大钢窗,可以看到一个城市。

设计图

👇

6.png

设计文案

👇

高分辨率摄影室内设计,梦幻般的下沉式客厅,木地板,通向花园的小窗户,包豪斯家具和装饰,高天花板,米色蓝色鲑鱼粉色调,室内设计杂志,舒适的气氛。

设计图

👇

7.png

对设计图进行风格变换

▶︎ 模型背景

ControlNet是前段时间比较火的能够对Stable Diffusion生成的图片进行各种条件控制的模型,这里我们用它来对刚刚生成的几张设计图进行风格切换。

▶︎ 构建步骤

1. 我们使用另外一个表来做演示,表结构设计为包含一个图片 URL 地址和一个 prompt 字段,用来维护想要对设计风格进行控制的提示词。我们为刚刚生成的 3 张图片各切换 3 种风格(分别是中式、地中海和工业风),因此一共得到 9 行数据(出于篇幅限制,这里省略了 INSERT 环节):

lindorm:default> CREATE TABLE `control_room` (
    >  `control_room_id` INTEGER,
    >  `img_url` VARCHAR,
    >  `prompt` VARCHAR,
    >  primary key(`control_room_id`)
    > );
lindorm:default> select * from control_room;
+-----------------+--------------------------------------------------------------------------------------------------+-----------------------------+
| control_room_id |                                             img_url                                              |           prompt            |
+-----------------+--------------------------------------------------------------------------------------------------+-----------------------------+
| 1               | http://ld-xxx-blob.xxx.com:9000/images/sd_1678873258559.jpg                                      | Chinese style, 1 room       |
| 2               | http://ld-xxx-blob.xxx.com:9000/images/sd_1678873258559.jpg                                      | Mediterranean style, 1 room |
| 3               | http://ld-xxx-blob.xxx.com:9000/images/sd_1678873258559.jpg                                      | Industrial style, 1 room    |
| 4               | http://ld-xxx-blob.xxx.com:9000/images/sd_1678873265155.jpg                                      | Chinese style, 1 room       |
| 5               | http://ld-xxx-blob.xxx.com:9000/images/sd_1678873265155.jpg                                      | Mediterranean style, 1 room |
| 6               | http://ld-xxx-blob.xxx.com:9000/images/sd_1678873265155.jpg                                      | Industrial style, 1 room    |
| 7               | http://ld-xxx-blob.xxx.com:9000/images/sd_1678873271757.jpg                                      | Chinese style, 1 room       |
| 8               | http://ld-xxx-blob.xxx.com:9000/images/sd_1678873271757.jpg                                      | Mediterranean style, 1 room |
| 9               | http://ld-xxx-blob.xxx.com:9000/images/sd_1678873271757.jpg                                      | Industrial style, 1 room    |
+-----------------+--------------------------------------------------------------------------------------------------+-----------------------------+
9 rows in set (25 ms)

2. 接下来同样使用SQL从HuggingFace平台导入ControlNet模型:


lindorm:default> CREATE MODEL `style_transfer_model`
    >  FROM 'huggingface://lllyasviel/ControlNet'
    >  TASK MULTIMODAL_TO_IMAGE
    >  ALGORITHM CONTROL_NET;
0 row affected (68 ms)


3. 同样,通过调用推理函数AI_INFER在数据库中使用刚刚导入的模型进行推理,Lindorm会使用img_url对应的图片以及prompt作为模型输入,通过模型生成新的图片,并返回图片的 URL:


lindorm:default> SELECT
    >   `img_url`,
    >   `prompt`,
    >   AI_INFER(
    >     'style_transfer_model',
    >     `img_url`,
    >     `prompt`,
    >     'control_type=seg'
    >   ) as 'controlled_image'
    > FROM control_room;
+--------------------------------------------------------------------------------------------------+-----------------------------+--------------------------------------------------------------------------------------------------+
|                                             img_url                                              |           prompt            |                                     controlled_image                                             |
+--------------------------------------------------------------------------------------------------+-----------------------------+--------------------------------------------------------------------------------------------------+
| http://ld-xxx-blob.xxx.com:9000/images/sd_1678873258559.jpg                                      | Chinese style, 1 room       | http://ld-xxx-blob.xxx.com:9000/images/cn_1678873429213.jpg                                      |
| http://ld-xxx-blob.xxx.com:9000/images/sd_1678873258559.jpg                                      | Mediterranean style, 1 room | http://ld-xxx-blob.xxx.com:9000/images/cn_1678873451405.jpg                                      |
| http://ld-xxx-blob.xxx.com:9000/images/sd_1678873258559.jpg                                      | Industrial style, 1 room    | http://ld-xxx-blob.xxx.com:9000/images/cn_1678873472694.jpg                                      |
| http://ld-xxx-blob.xxx.com:9000/images/sd_1678873265155.jpg                                      | Chinese style, 1 room       | http://ld-xxx-blob.xxx.com:9000/images/cn_1678873494592.jpg                                      |
| http://ld-xxx-blob.xxx.com:9000/images/sd_1678873265155.jpg                                      | Mediterranean style, 1 room | http://ld-xxx-blob.xxx.com:9000/images/cn_1678873516370.jpg                                      |
| http://ld-xxx-blob.xxx.com:9000/images/sd_1678873265155.jpg                                      | Industrial style, 1 room    | http://ld-xxx-blob.xxx.com:9000/images/cn_1678873538218.jpg                                      |
| http://ld-xxx-blob.xxx.com:9000/images/sd_1678873271757.jpg                                      | Chinese style, 1 room       | http://ld-xxx-blob.xxx.com:9000/images/cn_1678873560219.jpg                                      |
| http://ld-xxx-blob.xxx.com:9000/images/sd_1678873271757.jpg                                      | Mediterranean style, 1 room | http://ld-xxx-blob.xxx.com:9000/images/cn_1678873582595.jpg                                      |
| http://ld-xxx-blob.xxx.com:9000/images/sd_1678873271757.jpg                                      | Industrial style, 1 room    | http://ld-xxx-blob.xxx.com:9000/images/cn_1678873604486.jpg                                      |
+--------------------------------------------------------------------------------------------------+-----------------------------+--------------------------------------------------------------------------------------------------+
9 rows in set (16219 ms)

4. 通过链接,我们可以看到切换风格后的图片:8.png是不是很Easy就在数据库中完成了AIGC?还有更多有趣的用法等待你去尝试!

Lindorm AI 引擎目前处于邀测阶段,感兴趣可以加入钉钉群:20975001191 参与功能试用和讨论。

06未来展望

Lindorm AI 引擎实现了数据不出库,一站式智能处理,可以大大降低AIGC业务落地的使用门槛。未来我们还会进一步探索如何利用 AI 对非结构化数据的分析与处理能力实现多模数据的融合分析与处理。我们希望用户在采用Lindorm构建AIGC应用时,就像用MySQL构建库存订单管理一样简单!

相关文章
|
9月前
|
数据库
数据库常用到的查询积累
数据库常用到的查询积累
|
23天前
|
存储 人工智能 NoSQL
现代数据库技术的发展与应用
随着云计算、大数据和人工智能等领域的迅猛发展,数据库技术也在不断演进。本文将探讨现代数据库技术的发展趋势,包括分布式数据库、图数据库、时间序列数据库等新型数据库类型的应用场景和优势,以及面向未来的数据库技术发展方向。
|
22天前
|
存储 SQL NoSQL
深入理解数据库技术:从基础到前沿应用
一、引言 在信息化和数字化的时代,数据已成为推动社会进步和企业发展的核心资源
|
22天前
|
SQL 安全 多模数据库
深入理解数据库技术:从基础到前沿
一、引言 数据库技术作为信息管理的核心,已经渗透到我们生活的方方面面
|
2月前
|
分布式数据库 数据库 数据安全/隐私保护
开发者关注的数据库技术与创新,未来数据库的演进及理想数据库的构想
作为开发者,想必大家都知道在技术圈中数据库相关领域是技术开发中的重中之重,数据库技术与创新不断推动着数字化时代的发展,数据库技术正在经历着一次创新的浪潮,还有就是数据库技术的不断创新为开发者们在日常实际开发中提供了更多的可能性和好的机遇。那么本文就来简单聊聊最值得开发者关注的数据库技术与创新,包括分布式数据库、图数据库、时序数据库、区块链数据库以及AI与数据库的结合等方面,以及探讨未来数据库的演进趋势,并讨论一下在开发者心目中最理想的数据库的特征与构想。
60 3
|
18天前
|
SQL 存储 大数据
揭秘数据库:核心技术、应用与实践
一、引言 数据库是现代信息技术的核心组成部分,它存储和管理着企业、组织乃至个人的重要数据
|
2月前
|
存储 SQL 安全
6.数据库技术基础
6.数据库技术基础
|
2月前
|
存储 机器学习/深度学习 NoSQL
数据库技术的发展与应用
数据库技术的发展与应用
|
2月前
|
存储 NoSQL 物联网
现代数据库技术发展趋势与应用探讨
【2月更文挑战第2天】数据库作为计算机领域中重要的基础设施之一,在当今信息化时代扮演着至关重要的角色。本文将从现代数据库技术的发展趋势出发,探讨其在各个领域中的应用及未来的发展方向,旨在帮助读者深入了解数据库技术的最新动向。
|
2月前
|
运维 前端开发 Java
探索新一代数据库技术——无服务器数据库
【2月更文挑战第2天】本文将介绍一种创新的数据库技术——无服务器数据库。通过分析其原理、特点和应用场景,我们将揭示无服务器数据库在解决传统数据库面临的挑战方面的优势。同时,我们还将探讨无服务器数据库对于前端、后端以及Java等技术领域的影响,并展望其未来的发展趋势。
45 0