AI创想

标题: 向量数据库介绍 [打印本页]

作者: AI小编    时间: 8 小时前
标题: 向量数据库介绍
作者:CSDN博客
1.什么是向量数据

    向量数据库是一种专门用于存储和检索向量数据的数据库。它不同于传统的关系型数据库,而是基于向量相似度匹配的方式来实现高效的数据查询和分析。
(, 下载次数: 0)


2.向量数据库的应用场景

2.1  应用场景概览

        向量数据库是一种专门用于存储和检索向量数据的数据库,它可以处理高维稠密和稀疏向量数据,对于数据量大、数据维度高、需要实时检索和相似度匹配的场景非常适用。以下是一些常见的向量数据库应用场景:
2.2 向量数据库在人工智能领域的应用

        向量数据库被广泛地用于大模型训练、推理和知识库补充等场景:支撑训练阶段海量数据的分类、去重和清洗,给大模型的训练降本增效;通过新数据的带入,帮助大模型提升处理新问题的能力,突破预训练带来的知识时间限制,避免大模型出现幻觉;提供一种私有数据连接大模型的方式,解决私有数据注入大模型带来的安全和隐私问题,加速大模型在产业落地。
        简而言之,向量数据库可以解决大模型预训练成本高、没有“长期记忆”、知识更新不足、提示词工程复杂等问题,突破大模型在时间和空间上的限制,加速大模型落地行业场景。
(, 下载次数: 0)


3.向量数据库的使用

3.1 向量数据库产品

     目前市场上有很多向量数据库产品,以下是一些比较知名的向量数据库产品:
3.2 选择向量数据库时考虑哪些因素

        综合以上几个方面,可以评估一个向量数据库的好坏。另外,需要根据不同的应用场景和需求,选择适合的向量数据库产品。
4.使用示例-PostgreSQL向量扩展

      pgvector 是一个基于 PostgreSQL 的扩展,为用户提供了一套强大的功能,用于高效地存储、查询和处理向量数据。它具有以下特点:
        总之,pgvector 是一个功能强大的 PostgreSQL 扩展,为用户提供了高效、灵活和可靠的方式来处理向量数据。它的直接集成、多种距离度量支持、索引支持和易于访问的查询语言使其成为处理矢量数据的理想选择。
4.1 使用示例

        使用类型为 vector(3) 的 embedding 列创建 tblvector 表。 这样定义,它在三维平面中表示为 three coordinates,这有助于评估向量的位置。
(1)新建表
  1. CREATE TABLE tblvector(
  2.     id bigserial PRIMARY KEY,
  3.     embedding vector(3)
  4.     );
复制代码
(2)数据插入
  1. INSERT INTO tblvector (id, embedding) VALUES (1, '[1,2,3]'), (2, '[4,5,6]'), (3, '[5,4,6]'), (4, '[3,5,7]'), (5, '[7,8,9]');
复制代码
(3)利用 Insert into ... ON CONFLICT 语句,插入记录,如果存在则更新
  1. INSERT INTO tblvector (id, embedding) VALUES (1, '[1,2,3]'), (2, '[4,5,6]')
  2. ON CONFLICT (id) DO UPDATE SET embedding = EXCLUDED.embedding;
复制代码
(4)删除
  1. DELETE FROM tblvector WHERE id = 1;
复制代码
(5)若要检索向量并计算相似性,请使用 SELECT 语句和内置向量运算符。 例如,查询会计算给定向量与存储在 tblvector 表中的向量之间的欧几里得距离(L2 距离),根据计算的距离对结果进行排序,并返回最接近的五个最相似的项。
  1. SELECT * FROM tblvector
  2. ORDER BY embedding <-> '[3,1,2]'
  3. LIMIT 5;
复制代码
(6)使用“<->”运算符穿查询,这是用于计算多维空间中两个向量之间距离的“距离运算符”。 查询返回所有与向量 [3,1,2] 的距离小于 6 的行。
  1. SELECT * FROM tblvector WHERE embedding <-> '[3,1,2]' < 6;
复制代码
5.总结

    最近在学习基于大模型的应用搭建的能力,刚刚碰到了向量数据库这个概念,本文是向量数据库的科普文,介绍了向量数据库的概念、应用场景、选择向量数据库产品的考虑点,最后以PostgreSQL向量扩展示例展示向量数据库的使用。
参考文档:

[1] PostgreSQL pgvector:如何利用向量数据库提升搜索效率和精度
[2] 探索向量数据库的力量:释放大型语言模型之外的潜力
[3] 如何在PostgreSQL中启用和使用pgvector

原文地址:https://blog.csdn.net/TYLZVS007/article/details/132191687




欢迎光临 AI创想 (https://www.llms-ai.com/) Powered by Discuz! X3.4