当前位置:   article > 正文

AI开发 | 向量数据库Chroma

向量数据库chroma

技术背景

说到向量数据库就得提到Embedding技术,在人工智能的机器学习和深度学习领域,Embedding指的是将高维离散数据(如词汇、物品、用户等)映射到低维连续向量空间中的技术。下面我们用两个例子来对Embedding进行示意说明:

水果甜度酸度向量值
苹果0.7-0.3[0.7,0.3]
0.8-0.2[0.8,0.2]
桃子0.6-0.5[0.6,-0.5]
葡萄0.9-0.2[0.9,-0.2]
西瓜0.6-0.1[0.6,-0.1]
柠檬0.40.8[0.4,0.8]

上面只是一个简单物品量化的例子,实际中的维度或特征可能会有几百上千个。

根据上面的数据集,我们就可以进行我们的实验了,假设甜度为0.6,酸度为-0.3为最适宜食用的水果标准的话。那当我们向机器提问苹果、梨、桃子、葡萄、西瓜、柠檬这6种食物哪个最推荐食用? 机器就可以通过向量计算(相似度/相关度)出最接近水果食用标准的水果,如下图所示:绿色为标准,离他最近的是红色线苹果
在这里插入图片描述
向量距离有两种算法,两个坐标点的距离(欧氏距离),或者向量夹角大小(余弦夹角);

Chroma 简介

Chroma是人工智能原生开源向量数据库。它可以通过使知识、事实等数据向量化到LLM,让构建LLM的应用程序变得容易,详细内容可以点击官网地址进行查阅。
在这里插入图片描述

安装及使用

安装Chroma

按照下面命令进行Chroma安装

pip install chromadb
  • 1

你可能会碰到Microsoft Visual C++ 14.0 or greater is required这个异常,直接按照异常建议的下载地址,下载vs_BuildTools.exe,并点击安装c++桌面程序即可,如下图所示:
在这里插入图片描述

运行Chroma

按照下面命令,运行Chroma

chroma run --path F:\chroma\data
  • 1

将上面数据路径改成自己的地址即可运行,运行后,可以看到下面的效果:
在这里插入图片描述

新增并查询向量数据

按上面命令启动Chroma后,我们可以按下面代码进行测试:

import chromadb
chroma_client = chromadb.Client()
# chroma_client = chromadb.HttpClient(host='localhost', port=8000)

collection = chroma_client.create_collection(name="demo")
#chroma_client = chromadb.PersistentClient(path="/path/to/save/to") # 设置持久化路径

# 添加文档、嵌入向量和元数据到集合中
collection.add(
    documents=["苹果", "梨", "桃子", "葡萄", "西瓜", "柠檬"],
    metadatas=[{"sweetness": "甜度", "acidity": "酸度"}] * 6,  # 使用列表乘法重复元数据字典
    embeddings=[[0.7, -0.3], [0.8, -0.2], [0.6, -0.4], [0.9, -0.2], [0.6, -0.1], [0.4, 0.8]],
    ids=["A1", "A2", "A3", "A4", "A5", "A6"]
)

#获取查看添加的向量数据
result=collection.get(
    ids=["A1", "A2","A3","A4","A5","A6"],
    include=["metadatas", "documents", "embeddings"]  # 明确指定包含嵌入向量(默认不会返回embeddings)
)

print(result)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

运行代码效果如下:
在这里插入图片描述
chroma的详细使用,可以去官网查阅(上面已经提供过地址了)。

总结

向量数据库是支撑现代AI技术,特别是RAG等高级应用的关键基础设施之一,它通过优化数据管理和检索过程,增强了AI应用的效率、准确性和实用性。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/899030
推荐阅读
相关标签
  

闽ICP备14008679号