Star History 十月开源精选 |AI for Postgres

在 2023 年 Stack Overflow 开发者调查中,Postgres 顶替了 MySQL 被评为最受欢迎的数据库。一个重要因素应该是 Postgres 支持扩展:可扩展的架构+ Postgres 仍然由社区拥有,Postgres 生态近年来蓬勃发展。

扩展可以看作是内置功能,能给数据库增加额外功能。在本文中,我们分享五个可以给你 Postgres 带来 AI 功能的扩展。

pgvector

file

pgvector 是一个向量相似性搜索工具,专为 Postgres (支持 Postgres 11+) 设计,还可以用于存储嵌入向量。

它在 2021 年就开源了,不过热度在 2023 年开始增加。如果你想用向量数据库,那么其实 Postgres 就可以满足需求了,pgvector 支持:

  • 向量与你的其他数据一起存储
  • 支持精确和近似最近邻搜索
  • L2 距离、内积和余弦距离
  • 任何有 Postgres 客户端的语言

如果你用的就是 Postgres,可以直接安装 pgvector,如果你用的是 Postgres 服务或应用程序,其中有些已经内置了pgvector,例如 Aiven, Neon, Supabase, Postgres.app 等。

PostgresML

file

PostgresML 是个支持将机器学习 (Machine Learning) 模型集成到 Postgres 中的扩展,并在今年 5 月获得了 470 万美元的种子轮。它通过使用 SQL 查询来进行文本和数据的训练和推断,极大地降低了应用程序开发的复杂性。

file

如果贵司没有复杂的机器学习工作负载(毕竟不是所有人都是人工智能巨头),但还是想构建自己的机器学习模型,可以从新鲜数据中进行学习,这是一个很好的入门方式。

有意思的是,他们组织下还有另一个开源项目:PgCat,是个 PostgreSQL 连接池/代理,于 2022 年 2 月开源,或许 PgCat 不够性感,PostgresML 整体转向了 AI,向量数据库?

MADlib

file

Apache MADlib 是一个用于 SQL 的大数据机器学习工具。它的代码库最早在 2016 年左右发布到 GitHub,但最初的版本早在 2011 年就已经发布(直至今年还在迭代更新)。

file

SQL 在处理较大或非结构化数据集上无法很好推理、预测或因果分析的观念已经是过去式了。MADlib 是一个数据库内机器学习库,你可以在存储你数据的数据库 (Postgres) 中进行高级机器学习,包括各种数据分析任务,包括回归和分类。

冷知识:MADlib 的 MAD 代表 Magnetic (磁性), Agile (敏捷) 和 Deep (深度)。

file

接下来的几个项目还挺有趣的,不过要用的话自担风险😅

pg_embedding

file

pg_embedding 是 Neon 今年 7 月发布的一个产品,发布的时候称比 pgvector 快 20 倍。不过它使用了 HNSW 索引进行高维相似性搜索,比 pgvector 添加 HNSW 支持要早。

file

但是几个月后的九月份,他们就加了一条注释,表示不再维护 pg_embedding。看起来是真的没有「购买还是构建」的纠结:使用已有的是显而易见的选择。

file

pg_gpt

file

pg_gpt 是个实验性的 Postgres 扩展,它在 Postgres 内部使用 OpenAI 的 GPT API,你可以用自然语言向数据库提问。pg_gpt 背后的组织是 CloudQuery,主业是开源的 ELT 平台。
该插件通过传输部分数据库 schema(不包含数据)的部分发送到 OpenAI GPT API,因此不建议在生产数据库中使用,但如果比如公开的 schema,那可以试试这个工具。例如,如果想查找过去一个月在 Hacker News 上提到 Sam Altman 的热门提交,这是一种方法(当然也可以直接用 Search Hacker News 🤣)。

总结

今年我们见证了科技界拥抱人工智能,并在 AI 领域里找到自己的立足之地。幸好 Postgres 足够开放,支持扩展,我们有幸得以享用想这些扩展,可以为我们的 Postgres 添加 AI 功能,而无需迁移到新的数据库。


💡 更多资讯,请关注 Bytebase 公号:Bytebase

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/173435.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自定义的AlphaShape类来提取平面点云数据的边界点 open3d c++ 代码 平面点云边界提取算法

使用了自定义的AlphaShape类来提取点云数据的边界点,并使用Open3D库进行可视化。 引入必要的头文件和命名空间: main函数: 读取点云数据文件到cloud对象。如果读取失败,则输出错误信息并返回。将点云数据全部着色为蓝色。创建一个空的点云对象boundaryCloud,用于存储提取…

跟着chatgpt学习|1.spark入门

首先先让chatgpt帮我规划学习路径,使用Markdown格式返回,并转成思维导图的形式 目录 目录 1. 了解spark 1.1 Spark的概念 1.2 Spark的架构 1.3 Spark的基本功能 2.spark中的数据抽象和操作方式 2.1.RDD(弹性分布式数据集) 2…

9:kotlin 返回和跳过(Returns and jumps)

kotlin有三种结构跳转表达式: return会从最近的封闭函数或匿名函数返回。 break终止最近的封闭循环。 continue继续最近的封闭循环的下一步。 所有这些表达式都可以作为其他表达式的一本分使用 val s person.name ?: returnval s person.name ?: return 这…

SpringBoot yml配置文件打印值

目录 SpringBoot中配置文件打印值 yml配置 config类 启动类 测试类 注解分析 SpringBoot中配置文件打印值 yml配置 student:red: douconfig类 Data ConfigurationProperties(prefix "student") // 文件上传 配置前缀file.oss public class MinIOConfigProp…

Callable、Future和FutrueTask详解

一、Callable介绍 1.1 Runnable介绍 Runnable是一个接口,里面声明了run方法。但是由于run方法返回值类型为void,所以在执行完成任务后,无法返回任何结果。 FunctionalInterface public interface Runnable {public abstract void run(); }…

仅2万粉,带了2.6万件的货!TikTok Shop美区达人周榜(11.13-11.19)

11月24日,TikTok Shop近日公布了美国市场和英国市场的全托管黑五大促战绩。数据显示,11月14日至11月20日,其美国市场的订单量环比10月20日-10月26日增长了205%。 家居户外热销品有:数码触摸屏相框、毛绒地毯、家居毛毯。黑马商品…

关于微信小程序中如何实现数据可视化-echarts动态渲染

移动端设备中,难免会涉及到数据的可视化展示、数据统计等等,本篇主要讲解原生微信小程序中嵌入echarts并进行动态渲染,实现数据可视化功能。 基础使用 首先在GitHub上下载echarts包 地址:https://github.com/ecomfe/echarts-for…

SD-WAN和混合WAN两种网络方案的差异

传统的WAN是指基于传输控制协议/因特网协议(TCP/IP)的私有广域网(WAN),它由企业网络和ISP组成,用于连接分布在不同地理位置的多个站点。使用传统WAN时,企业需要租用电路,使用专用线路…

机器学习-线性模型·

线性模型是一类用于建模输入特征与输出之间线性关系的统计模型。这类模型的基本形式可以表示为: 其中: 是模型的输出(目标变量)。 是截距(常数项,表示在所有输入特征都为零时的输出值)。 是权重…

2311skia,08解码区域

解码区域 1,抽象 1,图片很大时,解码速度缓慢,占用内存很高,并且,图片超过一定尺寸时,无法上传和显示纹理(这跟GPU能力有关,一般的GPU是8192*8192).这时只好下采样,但会牺牲图片显示质量. 2,-对图库等,需要清晰浏览图片的应用,不可能设置下采样率来解决这一问题,因此,Google加…

The Matrix format of Least Square Method (LMS)

I. Cost function For the cost function J ∑ i 1 n ∣ ∣ y i − x i T θ ∣ ∣ 2 (1) J \sum_{i1}^n || y_i - x_i^T \theta ||^2 \tag{1} Ji1∑n​∣∣yi​−xiT​θ∣∣2(1) where θ ( m 1 ) \theta (m\times 1) θ(m1) is the unknow parameters, x i T ( 1 m…

基于官方YOLOv4-u5【yolov5风格实现】开发构建目标检测模型超详细实战教程【以自建缺陷检测数据集为例】

本文是关于基于YOLOv4开发构建目标检测模型的超详细实战教程,超详细实战教程相关的博文在前文有相应的系列,感兴趣的话可以自行移步阅读即可: 《基于yolov7开发实践实例分割模型超详细教程》《YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程》《DETR (DE…

内衣洗衣机怎么选?内衣洗衣机便宜好用的牌子推荐

相信不少用户并不太在意衣服和内衣裤裤能不能同时洗,每次清洗都是把内衣裤与其他衣服一起放入洗衣机清洗,其实内衣裤不能直接跟大件的衣物一起放入洗衣机洗的,很容易会造成我们皮肤的瘙痒,我们大部分时间都在户外,暴露…

python 基于opencv和face_recognition的人脸识别

python 基于opencv和face_recognition的人脸识别 代码如下: 使用一个photos存放你需要识别的照片,注意一个人一张就行 然后通过下面代码注册用户,之后启动程序,就会调用摄像头进行识别了。 AddPhoto(“发哥”, “./photos/fag…

Java实现集合和Excel文件相互转换

目录 一、集合转化为Excel文件二、Excel文件转化为集合 一、集合转化为Excel文件 效果如下,是将集合转化为Excel文件,Excel包含合并单元格。 实体类: Data public class ClassGrade {/** 年级 */private String grade;/** 班主任 */privat…

纯新手发布鸿蒙的第一个java应用

第一个java开发鸿蒙应用 1.下载和安装华为自己的app开发软件DevEco Studio HUAWEI DevEco Studio和SDK下载和升级 | HarmonyOS开发者 2.打开IDE新建工程(当前用的IDEA 3.1.1 Release) 选择第一个,其他的默认只能用(API9)版本,…

ConcurrentHashMap的数据结构+以及各个版本之间的区别

ConcurrentHashMap 1.7与1.8的区别 1、锁结构不同 2、put的流程不同 3、size的计算方式不同(1.8使用的使用basecell[]计算,有点类似于LongAdder,1.7使用三级通缉判断是否一样,不一样通过分段式加锁再求和) 4、数据结构不同,1.6 Re…

tauri中使用rust调用动态链接库例子(使用libloading库和libc库)

前言 当前采用桌面端框架位tauri,现在需要调用读卡器等硬件设备,硬件厂商提供了32位的动态链接库,现在记录例子,需要注意的点是使用libloading库和libc库, [package] name "yyt-device-rust" version &q…

企业数据建设再思考

近些年企业数据建设进入深水区,近六成受访企业高管表示在未来一到两年会增加数据建设的投入。 数据建设得分最明显的三项指标分别为:开拓数据变现模式、实现数据流与业务流程在各部门间的无缝衔接、搭建基于数据分析的决策体系与管控体系。 因此&#…

文件太大彻底删除怎么找回?速来get这3个有效方法!

“我的电脑里保存了一些很大的文件,由于太占内存了,我就将它们删除掉了,但是我发现有些比较重要的文件也一起被删除了。这可怎么办呢?有什么方法可以找回这些删除文件吗?” 在日常使用电脑的过程中,可能很多…