简介:
Radient是一个轻量级且开发者友好的库,它能将各种数据类型(不只是文本)转换为向量,便于进行相似性搜索。在利用RAG(Retrieval-Augmented Generation)技术的应用中,向量数据库常被用来检索与查询相关的内容。随着大模态模型(如Reka和Fuyu)的发展以及推荐和语义搜索等传统任务的兴起,向量的应用范围正在扩大,不再局限于文本领域。
安装指南:
要使用Radient,只需在命令行中输入:
pip install radient
为什么选择Radient?
尽管目前主要用于文本,但随着技术进步,向量将在音频、图像、图形和分子等多种数据类型中普及。Radient提供了一种通用的方式来处理这些多样化的需求。
入门示例:
通过以下代码,你可以开始对字符串进行向量化:
>>> from radient import text_vectorizer
>>> vectorizer = text_vectorizer()
>>> vectorizer.vectorize("Hello, world!")
Vector([-3.21440510e-02, -5.10351397e-02, 3.69579718e-02, ...
你可以根据需要选择不同的模型,如:
>>> vectorizer_mbai = text_vectorizer(method="sbert", model_name_or_path="mixedbread-ai/mxbai-embed-large-v1")
>>> vectorizer_mbai.vectorize("Hello, world!")
Vector([ 0.01729078, 0.04468533, 0.00055427, ...
支持的数据类型:
除了文本,Radient还支持音频、分子结构和图像的向量化:
>>> from pathlib import Path
>>> from radient import audio_vectorizer, molecule_vectorizer
>>> audio_vectorizer().vectorize(str(Path.home() / "audio.wav"))
Vector([-5.26519306e-03, -4.55586426e-03, 1.79212391e-02, ...
>>> molecule_vectorizer().vectorize("O=C=O") # O=C=O == SMILES string for CO2
Vector([False, False, False, ...
结果向量可以附加元数据,并存储到像Milvus这样的存储库中。
> > > vector = vectorizer.vectorize("My name is Slim Shady")
> > > vector.add_key_value("artist", "Eminem") # {"artist": "Eminem"}
> > > vector.store(collection_name="_radient", field_name="vector")
> > > {'insert_count': 1, 'ids': [449662764050547785]}
性能优化:
对于大量数据的生产环境,性能至关重要。Radient提供了accelerate
函数来实时优化某些向量器:
>>> vectorizer.vectorize("Hello, world!") # runtime: ~32ms
Vector([-3.21440510e-02, -5.10351397e-02, 3.69579718e-02, ...
>>> vectorizer.accelerate()
>>> vectorizer.vectorize("Hello, world!") # runtime: ~17ms
Vector([-3.21440622e-02, -5.10351285e-02, 3.69579904e-02, ...
未来展望:
Radient团队计划增加更多功能,如稀疏、二进制和多向量支持,以及与Huggingface上更多模型的兼容性,还有从云存储和协作平台导入数据的能力。
关于Radient:
Radient致力于将多种数据类型转化为向量,以支持更广泛的相似搜索应用。