当前位置: 首页 > news >正文

1.向量数据库milvus standalone单机版搭建

向量

向量是多维数学空间中的一个坐标点。

向量来源于对这个世界数字化的抽象。

向量的类型

图片向量

文本向量,需要Embedding过程(非结构化的数据转化为向量的过程)

语音向量

通过计算两个向量的距离来判断其相似度。

两个重要的点

1.相似性搜索

2.相似性度量

milvus向量数据库,是一个为向量查询和检索设计的云原生数据库,可以使用到k8s上面。

关键词

非机构化数据:(包括图片、音频、视频和自然语言)不遵循预定义模型和组织方式信息。

embedding向量:将非结构化数据转化为向量的过程。将非结构化数据的特征提取出来再转化为向量。向量就是一个数组,一个128位的向量就是一个128大小的数组[1,2,3,,,,128]

向量相似性搜索:比如将一张图片转化为向量值,然后到collection中去搜索。通过在向量字段上建立索引。向量索引类型大部分都采用了近似最近邻搜索(ANNS)

相似度指标

相似度用于衡量向量之间的相似性。

用于浮点embedding的指标包括:

  • Cosine:余弦
  • Euclidean distance(L2):欧几里得距离、欧式距离
  • Inner product(IP):内积

应用场景

1.图像相似性搜索

2.视频相似性搜索:通过将关键帧转化为向量。可以近乎实时的搜索和推荐数十亿个视频。

3.音频相似性搜索:快速查询海量音频数据,如语音、音效、音乐、表面相似的声音。

4.推荐系统:根据用户行为和需求推荐信息和产品。

5.问答系统:交互式数字QA聊天机器人,可自动回答用户问题。

6.DNA序列分类:通过比较相似的DNA序列,在几毫秒内准确的对基因进行分类。

7.文本搜索引擎:通过将关键字与文本数据库进行比较,帮助用户找到他们正在寻找的信息。

都是基于特征提取转化为向量,然后进行向量的相似性搜索。万物皆可向量。

milvus不能解决的问题

不能解决embedding问题,将非结构化的数据(文本、视频、音频)转化为向量的功能。需要其他的一些算法来解决。

Conda环境

安装conda,可以用来方便管理多个python解释器的版本

命令:conda env list 查看python有哪些版本

命令:conda activate 具体的环境名(上一步产生)

python使用的milvus包

pip install pymilvus==v2.3.7

命令:查看python安装了哪些第三方包,conda list -n 具体的环境名(上一步产生)

安装docker这里不再介绍,参看其他博客。

安装docker-compose

下载docker-compose

wget https://github.com/docker/compose/releases/download/v2.3.1/docker-compose-linux-x86_64

如果下载慢,可以通过迅雷下载地址。

设置权限

sudo chmod +x /usr/bin/docker-compose

启动命令

docker-compose up -d

docker-compose ps  查看容器

docker-compose down  停止并删除容器(特别注意以免误删容器)

卸载Compose:直接删除 usr/local/bin/docker-compose文件即可 

停止容器命令

docker-compose stop

第二次启动容器命令,无需创建容器

docker-compose start

查看容器日志命令

docker logs -f 容器名称

安装milvus

wget https://github.com/milvus-io/milvus/releases/download/v2.3.1/milvus-standalone-docker-compose.yml -O docker-compose.yml

将文件内容改为如下: 

version: '3.5'
 
 
 
services:
 
  etcd:
 
    container_name: milvus-etcd
 
    image: quay.io/coreos/etcd:v3.5.5
 
    environment:
 
      - ETCD_AUTO_COMPACTION_MODE=revision
 
      - ETCD_AUTO_COMPACTION_RETENTION=1000
 
      - ETCD_QUOTA_BACKEND_BYTES=4294967296
 
      - ETCD_SNAPSHOT_COUNT=50000
 
    volumes:
 
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcd
 
    ports:
 
      - "2379:2379"
 
    command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd
 
    healthcheck:
 
      test: ["CMD", "etcdctl", "endpoint", "health"]
 
      interval: 5s
 
      timeout: 3s
 
      retries: 10
 
 
 
  minio:
 
    container_name: milvus-minio
 
    image: minio/minio:RELEASE.2023-03-20T20-16-18Z
 
    environment:
 
      MINIO_ACCESS_KEY: minioadmin
 
      MINIO_SECRET_KEY: minioadmin
 
    ports:
 
      - "9001:9001"
 
      - "9000:9000"
 
    volumes:
 
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_data
 
    command: minio server /minio_data --console-address ":9001"
 
    healthcheck:
 
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
 
      interval: 5s
 
      timeout: 3s
 
      retries: 10
 
 
 
  standalone:
 
    container_name: milvus-standalone
 
    image: milvusdb/milvus:v2.3.1
 
    command: ["milvus", "run", "standalone"]
 
    environment:
 
      ETCD_ENDPOINTS: etcd:2379
 
      MINIO_ADDRESS: minio:9000
 
    volumes:
 
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus
 
    healthcheck:
 
      test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
 
      interval: 30s
 
      start_period: 90s
 
      timeout: 20s
 
      retries: 3
 
    ports:
 
      - "19530:19530"
 
      - "9091:9091"
 
    depends_on:
 
      - "etcd"
 
      - "minio"
 
 
 
networks:
 
  default:
 
name: milvus

docker compose安装milvus standalone 单机版

milvus安装依赖于etcd和minio,因此要先启动这两个组件,同样也是用docker进行启动。

etcd用来存储milvus的元数据。

minio用来存储milvus的向量数据和索引数据。

centos7上通过docker容器部署attu工具

attu图形化管理工具

docker run -d \
--name=attu \
-p 8000:3000 \
-e MILVUS_URL=192.168.171.130:19530 \
zilliz/attu:v2.3.9

 web访问地址:http://192.168.171.130:8000/

直接下载exe文件,安装客户端在windows上操作

下载Attu2.3.9

attu工具下载

https://github.com/zilliztech/attu/releases

 http://192.168.171.130:9001/login

milvus就会创建bucket:a-bucket中就会存放向量数据和索引数据

相关文章:

  • MobaXterm:全能终端工具如何重新定义远程开发与运维效率?
  • Linux 常用命令 - last 【显示历史登录用户列表】
  • 在coze工作流中将数据回写到飞书表格
  • ubuntu部署运行xinference全精度对话deepseek本地部署图文教程
  • WPS宏开发手册——使用、工程、模块介绍
  • 【后端】【Django】【ORM】SearchFilter 详解
  • Hive配置JDBC连接
  • Unity编辑器扩展快速回顾
  • Jackson使用ObjectNode对象实现JSON对象数据(一):增、删、改、查
  • springcloud是多个springboot项目分开的吗
  • CCF开源发展委员会常委会会议召开,共绘开源新蓝图
  • 怎样对比找到两个git仓库的差异
  • 不能将下载行为传输到IDM
  • 固定翼无人机姿态和自稳模式
  • 【语料数据爬虫】Python爬虫|批量采集讲话稿数据【范文网】(2)
  • Cocos Creator Shader入门实战(六):使用setProperty动态设置材质属性,以及材质常用接口
  • 微信小程序-通用印刷体识别cv/ocr/comm报media data missing hint错
  • 两个还算好用的ppt转word和PDF转word的python脚本
  • 执行adb指令报错:error: more than one device/emulator原因及解决方法
  • 构建高效的LinkedIn图像爬取工具
  • 盖茨:20年内将捐出几乎全部财富,盖茨基金会2045年关闭
  • 阿森纳被打得毫无脾气,回天无力的阿尔特塔只剩嘴硬
  • 复旦设立新文科发展基金,校友曹国伟、王长田联合捐赠1亿助力人文学科与社会科学创新
  • 观察|22项达全球最优,世行为上海营商环境“盖章”
  • 印巴冲突升级,巴防长称已击落5架印度战机
  • 央行行长详解降息:将通过利率自律机制引导商业银行相应下调存款利率