DashText

简介: DashText,是向量检索服务DashVector推荐使用的稀疏向量编码器(Sparse Vector Encoder),DashText可通过BM25算法将原始文本转换为稀疏向量(Sparse Vector)表达,通过DashText可大幅度简化使用DashVector关键词感知检索能力。

免费体验阿里云高性能向量检索服务https://www.aliyun.com/product/ai/dashvector


DashText,是向量检索服务DashVector推荐使用的稀疏向量编码器(Sparse Vector Encoder),DashText可通过BM25算法将原始文本转换为稀疏向量(Sparse Vector)表达,通过DashText可大幅度简化使用DashVector关键词感知检索能力。


安装DashText

说明

需要提前安装Python3.7及以上版本,请确保相应的Python版本


Shell:

pip install dashtext


快速开始

说明

1.需要使用您的api-key替换以下示例中的 YOUR_API_KEY,代码才能正常运行

2.本示例仅对Sparse Vector进行功能演示,简化起见,向量(Dense Vector)维度设置为4


Step1. 创建支持Sparse Vector的Collection

Python:

import dashvector
client = dashvector.Client(api_key='YOUR_API_KEY')
assert client
ret = client.create('hybrid_collection', dimension=4, metric='dotproduct')
assert ret
collection = client.get('hybrid_collection')
assert collection

重要

仅内积度量(metric='dotproduct')支持Sparse Vector功能


Step2. 创建SparseVectorEncoder

使用内置Encoder

Python:

from dashtext import SparseVectorEncoder
encoder = SparseVectorEncoder.default()

说明

内置Encoder使用中文Wiki语料进行训练,采用Jieba进行中文分词


基于自有语料创建Encoder(推荐)

Python:

from dashtext import SparseVectorEncoder
encoder = SparseVectorEncoder()
# (全部)自有语料
corpus = [
    "向量检索服务DashVector基于达摩院自研的高效向量引擎Proxima内核,提供具备水平拓展能力的云原生、全托管的向量检索服务",
    "DashVector将其强大的向量管理、向量查询等多样化能力,通过简洁易用的SDK/API接口透出,方便被上层AI应用迅速集成",
    "从而为包括大模型生态、多模态AI搜索、分子结构分析在内的多种应用场景,提供所需的高效向量检索能力",
    "简单灵活、开箱即用的SDK,使用极简代码即可实现向量管理",
    "自研向量相似性比对算法,快速高效稳定服务",
    "Schema-free设计,通过Schema实现任意条件下的组合过滤查询"
]
# 基于自有语料训练Encoder
encoder.train(corpus)

说明

1.内置Encoder可直接使用,无需使用原始语料进行训练,使用起来更加方便,同时泛化能力较强。但面对原始语料中专业术语较多等场景,准确性偏弱

2.基于自有语料创建Encoder,需要预先根据(全部)原始语料进行训练,准确性较高

3.用户需根据自身业务场景和需求来选择Encoder,通常而言,推荐基于自有语料创建Encoder


Step3. 插入带有Sparse Vector的Doc

Python:

from dashvector import Doc
document = "向量检索服务DashVector基于达摩院自研的高效向量引擎Proxima内核,提供具备水平拓展能力的云原生、全托管的向量检索服务。"
doc_sparse_vector = encoder.encode_documents(document)
print(doc_sparse_vector)
# 基于内置Encoder的output: 
# {380823393: 0.7262431704356519, 414191989: 0.7262431704356519, 565176162: 0.7262431704356519, 904594806: 0.7262431704356519, 1005505802: 0.7262431704356519, 1169440797: 0.8883757984694465, 1240922502: 0.7262431704356519, 1313971048: 0.7262431704356519, 1317077351: 0.7262431704356519, 1490140460: 0.7262431704356519, 1574737055: 0.7262431704356519, 1760434515: 0.7262431704356519, 2045788977: 0.8414146776926797, 2141666983: 0.7262431704356519, 2509543087: 0.7262431704356519, 3180265193: 0.7262431704356519, 3845702398: 0.7262431704356519, 4106887295: 0.7262431704356519}
collection.insert(Doc(
    id='A',
    vector=[0.1, 0.2, 0.3, 0.4],
    sparse_vector=doc_sparse_vector
))


Step4. 关键词感知的向量检索

Python:

query = "什么是向量检索服务?"
query_sparse_vector = encoder.encode_queries(query)
print(query_sparse_vector)
# 基于内置Encoder的output: 
# {1169440797: 0.2947158712590364, 2045788977: 0.7052841287409635}
docs = collection.query(
    vector=[0.1, 0.1, 0.1, 0.1],
    sparse_vector=query_sparse_vector
)


API参考

DashText API详情可参考:https://pypi.org/project/dashtext/


向量检索服务 DashVector 免费试用进行中,玩转大模型搜索,快来试试吧~

了解更多信息,请点击:https://www.aliyun.com/product/ai/dashvector

相关文章
|
3月前
|
人工智能 自然语言处理 开发工具
通过ModelScope开源Embedding模型将文本转换为向量
本文介绍如何通过ModelScope魔搭社区中的文本向量开源模型将文本转换为向量,并入库至向量检索服务DashVector中进行向量检索。
|
3月前
|
存储 机器学习/深度学习 人工智能
打造企业智能体(AI Agent)的重要技术-向量数据库
本篇介绍的是为通用大模型增加专业业务能力的重要技术:向量数据库
打造企业智能体(AI Agent)的重要技术-向量数据库
|
4月前
|
存储 人工智能 搜索推荐
向量数据库:大模型时代的技术基座
人工智能在各行各业的广泛应用,带来了令人振奋的机遇与可能,同时也给我们带来了全新的挑战。 在涉及大型语言模型、生成型AI以及语义搜索等应用领域,数据处理的高效性变得尤为重要。
|
4月前
|
存储 人工智能 算法
大模型,向量数据库,prompt的关系是什么?
详细了解大模型,向量数据库,prompt三者之间的关系
|
5月前
|
存储 算法 搜索推荐
十分钟带你入门向量检索技术
本文主要对向量检索的概念、应用场景、距离计算方式和基础算法进行介绍,后续还将进一步分享向量检索的技术调研、测试、应用和思考。
|
5月前
|
存储 人工智能 对象存储
DashVector + DashScope升级多模态检索
本教程在前述教程(DashVector + ModelScope玩转多模态检索)的基础之上,基于DashScope上新推出的ONE-PEACE通用多模态表征模型结合向量检索服务DashVector来对多模态检索进行升级,接下拉我们将展示更丰富的多模态检索能力。
|
4月前
|
人工智能 Java API
如何快速使用向量检索服务DashVector?
本文将介绍如何快速上手使用向量检索服务DashVector。
|
3月前
|
人工智能 API 开发工具
通过百川智能向量化模型将文本转换为向量
本文介绍如何通过百川智能向量化模型将文本转换为向量,并入库至向量检索服务DashVector中进行向量检索。
通过百川智能向量化模型将文本转换为向量
|
2月前
|
人工智能 算法 数据处理
大模型长上下文与向量检索的关系
AI应用的开发者一直在追求查询质量和成本之间的完美平衡,当大型企业将生成式人工智能投入生产时,需要控制成本,同时保持最佳的响应质量,RAG技术和向量数据库依然是实现这一目标的重要工具。
|
3月前
|
SQL 自然语言处理 数据管理
观点 | 大模型与数据库
本文初步将探讨大模型为数据库带来的机遇,以及数据库为大模型带来的价值,并展望了未来数据库与大模型的发展趋势。
观点 | 大模型与数据库

热门文章

最新文章