redis向量数据库中文使用手册-快速开始(二)

参考文档:Redis as a vector database quick start guide | Docs

2、向量数据库在机器学习中大量使用,其中嵌入表示是一个重要的原因

【嵌入表示】:在机器学习中,经常需要将数据转换为嵌入表示(embedding),即将数据转换为向量形式。这些嵌入表示可以捕捉数据之间的复杂关系,并用于各种机器学习任务。向量数据库能够直接存储和查询这些嵌入表示,使得机器学习模型能够更高效地利用这些数据。

1、选择一个机器学习模型:

本次选用预处理模型: MS MARCO数据集,它被广泛的应用于搜索模型,聊天模型以及其他的AI场景中;

说明:MS MARCO是一个文本搜索排序领域最具代表性的数据集。它收录了微软Bing搜索引擎和Cortana智能助手近百万查询词与800万文档在内的真实搜索场景数据。

  数据模型引用:

from sentence_transformers import SentenceTransformer

embedder = SentenceTransformer('msmarco-distilbert-base-v4')
2)创建矢量化嵌入表示
keys = sorted(client.keys("bikes:*"))
# >>> ['bikes:001', 'bikes:002', ..., 'bikes:011']

将key值用作JSON的参数。使用get命令,以及JSONPath表达式$.description,获取列表信息。然后,将列表传递给encode方法,以获得矢量化嵌入的列表:

descriptions = client.json().mget(keys, "$.description")
descriptions = [item for sublist in descriptions for item in sublist]
embedder = SentenceTransformer("msmarco-distilbert-base-v4")
embeddings = embedder.encode(descriptions).astype(np.float32).tolist()
VECTOR_DIMENSION = len(embeddings[0])
# >>> 768

现在,接下来JSON将矢量化描述添加到Redis中的JSON文档中。SET命令。以下命令在JSONPath$.description_embeddings下的每个文档中插入一个新字段。

pipeline = client.pipeline()
for key, embedding in zip(keys, embeddings):
    pipeline.json().set(key, "$.description_embeddings", embedding)
pipeline.execute()
# >>> [True, True, True, True, True, True, True, True, True, True, True]
获取一个数据:get命令
res = client.json().get("bikes:010")
# >>>
# {
#   "model": "Summit",
#   "brand": "nHill",
#   "price": 1200,
#   "type": "Mountain Bike",
#   "specs": {
#     "material": "alloy",
#     "weight": "11.3"
#   },
#   "description": "This budget mountain bike from nHill performs well..."
#   "description_embeddings": [
#     -0.538114607334137,
#     -0.49465855956077576,
#     -0.025176964700222015,
#     ...
#   ]
# }
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值