DashVector - 阿里云向量检索服务

DashVector

文章目录

  • DashVector
    • 一、关于 DashVector
    • 二、使用 DashVector 前提准备
      • 1、创建Cluster:
        • 2、获得API-KEY
        • 3、安装最新版SDK
    • 三、快速使用 DashVector
      • 1. 创建Client
      • 2. 创建Collection
      • 3、插入Doc
      • 4、相似性检索
      • 5、删除Doc
      • 6. 查看Collection统计信息
      • 7. 删除Collection
    • 四、关于 Proxima
      • 核心能力
    • 五、构建 Proxima
      • 获取 Docker 镜像
    • 六、向量检索基本概念
      • Client**(**客户端**)
      • Cluster(实例)
      • Collection(**集合**)
      • Partition**(**分区**)
      • Doc**(**文档**)
      • Field(**字段**)
      • Vector(**向量**)
      • Sparse Vector(稀疏向量)
      • QPS**(**访问频次**)
      • API-KEY


一、关于 DashVector

向量检索服务DashVector基于通义实验室自研的高效向量引擎Proxima内核,提供具备水平拓展能力的云原生、全托管的向量检索服务。

DashVector 将其强大的向量管理、向量查询等多样化能力,通过简洁易用的SDK/API接口透出,方便被上层AI应用迅速集成,从而为包括大模型生态、多模态AI搜索、分子结构分析在内的多种应用场景,提供所需的高效向量检索能力。


  • 阿里云:向量检索服务
    https://help.aliyun.com/document_detail/2510225.html
  • 产品首页:https://www.aliyun.com/product/ai/dashvector
  • DashVector PYPI : https://pypi.org/project/dashvector/
  • LangChain - DashVector
    https://python.langchain.com/docs/integrations/vectorstores/dashvector
  • 实践教程 : https://help.aliyun.com/document_detail/2510233.html
    • 基于向量检索服务与TextEmbedding实现语义搜索
    • DashVector x 通义千问大模型:打造基于专属知识的问答服务
    • DashVector + ModelScope 玩转多模态检索
    • DashVector + DashScope升级多模态检索
    • 文本向量生成
    • 多模态向量生成
    • 图片向量生成

二、使用 DashVector 前提准备


1、创建Cluster:

https://help.aliyun.com/document_detail/2631966.html


1)登录向量检索服务控制台。

https://dashvector.console.aliyun.com/

在这里插入图片描述


2)在左侧导航栏单击Cluster列表,单击创建Cluster

image.png


3)选择Cluster实例类型实例规格副本数,填写Cluster名称,单击立即购买image.png


参数说明

参数描述
商品类型向量检索服务的收费类型。当前仅支持按量付费。详见产品计费。
地域向量检索服务所在地域。当前仅支持**华东1(杭州)**地域。
实例类型向量检索服务DashVector当前支持三种实例类型,以支持不同的业务场景和需求:
性能型:提供更高的QPS和更低的查询延迟,适用于高并发、大流量、延迟敏感或对写入和查询效率有较高要求的场景。
存储型:相对于性能型有5倍的存储容量优势,能够存储和管理更多的向量数据,适用于数据规模大、数据增长快、QPS相对较低的场景。
免费试用:适用于测试、体验场景,请勿用于线上生产环境。免费试用实例有效期为1个月,到期后可再次申请试用。免费实例有部分试用限制,详情可参考约束与限制。

说明
付费Cluster,最多可创建32个Collection。免费试用Cluster,最多可创建2个Collection。

重要
每个账户同一时间段仅能创建一个免费试用Cluster。免费试用Cluster到期或主动释放后可以再次创建一个免费试用Cluster。
免费试用Cluster,创建后30个自然日到期会自动释放,删除所有数据。如有重要业务数据,请及时转移到付费Cluster或者将免费试用Cluster升配为付费Cluster。
实例规格免费试用Cluster:采用Serverless架构,适用于快速体验产品。免费试用实例使用限制请参考约束与限制。
存储型和性能型Cluster分别提供6种可选规格,不同规格的主要区别在于存储容量的不同。实例规格详情,请参见实例规格。
副本数向量检索服务DashVector支持调整副本数,可选范围为1-5。副本之间数据完全相同,副本数越大,可支持的QPS越高,呈线性关系。同时副本数越大,服务可用性越高,建议对可用性有较高要求的生产环境选择>=2的副本数
说明 需要注意,副本数的增加和减少不会影响存储容量,仅影响QPS和可用性。
实例名称必须由大小写字母、数字、下划线(_)、中划线(-)组成,长度[3, 32]。同一账户中不允许两个相同的Cluster名称同时存在。

4)确认实例信息,勾选服务协议,然后单击立即开通image.png


5)单击管理控制台跳转至控制台概览页,Cluster创建成功后,即可正常使用向量检索服务。 在这里插入图片描述


2、获得API-KEY

API-KEY管理:https://help.aliyun.com/document_detail/2510230.html

dashscope API-Key : https://dashscope.console.aliyun.com/apiKey


3、安装最新版SDK

安装DashVector SDK:https://help.aliyun.com/document_detail/2510231.html

DashVector向量检索服务提供下列编程语言的SDK供开发者选择。

  • Python SDK
  • Java SDK
  • HTTP API https://help.aliyun.com/document_detail/2510275.html
  • 更多编程语言的DashVector SDK将在稍后陆续提供。

python 安装

pip3 install dashvector

升级:

pip3 install dashvector --upgrade

三、快速使用 DashVector

转载自:https://help.aliyun.com/document_detail/2510223.html


1. 创建Client

使用HTTP API时可跳过本步骤。

import dashvectorclient = dashvector.Client(api_key='YOUR_API_KEY',endpoint='YOUR_CLUSTER_ENDPOINT'
)
assert client

2. 创建Collection

创建一个名称为quickstart,向量维度为4的collection。

client.create(name='quickstart', dimension=4)collection = client.get('quickstart')
assert collection

说明

  1. 在未指定距离度量参数时,将使用默认的Cosine距离度量方式。
  2. 在未指定向量数据类型时,将使用默认的Float数据类型。

3、插入Doc

from dashvector import Doc# 通过dashvector.Doc对象,插入单条数据
collection.insert(Doc(id='1', vector=[0.1, 0.2, 0.3, 0.4]))# 通过dashvector.Doc对象,批量插入2条数据
collection.insert([Doc(id='2', vector=[0.2, 0.3, 0.4, 0.5], fields={'age': 20, 'name': 'zhangsan'}),Doc(id='3', vector=[0.3, 0.4, 0.5, 0.6], fields={'anykey': 'anyvalue'})    ]
)

4、相似性检索

rets = collection.query([0.1, 0.2, 0.3, 0.4], topk=2)print(rets)

5、删除Doc

# 删除1条数据
collection.delete(ids=['1'])

6. 查看Collection统计信息

stats = collection.stats()print(stats)

7. 删除Collection

client.delete('quickstart')

四、关于 Proxima

  • proxima github : https://github.com/alibaba/proxima
  • proxima 文档:https://proximabilin.github.io/docs/
    • 使用样例 : https://proximabilin.github.io/docs/gettingstarted/example_usage/
    • 安装指南 : https://proximabilin.github.io/docs/gettingstarted/installation/

Proxima 是阿里巴巴达摩院系统 AI 实验室自研的向量检索内核。

目前,其核心能力广泛应用于阿里巴巴和蚂蚁集团内众多业务,如淘宝搜索和推荐、蚂蚁人脸支付、优酷视频搜索、阿里妈妈广告检索等。

同时,Proxima 还深度集成在各式各类的大数据和数据库产品中,如阿里云 Hologres、搜索引擎 Elastic Search 和 ZSearch、离线引擎 MaxCompute (ODPS) 等,为其提供向量检索的能力。

Proxima BE,全称 Proxima Bilin Engine,是 Proxima 团队开发的服务化引擎,实现了对大数据的高性能相似性搜索。

支持 RESTful HTTP 接口访问,同时也支持多种语言的 SDK 以 GRPC 协议访问。


核心能力

Proxima BE 的主要核心能力有以下几点:

  • 支持单机超大规模索引:基于底层向量索引的工程和检索算法优化,使得有限成本下,实现了高效率的检索方法,并支持磁盘索引,单片索引可达几十亿的规模。
  • 支持多数据源全量和增量同步:通过 Mysql Repository 等组件,可将 mysql 等数据源中的数据,实时同步至索引服务,提供查询能力,简化数据处理流程。
  • 支持向量索引实时增删改查:基于全新 CRUD 图索引,支持在线大规模向量索引的从 0 到 1 的流式写入,并实现了索引即时增删改查,避免索引需定期重建。
  • 支持正排数据查询:支持在查询时,可展示文档的所有结构化字段。同时后期将基于此功能,进一步扩展出与文本与向量联合检索等功能。

在这里插入图片描述


五、构建 Proxima

环境要求:

  • Linux or MacOS
  • gcc >= 4.9
  • cmake >= 3.14
git clone https://github.com/alibaba/proximabilin.git
cd proximabilin && git submodule update --initmkdir build && cd build# Build with Debug (Intel Haswell Microarchitecture)
#cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_HASWELL=ON ..# Build with Release (Intel Haswell Microarchitecture)
cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_HASWELL=ON ..make -j all

获取 Docker 镜像

平台仓库版本
Linux X86_64ghcr.io/proximabilin/proxima-be0.2.0

六、向量检索基本概念

转载自:https://help.aliyun.com/document_detail/2511804.html


Client**(客户端

Client(客户端),是用户用于连接DashVector服务端的基础对象,相当于关系型数据库中的Connection。通过设置API_KEY即可完成Client对象的创建,即完成与DashVector服务端的连接。通过Client对象可进行Collection操作(如新建Collection、获取Collection列表等)。


Cluster(实例)

Cluster(实例),是面向售卖的资源管理单位,相当于关系型数据库中的一个库,我们提供了不同的实例产品规格以满足用户不同的业务需求。用户可以通过控制台进行Cluster管理操作(如创建Cluster、升配Cluster、释放Cluster)等,在创建好的Cluster里,用户可以进行后续的Collection、Partition 等操作。

说明

  • 同一个账户支持创建多个Cluster,账户内单个Cluster名称唯一。
  • 每个账户同一时间段仅能创建一个免费试用Cluster,免费试用Cluster到期或主动释放后可以再次创建一个免费试用Cluster。

Collection(集合

Collection(集合),是一个相同类型Doc组成的集合,相当于关系型数据库中的一张表。每个Collection必须使用唯一的名称来标识,通过名称可唯一获取Collection对象。Collection对象可进行各种Doc操作(如插入Doc、检索Doc等)和Partition操作(如新建Partition等)。

说明

  • Collection名称在Cluster内必须唯一,不允许两个相同名称的Collection同时存在。
  • 付费Cluster最多支持创建32个支持Collection;免费Cluster最多支持创建2个Collection。

Partition**(分区

Partition(分区),是指同一个Collection下的Doc可通过不同的Partition进行分区。各种Doc操作(如插入Doc、检索Doc等)如若指定Partition,则该操作将限定在该指定的Paritition内进行。通过合理的Partition设置,可有效提升Doc操作的效率。


Doc**(文档

Doc(文档),是DashVector最基础的数据单元,相当于关系型数据库中的一行数据。Doc包含以下属性:id(主键)、vector(向量)、fields(key-value结构的字段名和字段值)。Doc是插入Doc、更新Doc、插入或更新Doc操作的基础输入结构,同时也是检索Doc和获取Doc操作的输出结构。


Field(字段

Field(字段),是组成Doc的基础单位之一,每个Doc可具备多个Field,相当于关系型数据库中的列。


Vector(向量

Vector(向量),Embedding Vector,非结构化数据通过各种AI Embedding模型进行特征的提取,获取到的多维数据。DashVector中,Vector作为Doc的基础数据单位之一,用于描述各种非结构化数据的特征。例如,[0.1, 0.2, 0.3, 0.4]就是一个维度(dimension)为4的向量。


Sparse Vector(稀疏向量)

Sparse Vector(稀疏向量),稀疏向量是指大部分元素为0,仅少量元素非0的向量。在DashVector中,稀疏向量可用来表示词频等信息。例如,{1:0.4, 10000:0.6, 222222:0.8}就是一个稀疏向量,其第1、10000、222222位元素(分别代表三个关键字)有非0值(代表关键字的权重),其他元素全部为0。


QPS**(访问频次

每秒能向DashVector服务的API发起的最大查询请求次数。QPS越高,同一时段内能够处理的业务量越多。例如QPS为5时,则在1秒内可以进行5次调用请求。


API-KEY

API-KEY是您访问向量检索服务(DashVector)的密 钥。DashVector通过API-KEY进行调用鉴权和计量计费,目前仅支持通过阿里云主账号进行API-KEY管理,每个账户同时可拥有3个有效的API-KEY。

请妥善保存和使用API-KEY,如需进一步了解API-KEY有关的安全信息,请参考保护并正确使用API-KEY。


伊织 2024-03-22(五)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/281995.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hcia datacom课程学习(3):http与https、FTP

1.超文本传输协议:http与https (1)用来访问www万维网。 wwwhttp+html+URLweb (2)它们提供了一种发布和接受html界面的方法:当在网页输入URL后,从服务器获取html文件来…

供应链投毒预警 | 恶意Py组件tohoku-tus-iot-automation开展窃密木马投毒攻击

概述 上周(2024年3月6号),悬镜供应链安全情报中心在Pypi官方仓库(https://pypi.org/)中捕获1起新的Py包投毒事件,Python组件tohoku-tus-iot-automation 从3月6号开始连续发布6个不同版本恶意包&#xff0c…

【nfs报错】rpc mount export: RPC: Unable to receive; errno = No route to host

NFS错误 问题现象解决方法 写在前面 这两天搭建几台服务器,需要使用nfs服务,于是六台选其一做服务端,其余做客户端,搭建过程写在centos7离线搭建NFS共享文件,但是访问共享时出现报错:rpc mount export: RPC…

嵌入式-4种经典继电器驱动电路-单片机IO端口/三极管/达林顿管/嵌套连接

文章目录 一:继电器原理二:单片机驱动电路三:经典继电器驱动电路方案3.1 继电器驱动电路方案一:I/O端口灌电流方式的直接连接3.1.1 方案一的继电器特性要求3.1.2 方案一可能会损坏I/O口 3.2 继电器驱动电路方案二:三极…

el-table树形数据序号排序处理

1&#xff0c;用下面这个代码可以实现基本表格的序号排序 <el-table-column label"序号" width"50px" align"center"><template slot-scope"scope">{{ scope.$index 1 }}</template></el-table-column>2&…

5G安全技术新突破!亚信安全5G安全迅龙引擎正式发布

5G专网应用飞速增长&#xff1a;2020年5G专网数量800个&#xff0c;2021年2300个&#xff0c;2022年5325个&#xff0c;2023年已经超过16000个&#xff0c;5G与垂直行业的融合快速加深&#xff0c;5G带来的变革正加速渗透至各行各业。 5G网络出现安全问题&#xff0c;将是异常严…

idea2023 运行多 springboot 实例

概要 1、修改idea运行多实例&#xff08;本地测试负载&#xff09; 你可能用到其他 1、改造项目缓存token 至redis 支持负载均衡部署 SpringSecurity6.0RedisJWTMP基于token认证功能开发&#xff08;源码级剖析可用于实际生产项目&#xff09;_springsecurity redis管理token…

Odoo17免费开源ERP开发技巧:如何在表单视图中调用JS类

文/Odoo亚太金牌服务开源智造 老杨 在Odoo最新V17新版中&#xff0c;其突出功能之一是能够构建个性化视图&#xff0c;允许用户以独特的方式与数据互动。本文深入探讨了如何使用 JavaScript 类来呈现表单视图来创建自定义视图。通过学习本教程&#xff0c;你将获得关于开发Odo…

雷池 WAF 社区版:下一代 Web 应用防火墙的革新

黑客的挑战 智能语义分析算法&#xff1a; 黑客们常利用复杂技术进行攻击&#xff0c;但雷池社区版的智能语义分析算法能深入解析攻击本质&#xff0c;即使是最复杂的攻击手法也难以逃脱。 0day攻击防御&#xff1a; 传统防火墙难以防御未知攻击&#xff0c;但雷池社区版能有效…

创建一个electron-vite项目

前置条件&#xff1a;非常重要&#xff01;&#xff01;&#xff01; npm: npm create quick-start/electronlatest yarn: yarn create quick-start/electron 然后进入目录&#xff0c;下载包文件&#xff0c;运行项目 到以上步骤&#xff0c;你已经成功运行起来一个 electr…

迷茫了!去大厂还是创业?

大家好&#xff0c;我是麦叔&#xff0c;最近我创建了一个 学习圈子 有球友在 星球 里提问。 大厂的layout岗位和小厂的硬件工程师岗位&#xff0c;该如何选择&#xff1f; 这个问题我曾经也纠结过&#xff0c;不过现在的我&#xff0c;I am awake&#xff01; 肯定是有大点大。…

【研发日记】Matlab/Simulink技能解锁(四)——在Simulink Debugger窗口调试

文章目录 前言 Block断点 分解Block步进 Watch Data Value 分析和应用 总结 前言 见《【研发日记】Matlab/Simulink技能解锁(一)——在Simulink编辑窗口Debug》 见《【研发日记】Matlab/Simulink技能解锁(二)——在Function编辑窗口Debug》 见《【研发日记】Matlab/Simul…

运用YOLOv5实时监测并预警行人社交距离违规情况

YOLO&#xff08;You Only Look Once&#xff09;作为一种先进的实时物体检测算法&#xff0c;在全球范围内因其高效的实时性能和较高的检测精度受到广泛关注。近年来&#xff0c;随着新冠疫情对社交距离管控的重要性日益凸显&#xff0c;研究人员开始将YOLO算法应用于社交距离…

Jenkins流水线将制品发布到Nexus存储库

1、安装jenkins&#xff08;建议别用docker安装&#xff0c;坑太多&#xff09; docker run -d -p 8089:8080 -p 10241:50000 -v /var/jenkins_workspace:/var/jenkins_home -v /etc/localtime:/etc/localtime --name my_jenkins --userroot jenkins/jenkins:2.449 坑1 打开x…

利用matplot绘制折线图(详细版-有示例数据)

对于五组数据&#xff0c;绘制折线图&#xff0c;添加有图例、不同折线的颜色等&#xff0c;如下图所示&#xff1a; python代码&#xff1a; import matplotlib.pyplot as plt import numpy as np# 定义数据 data [[1, 2, 3, 4, 5, 6, 7, 8], # 数据1[2, 2, 4, 4, 5, 5, 6,…

视频私有云,HDMI/AV多硬件设备终端接入,SFU/MCU视频会议交互方案。

在视频业务深入的过程中越来越多的硬件设备接入视频交互的视频会议中远程交互&#xff0c;有的是视频采集&#xff0c;有的是医疗影像等资料&#xff0c;都需要在终端承显&#xff0c;这就需要我们的设备终端能多设备&#xff0c;多协议接入&#xff0c;设备接入如下。 1&#…

UnityShader(十九) AlphaBlend

上代码&#xff1a; Shader "Shader入门/透明度效果/AlphaBlendShader" {Properties{_MainTex ("Texture", 2D) "white" {}_AlphaScale("AlphaScale",Range(0,1))1.0}SubShader{Tags { "RenderType""Transparent&quo…

SQLiteC/C++接口详细介绍sqlite3_stmt类简介

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;十八&#xff09; 下一篇&#xff1a;SQLiteC/C接口详细介绍sqlite3_stmt类&#xff08;一&#xff09; 预准备语句对象 typedef struct sqlite3_stmt sqlite3_stmt…

Linux下QT界面小程序开发

背景&#xff1a;需要在linux不同环境下可以测试我们的读卡器设备 搭建本地linux开发环境&#xff08;本来想VS里开发然后通过SSH的方式在linux下编译&#xff0c;但是工具链一直没搞起来&#xff0c;所以我是在ubuntu里安装的QT Creator工具直接开发的&#xff09;&#xff1b…

【MySQL】3.1MySQL索引的介绍

目录 一、索引的概念 数据库索引 索引的作用 索引的副作用 索引创建的原则&#xff08;应用场景&#xff09; 适合建立索引 二、索引的分类和创建 1.普通索引 创建普通索引 1.1直接创建 1.2修改表结构的方式创建普通索引 1.3创建表时创建普通索引 2.唯一索引 2.1…