向量数据库PGVECTOR,AI浪潮下崛起的新秀!

2024-02-29 12:12

本文主要是介绍向量数据库PGVECTOR,AI浪潮下崛起的新秀!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

    • 📣 1.序言
    • 📣 2.向量数据库
    • 📣 3.向量插件PGVECTOR
    • 📣 4.PGVECTOR安装
    • 📣 5.PGVECTOR实践
      • ✨ 5.1 知识检索
      • ✨ 5.2 距离定位
    • 📣 6.优势和不足
    • 📣 7.总结


向量数据库因为可以为大模型提供记忆而需求倍增,随着AI的热潮开始崭露头角,本文也聚焦于被 AI 炒火了的向量数据库,介绍什么是向量数据库,以及以插件形式存在的 pgvector,与PostgreSQL 强强联合,成为AI浪潮下的崛起新星。

📣 1.序言

自从OpenAI推出了全新的对话式通用人工智能工具——ChatGPT,ChatGPT 表现出了非常惊艳的语言理解、生成、知识推理能力,ChatGPT 的横空出世拉开了大语言模型产业和生成式AI产业蓬勃发展的序幕,大模型作为新一代的AI处理器,提供了数据处理能力;而向量数据库提供了存储能力,成为大模型时代的重要基座。

在这里插入图片描述

📣 2.向量数据库

数据库有事务处理(OLTP)与数据分析(OLAP)两大核心场景,向量数据库自然也不例外。典型的事务处理场景包括:知识库,问答,推荐系统,人脸识别,图片搜索,等等等等。知识问答:给出一个自然语言描述的问题,返回与这些输入最为接近的结果;以图搜图:给定一张图片,找出与这张图片在逻辑上最接近的其他相关图片。
这些功能说到底都是一个共同的数学问题:向量最近邻检索(KNN):给定一个向量,找到距离此向量最近的其他向量。

向量数据库的主要应用场景:
1.人脸识别
向量数据库可以存储大量的人脸向量数据,
并通过向量索引技术实现快速的人脸识别和比对。
2.图像搜索
向量数据库可以存储大量的图像向量数据,
并通过向量索引技术实现快速的图像搜索和相似度匹配。
3.音频识别
向量数据库可以存储大量的音频向量数据,
并通过向量索引技术实现快速的音频识别和匹配。
4.自然语言处理
向量数据库可以存储大量的文本向量数据,
并通过向量索引技术实现快速的文本搜索和相似度匹配。
5.推荐系统
向量数据库可以存储大量的用户向量和物品向量数据,
并通过向量索引技术实现快速的推荐和相似度匹配。
6.数据挖掘
向量数据库可以存储大量的向量数据,
并通过向量索引技术实现快速的数据挖掘和分析。

在这里插入图片描述

📣 3.向量插件PGVECTOR

在所有现有向量数据库中,pgvector是一个独特的存在 —— 它选择了在现有的世界上最强大的开源关系型数据库 PostgreSQL 上以插件的形式添砖加瓦,而不是另起炉灶做成另一个专用的“数据库” pgvector有着优雅简单易用的接口,不俗的性能表现,更是继承了PG生态的超能力集合。

在这里插入图片描述

pgvector 是一个基于 PostgreSQL 的扩展,为用户提供了一套强大的功能,用于高效地存储、查询和处理向量数据。它具有以下特点:

直接集成:pgvector 可以作为扩展直接添加到现有的 PostgreSQL 环境中,方便新用户和长期用户获得矢量数据库的好处,无需进行重大系统更改。
支持多种距离度量:pgvector 内置支持多种距离度量,包括欧几里德距离、余弦距离和曼哈顿距离。这样的多功能性使得可以根据具体应用需求进行高度定制的基于相似性的搜索和分析。

索引支持:pgvector 扩展为矢量数据提供高效的索引选项,例如 k-最近邻 (k-NN) 搜索。即使数据集大小增长,用户也可以实现快速查询执行,并保持较高的搜索准确性。
易于查询语言访问:作为 PostgreSQL 的扩展,pgvector 使用熟悉的 SQL 查询语法进行向量操作。这简化了具有 SQL 知识和经验的用户使用矢量数据库的过程,并避免了学习新的语言或系统。

积极的开发和支持:pgvector 经常更新,以确保与最新的 PostgreSQL 版本和功能兼容,并且开发者社区致力于增强其功能。用户可以期待一个受到良好支持的解决方案,满足其矢量数据的需求。

稳健性和安全性:通过与 PostgreSQL 的集成,pgvector 继承了相同级别的稳健性和安全性功能,使用户能够安全地存储和管理其矢量数据。

📣 4.PGVECTOR安装

1.配置yum源
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm2.编译安装
# 先安装git(如果已安装,跳过)
yum install -y git# 切换到/tmp目录,下载源码包,我这里选择是目前最新版本0.5.1
cd /tmp
git clone --branch v0.6.0 https://github.com/pgvector/pgvector.git# 进入/tmp/pgvector目录,进行编译安装
cd pgvector
make & make install3.安装vector扩展
# 创建demo数据库
create database demo;# 切换到demo数据库
\c demo# 安装vector扩展
CREATE EXTENSION vector;# 创建测试表
CREATE TABLE test (id bigserial PRIMARY KEY, embedding vector(3));# 插入测试数据
INSERT INTO test (embedding) VALUES ('[1,2,3]'), ('[4,5,6]');# 按与给定向量相似度(L2 distance)排序,显示前5条
SELECT * FROM test ORDER BY embedding <-> '[3,1,2]' LIMIT 5;

📣 5.PGVECTOR实践

✨ 5.1 知识检索

用一个简易的 Python 小脚本,
就可以制作一个全文模糊检索的命令行小工具# !/usr/bin/env python3
from text2vec import SentenceModel
from psycopg2 import connect
model = SentenceModel('shibing624/text2vec-base-chinese')def query(question, limit=64):vec = model.encode(question)  # 生成一个一次性的编码向量,默认查找最接近的64条记录item = 'ARRAY[' + ','.join([str(f) for f in vec.tolist()]) + ']::VECTOR(768)'cursor = connect('postgres:///').cursor()cursor.execute("""SELECT id, txt, vec <-> %s AS d FROM sentences ORDER BY 3 LIMIT %s;""" % (item, limit))for id, txt, distance in cursor.fetchall():print("%-6d [%.3f]\t%s" % (id, distance, txt))

✨ 5.2 距离定位

在这里插入图片描述

📣 6.优势和不足

优点:
高效查询:向量数据库使用特殊的数据结构和索引方法来优化查询效率,可以快速地查询和计算相似度,支持高效的数据查询。
支持高维度向量:向量数据库可以支持高维度的向量数据,可以存储和查询大规模的向量数据。
支持复杂查询:向量数据库可以支持复杂的查询操作,如范围查询、布尔查询、聚合查询等,可以满足不同类型的查询需求。
支持高并发:向量数据库通常采用多线程或分布式架构来支持高并发的查询请求,可以满足大规模数据查询的需求。
可扩展性强:向量数据库可以根据需要进行扩展,可以扩展到多台服务器上,可以支持大规模的向量数据存储和查询。
应用场景广泛:向量数据库在机器学习、图像识别、自然语言处理等领域得到广泛应用,可以满足各种不同的应用场景需求。

缺点:
存储成本高:向量数据通常需要较大的存储空间,因此存储成本相对较高。
查询效率受向量维度影响:向量维度越高,查询效率越低。
数据更新困难:向量数据的更新操作相对复杂,需要重新计算相似度等数据。
适用场景有限:向量数据库适用于存储和查询大规模的向量数据,对于其他类型的数据则不太适用。
技术门槛较高:向量数据库的技术门槛较高,需要具备一定的数学和计算机技术知识。

📣 7.总结

向量数据库是一个非常有前景和潜力的行业,相信未来随着AI技术的不断发展,向量数据库也必将迎来更加广阔的发展空间。

这篇关于向量数据库PGVECTOR,AI浪潮下崛起的新秀!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/758734

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

AI行业应用(不定期更新)

ChatPDF 可以让你上传一个 PDF 文件,然后针对这个 PDF 进行小结和提问。你可以把各种各样你要研究的分析报告交给它,快速获取到想要知道的信息。https://www.chatpdf.com/