ModaHub魔搭社区:AI原生云向量数据库MIlvus Cloud实现 HNSW

news2024/11/25 2:59:20

实现 HNSW

HNSW 并不简单,因此我们只在此处进行最简单的实现。像之前一样,我们首先创建一组(128 维)向量的数据集:

>>> import numpy as np
>>> dataset = np.random.normal(size=(1000, 128))

第一步是构建 HNSW 索引。为此,我们需要将每个向量添加到我们的数据集中。我们首先创建一个数据结构来保存索引。在这个基本示例中,我们将使用列表的列表来表示索引,其中内部列表对应于每个层/图:

>>> L = 5  # 5 层 HNSW
>>> index = [[] for _ in range(L)]

每个图中的每个元素都是一个 3 元组,其中包含向量、向量链接到的索引列表以及下面一层中对应节点的索引。对于底层,3 元组的第三个元素将设置为 None。

由于每次插入都需要在图中搜索最近的邻居,我们先来实现这一点。我们可以遍历索引中的任何子图:

def _search_layer(graph, entry, query, ef=1):

    best = (np.linalg.norm(graph[entry][0] - query), entry)

    nns = [best]
  

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端基础知识学习——圆角、透明圆角(十四)

文章目录 圆角方法一圆角方法二(推荐)透明圆角方法一透明圆角方法二(推荐) 圆角方法一 /* 添加圆角 方法1:border-radius cs3不兼容*/.bo{width: 100px; height: 200px;border: 1px solid #e5e5e5;margin:30px aut…

DMA-GD32

DMA-GD32 DMA模块包括DMA控制器、主模式控制电路、从模式控制电路和数据通道FIFOS. 主、从模式控制电路分别负责控制DMA模块在PCle总线的主模式和从模式下的工作状态 FIFOS实现数据缓冲通道,对总线端的高速信号和外设上本地低速信号进行速率匹配和缓冲 DMA模块的上述结构使得它…

政府-管制

垄断带来的问题 政府以四种方式中的一种对垄断问题作出反应 管制垄断者的行为努力使垄断行业更有竞争性:反垄断(反托拉斯)把一些私人垄断变为公有企业什么也不做管制 政府管制垄断者收取的价格。 如果价格定在边际成本上,资源配置就将是最有效率的。 自然垄断的边际成本定…

centos7.9php8swoole5swoft2环境安装遇到确实redis扩展的解决办法

1、环境介绍 运行系统:centos7.9 php版本:php8.0.29 swoole版本:swoole5 swoft版本:swoft2.02、遇到的问题 The requested PHP extension ext-redis * is missing from your system. Install or enable PHPs redis extension。这…

流量监控异常行为分析案例

分析原理 正常的基于TCP的网络流量,都是先建立TCP连接,再传输数据,然后断开连接。 而网络中经常存在中毒系统、配置错误等问题,导致网络中存在单向请求现象,这些信息也会在网络流量中体现。 NetInside自动发现大量连…

easyphp

说起来是easy但是&#xff0c;代码审计对于我来说有点小难 唯一觉得好的地方是因为基本上每一步都有回显&#xff0c;可以依照回显一步步注入 <?php highlight_file(__FILE__); $key1 0; $key2 0;$a $_GET[a]; $b $_GET[b];if(isset($a) && intval($a) > 60…

apple pencil一代的平替有哪些品牌?苹果平板的触控笔

随着苹果Pencil系列的推出&#xff0c;平替电容笔在国内市场得到了较好的发展&#xff0c;随之的销量&#xff0c;也开始暴涨&#xff0c;苹果pencil因为价格太高&#xff0c;导致很多人买不起。目前市场上&#xff0c;有不少的平替电容笔&#xff0c;可以替代苹果的Pencil&…

总结925

目标规划&#xff1a; 月目标&#xff1a;7月&#xff08;高等数学强化18讲&#xff0c;英语真题4套&#xff0c;数据结构&#xff09; 周目标&#xff1a;高等数学强化前5讲回顾&#xff0c;英语06年真题一套&#xff0c;数据结构第3章习题 每日规划 今日已做 1.早读&#…

普通人怎么实现财务自由?

有道无术&#xff0c;术尚可求也&#xff1b;有术无道&#xff0c;止于术。你好&#xff0c;我是程序员雪球&#xff0c;今天一起来聊聊普通人怎么实现财务自由&#xff1f; 作为普通人&#xff0c;怎么实现财务自由&#xff1f;其实只需要做好三件事&#xff1a;减少日常花销&…

一篇文章让你搞懂字符函数+字符串函数

List item 前言 C语言中对字符和字符串的处理很是频繁&#xff0c;但是C语言本身是没有字符串类型的&#xff0c;字符串通常放在常量字符串中或者字符数组中 字符串常量适用于那些对它不做修改的字符串函数 1.求字符串长度 1.1strlen 其返回值是一个size_t的无符号给整型 …

基于vue的MOBA类游戏攻略分享平台

本系统为了数据库结构的灵活性所以打算采用MySQL来设计数据库&#xff0c;而java技术&#xff0c;B/S架构则保证了较高的平台适应性。本文主要介绍了本系统的开发背景&#xff0c;所要完成的功能和开发的过程&#xff0c;主要说明了系统设计的重点、设计思想。

RK3588国产开发板Debian系统安装虚拟键盘

当我们在使用 debian 系统的时候&#xff0c;如果想要进行输入&#xff0c;无可避免地要外接键盘。当我们的 输入量不大的时候可以进行虚拟键盘的安装。具体步骤如下&#xff1a; 首先使用以下命令&#xff0c;对 onboard 虚拟键盘进行安装&#xff0c;如下图所示&#xff1a…

Python(四):Pycharm的安装配置

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

微软MFC技术中的消息队列及消息处理(下)

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天来聊聊微软MFC技术中的消息队列及消息处理。 MFC应用程序中由Windows 系统以消息的形式发送给应用程序的窗口。窗口接收和处理消息之后&#xff0c;把控制返回给Windows。Windows系统在同一时间可显示多…

道路与航线(SPFA+双端队列优化)

题意&#xff1a;给了若干条道路&#xff0c;道路是双向边&#xff0c;航线是单向边&#xff0c;给了一些政策&#xff0c;如果从a到b有一条航线&#xff0c;那么一定不能通过一些道路和一些航线&#xff0c;从b到a。 分析&#xff1a;因为有负边权存在&#xff0c;所以这道题…

Sentinel系统规则

Sentinel 系统规则 ​ Sentinel 系统自适应限流从整体维度对应用入口流量进行控制&#xff0c;结合应用的 Load、CPU 使用率、总体平均 RT、入口 QPS 和并发线程数等几个维度的监控指标&#xff0c;通过自适应的流控策略&#xff0c;让系统的入口流量和系统的负载达到一个平衡…

8266使用巴法云OTA

为了使用方便把OTA封装一下为以下类 #include "ESP8266HTTPUpdate.h"class OTA { private:ESP8266HTTPUpdate httpUpdate;// using HTTPUpdateStartCB std::function<void()>;void OnStartCB(){Serial.println("开始OTA升级");}// using HTTPUpdat…

[模板总结] - 拓扑排序

模板题目链接 Leetcode 210 Course Schedule II Leetcode 2115 Find all possible Reciptes from given supplies 拓扑排序是在有向无环图中以图中节点依赖关系对节点进行排序。例如求解前置课程&#xff0c;求解程序中调用包的依赖关系等等。 拓扑排序思路 拓扑排序思路…

mysql,对表的简单操作

一.创建表并插入数据 mysql> create table worker(-> department_id int(11) not null comment 部门号,-> worker_id int(11) primary key not null comment 职工号,-> worker_date date not null comment 工作时间,-> wages float(8,2) not null comment 工资…

Shell第一章——Shell编程规范与变量

什么是shell&#xff1f; shell是把人的语言转换成计算机的二进制语言交给计算机的内核处理 shell在中间作为解释器&#xff0c;翻译的功能 linux系统的shell种类&#xff1a;bash&#xff0c;tcsh&#xff0c;csh bash&#xff1a;linux默认的shell tcsh&#xff1a;整合…