AI创想

标题: 向量数据库概述以及chroma 向量数据库简单使用教程 [打印本页]

作者: AI小编    时间: 2 小时前
标题: 向量数据库概述以及chroma 向量数据库简单使用教程
作者:CSDN博客
一、向量数据库概述

1.1 为什么要用向量数据库?

要理解为什么需要向量数据库,我们得先明白一个核心概念:“向量”到底解决了什么问题?
从“精确匹配”到“语义理解”:想象一下传统的数据库,比如MySQL 。它像一个管理得井井有条的Excel表格,数据都是结构化的,比如:
商品ID        商品名称价格
101苹果iPhone 155999
102华为Mate 606999
103苹果MacBook Pro14999
你可以用非常精确的SQL查询:SELECT * FROM products WHERE 商品名称 = '苹果iPhone 15'。数据库会快速、准确地找到ID为101的那一行。
但是,这种“精确匹配”在现实世界的智能应用中,能力非常有限。 如果我搜索“水果手机”,传统数据库会一脸懵,因为它不认识“水果手机”就是“iPhone”的俗称。如果我搜索“我想买一个苹果的最新款手机”,它也无能为力,因为它不理解“最新款”是什么意思。
这就是传统数据库的 “语义鸿沟”:它只能匹配字符,无法理解文字背后的含义和意图
1.2 如何让机器理解“意思”?

现代AI,特别是深度学习模型,提供了一种革命性的解决方案。它们可以把任何非结构化数据(文本、图片、声音、视频)转换成一串数字,这串数字就是向量(Vector),也叫嵌入(Embedding)
这个过程就像是给AI提供了一个“万能翻译器”:
文本:“苹果手机” -> [0.12, -0.45, 0.78, ..., 0.33] (一个768维或更高维的数组)
文本:“水果手机” -> [0.13, -0.44, 0.77, ..., 0.34]
图片:一张iPhone的图片 -> [0.11, -0.46, 0.79, ..., 0.32]
这个向量不是随机的,它有一个神奇的特性:在向量空间中,意思越相近的东西,它们的向量距离就越近。
想象一个三维空间,北京和上海的坐标点会很近,而北京和纽约的坐标点会很远。高维向量空间也是同理,只不过维度更高(几百到几千维)。“苹果手机”和“水果手机”的向量几乎挨在一起,而它们和“华为手机”的向量距离稍远,但和“笔记本电脑”的向量距离就非常远了。
这就是向量的核心价值:它将模糊的、基于“语义”的相似性问题,转化成了精确的、可计算的数学问题。
1.3 为什么传统数据库“不行”?

现在我们有了向量,能用MySQL存吗?可以,存一个长字符串或者JSON 就行。但问题来了:如何高效地查询?
假设数据库里有100万个商品向量,用户输入一个查询向量,我们要找到最相似的10个。最笨的办法是“暴力计算”:把用户的向量和100万个向量逐一计算距离,然后排序。这在数据量大的时候,慢到无法接受。
传统数据库的索引(如B-Tree)是为精确匹配和范围查询设计的,它们完全无法处理“在N维空间里找最近的邻居”这种问题。它们就像一本按拼音排序的字典,你很难用它来查找“所有和‘苹果’意思相近的词”。
1.4 向量数据库——为“相似性”而生

向量数据库正是为了解决这个痛点而生的。它像一个专门为“相似性搜索”优化的超级图书馆。它的核心能力不是“存”,而是 “高效地查”。它通过一种叫做“近似最近邻搜索”(ANN , Approximate Nearest Neighbor)的技术来实现这一点
ANN算法(如HNSW, IVF, PQ等)就像是在高维空间里建立了一套智能的“高速公路网”或“聚类索引”。它不需要计算所有点,而是通过一些巧妙的策略,快速“跳到”最有可能存在最近邻的区域,然后用极小的计算量就找到结果。
所以,向量数据库的本质是: 一个专门用于存储和高效检索高维向量,以解决“语义相似性”问题的数据库系统。它填补了传统数据库在处理非结构化数据和语义理解上的巨大鸿沟。
1.5 5种常用向量数据库对比

数据库核心优势最佳适用场景部署方式
Pinecone省心、易用、云原生快速开发、标准RAG、SaaS应用全托管云服务
Milvus/Zilliz功能强大、高性能、可扩展海量数据、企业级核心应用自建/私有云/托管云
Weaviate语义化、混合查询知识图谱、复杂业务逻辑自建/托管云
Chroma轻量、简单、Pythonic        学习、个人项目、快速原型本地/内存
Qdrant极致性能、内存安全实时系统、高并发、资源敏感自建/托管云
建议:
二、chroma 向量数据库简单使用教程

2.1什么是 Chroma?

Chroma是一个 本地运行的开源向量数据库,专为 AI 应用场景设计,比如文档检索、RAG(Retrieval-Augmented Generation)等。它支持嵌入向量的存储与检索,可以和 OpenAI、LangChain 等无缝集成。
2.2、安装 Chroma

你可以通过 pip 安装 Chroma 的 Python 客户端:
  1. pip install chromadb
复制代码
注意:Chroma 默认使用本地嵌入式数据库,不依赖外部服务。
(, 下载次数: 0)


如果只需要使用 Chroma 的客户端功能,可以安装轻量级的客户端库:
  1. pip install chromadb-client
复制代码
2.3、快速上手


原文地址:https://blog.csdn.net/qq_44732146/article/details/158967826




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