个人网站模板制作蔺市网站建设

bicheng/2026/1/17 4:21:02/文章来源:
个人网站模板制作,蔺市网站建设,智能自助建站系统源码,建德网站建设公司在我之前的文章 “Elasticsearch#xff1a;调整搜索速度”#xff0c;我详细地描述了如何调整正常的 BM25 的搜索速度。在今天的文章里#xff0c;我们来进一步探讨如何提高近似 kNN 的搜索速度。希望对广大的向量搜索开发者有一些启示。 Elasticsearch 支持近似 k 最近邻… 在我之前的文章 “Elasticsearch调整搜索速度”我详细地描述了如何调整正常的 BM25 的搜索速度。在今天的文章里我们来进一步探讨如何提高近似 kNN 的搜索速度。希望对广大的向量搜索开发者有一些启示。 Elasticsearch 支持近似 k 最近邻搜索以有效查找与查询向量最接近的 k 个向量。 由于近似 kNN 搜索的工作方式与其他查询不同因此对其性能有特殊的考虑。其中许多建议有助于提高搜索速度。 使用近似 kNN索引算法在底层运行搜索以创建向量索引结构。 因此这些相同的建议也有助于提高索引速度。 减少向量内存占用 默认的 element_type是 float。 但这可以通过 quantization 在索引时间时自动进行标量量化。具体的介绍可以详细阅读文章 “Elasticsearchdense vector 数据类型及标量量化”。 量化会将所需的内存减少 4 倍但也会降低向量的精度并增加该字段的磁盘使用量最多增加 25%。 磁盘使用量增加是 Elasticsearch 存储量化向量和未量化向量的结果。 例如当量化 40GB 浮点向量时将为量化向量存储额外的 10GB 数据。 总磁盘使用量为50GB但快速搜索的内存使用量将减少到10GB。 对于 dim 大于或等于 384 的浮点向量强烈建议使用量化索引。 降低向量维数 kNN 搜索的速度与向量维数成线性关系因为每个相似度计算都会考虑两个向量中的每个元素。 只要有可能最好使用维度较低的向量。 一些嵌入模型有不同的维度大小有更低和更高维度的选项。 你还可以尝试使用 PCA 等降维技术。 在尝试不同的方法时衡量对相关性的影响非常重要以确保搜索质量仍然可以接受。 从 _source 中排除向量字段 Elasticsearch 将在索引时传递的原始 JSON 文档存储在 _source 字段中。 默认情况下搜索结果中的每个命中都包含完整文档 _source。 当文档包含 dense_vector 字段时_source 可能非常大且加载成本昂贵。 这可能会显着降低 kNN 搜索的速度。 你可以通过 excludes 映射参数禁用在 _source 中存储 dense_vector 字段。 这可以防止在搜索期间加载和返回大向量并且还可以减少索引大小。 _source 中省略的向量仍然可以在 kNN 搜索中使用因为它依赖于单独的数据结构来执行搜索。 在使用 excludes 参数之前请确保查看从 _source 中省略字段的缺点。 另一种选择是使用 synthetic_source如果所有索引字段都支持。 确保数据节点有足够的内存 Elasticsearch 使用 HNSW 算法进行近似 kNN 搜索。 HNSW 是一种基于图的算法只有当大多数向量数据保存在内存中时才能有效地工作。 你应该确保数据节点至少有足够的 RAM 来保存向量数据和索引结构。 要检查向量数据的大小你可以使用分析索引磁盘使用情况 API。 作为一个宽松的经验法则并假设默认的 HNSW 选项使用的字节将为 num_vectors * 4 * (num_dimensions 12)。 当使用字节 element_type 时所需的空间将更接近 num_vectors * (num_dimensions 12)。 请注意所需的 RAM 用于文件系统缓存它与 Java 堆分开。 数据节点还应该为其他需要 RAM 的方式留下缓冲区。 例如你的索引可能还包括文本字段和数字这也受益于使用文件系统缓存。 建议使用你的特定数据集运行基准测试以确保有足够的内存来提供良好的搜索性能。 你可以在这里和这里找到我们用于夜间基准测试的一些数据集和配置示例。 预热文件系统缓存 如果运行 Elasticsearch 的机器重新启动文件系统缓存将为空因此操作系统需要一些时间才能将索引的热区域加载到内存中以便搜索操作快速。 你可以使用 index.store.preload 设置显式告诉操作系统哪些文件应根据文件扩展名立即加载到内存中。 警告如果文件系统缓存不够大无法容纳所有数据则在太多索引或太多文件上急切地将数据加载到文件系统缓存中将使搜索速度变慢。 谨慎使用。 以下文件扩展名用于近似 kNN 搜索 向量值的 vec 和 veqHNSW 图的 vex用于元数据的 vem、vemf 和 vemq 减少索引段的数量 Elasticsearch 分片由段segment组成段是索引中的内部存储元素。 对于近似 kNN 搜索Elasticsearch 将每个段的向量值存储为单独的 HNSW 图因此 kNN 搜索必须检查每个段。 最近的 kNN 搜索并行化使得跨多个片段的搜索速度大大加快但如果片段较少kNN 搜索的速度仍然可以提高数倍。 默认情况下Elasticsearch 通过后台合并过程定期将较小的段合并为较大的段。 如果这还不够你可以采取明确的步骤来减少索引段的数量。 Lucene 合并同时索引所有维基百科英文 强制合并到一个段 Force merge 操作强制进行索引合并。 如果强制合并到一个段kNN 搜索只需要检查一个包含所有内容的 HNSW 图。 强制合并 dense_vector 字段是一项昂贵的操作可能需要大量时间才能完成。 警告我们建议仅强制合并只读索引意味着索引不再接收写入。 当文档被更新或删除时旧版本不会立即删除而是软删除并标记为 “墓碑”。 这些软删除文档会在定期段合并期间自动清除。 但强制合并可能会导致生成非常大 5GB的段这些段不符合常规合并的条件。 因此软删除文档的数量会迅速增长从而导致更高的磁盘使用率和更差的搜索性能。 如果你定期强制合并接收写入的索引这也会使快照更加昂贵因为新文档无法增量备份。 在批量索引期间创建大段 常见的模式是首先执行初始批量上传然后使索引可用于搜索。 你可以调整索引设置以鼓励 Elasticsearch 创建更大的初始段而不是强制合并 确保批量上传期间没有搜索并通过将其设置为 -1 来禁用 index.refresh_interval。 这可以防止刷新操作并避免创建额外的段。为 Elasticsearch 提供一个较大的索引缓冲区以便它可以在刷新之前接受更多文档。 默认情况下indices.memory.index_buffer_size 设置为堆大小的 10%。 对于像 32GB 这样的大堆大小这通常就足够了。 为了允许使用完整的索引缓冲区你还应该增加限制 index.translog.flush_threshold_size。 避免在搜索过程中建立大量索引 积极地索引文档可能会对近似 kNN 搜索性能产生负面影响因为索引线程会窃取搜索的计算资源。 当同时索引和搜索时Elasticsearch 也会频繁刷新这会创建几个小段。 这也会损害搜索性能因为当分段较多时近似 kNN 搜索速度会变慢。 如果可能最好在近似 kNN 搜索期间避免大量索引。 如果你需要重新索引所有数据可能是因为向量嵌入模型发生了变化那么最好将新文档重新索引到单独的索引中而不是就地更新它们。 这有助于避免上述速度减慢并防止由于频繁的文档更新而导致昂贵的合并操作。 在 Linux 上使用适度的预读值来避免页面缓存抖动 搜索可能会导致大量随机读取 I/O。 当底层块设备具有较高的预读值时可能会执行大量不必要的读取 I/O特别是当使用内存映射访问文件时请参阅存储类型。 大多数 Linux 发行版对单个普通设备使用 128KiB 的合理预读值但是当使用软件 raid、LVM 或 dm-crypt 时生成的块设备支持 Elasticsearch path.data最终可能会具有非常大的预读值在 几个 MiB 的范围。 这通常会导致严重的页面文件系统缓存抖动从而对搜索或更新性能产生不利影响。 你可以使用 lsblk -o NAME,RA,MOUNTPOINT,TYPE,SIZE 检查当前值以 KiB 为单位。 有关如何更改此值的信息请参阅发行版的文档例如使用 udev 规则在重新启动后保持不变或通过 blockdev --setra 作为瞬态设置。 我们建议预读值为 128KiB。 在 Linux 上使用适度的预读值 (readahead) 来避免页面缓存抖动 搜索可能会导致大量随机读取 I/O。 当底层块设备具有较高的预读值时可能会执行大量不必要的读取 I/O特别是当使用内存映射访问文件时请参阅存储类型。 大多数 Linux 发行版对单个普通设备使用 128KiB 的合理预读值但是当使用软件 raid、LVM 或 dm-crypt 时生成的块设备支持 Elasticsearch path.data最终可能会具有非常大的预读值在 几个 MiB 的范围。 这通常会导致严重的页面文件系统缓存抖动从而对搜索或更新性能产生不利影响。 你可以使用 lsblk -o NAME,RA,MOUNTPOINT,TYPE,SIZE 检查当前值以 KiB 为单位。 有关如何更改此值的信息请参阅发行版的文档例如使用 udev 规则在重新启动后保持不变或通过 blockdev --setra 作为瞬态设置。 我们建议预读值为 128KiB。 警告blockdev 期望值以 512 字节扇区为单位而 lsblk 报告值以 KiB 为单位。 例如要将 /dev/nvme0n1 的预读临时设置为 128KiB请指定 blockdev --setra 256 /dev/nvme0n1。

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

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

相关文章

淄博网站建设优化公司长沙关键词自然排名

友情链接:geweapi.com 点击访问即可。 管理员操作 小提示: 添加、删除、转让多个wxid时仅限于添加/删除管理员,1添加 2删除 3转让 请求URL: http://域名地址/api/group/admin 请求方式: POST 请求头&#xff1a…

蒙特网站建设公司在选择网站时应考虑什么问题

蛋白表达是生物学研究中一项关键技术,为科学家们揭示生物体内复杂生命过程提供了有力工具。从蛋白质合成到功能发挥,蛋白表达是理解细胞活动和药物研发的核心步骤。 蛋白表达是指基因信息通过生物体内的转录和翻译过程,最终转化为功能性蛋白质…

潢川网站建设关键词排名零芯互联排名

回文链表 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 题解一: 要判断一个单链表是否为回文链表,可以使用双指针和逆序链表的方法。具体步骤如下&…

网站建设dw实训总结付费 视频 网站 怎么做

牛客题霸 [ 判断一棵二叉树是否为搜索二叉树和完全二叉树] C题解/答案 题解: 搜索二叉树满足以下性质: 1.非空左子树的所以键值小于其根节点的键值 2.非空右子树的所有键值大于其根节点的键值 3.左,右子树都是二叉搜索树 完全二叉树&#x…

《网站开发实训》实验报告苏州做物流网站电话

1. 路径参数接收 路径传递参数是一种在 URL 路径中传递参数的方式。在 RESTful 的 Web 应用程序中,经常使用路径传递参数来表示资源的唯一标识符或更复杂的表示方式。而 Spring MVC 框架提供了 PathVariable 注解来处理路径传递参数。 PathVariable 注解允许将 UR…

网站一定要备案吗wex5 wordpress

在 Vue 3 中,onUnmounted 是一个生命周期钩子,它会在组件实例被卸载(unmounted)和销毁之前被调用。这个钩子特别有用,因为它允许你在组件卸载时执行一些清理工作,比如取消定时器、移除事件监听器、清理手动…

中山网站的建设免费制作永久企业网站

文章目录: 一:效果演示 二:实现思路 三:代码实现 form1 效果图 代码 form2 效果图 代码 form3 效果图 代码 一:效果演示 效果图◕‿◕✌✌✌ 代码下载 二:实现思路 窗口1:龟兔赛…

要建立网站是否要先做网页设计_然后把网页设计与数据库连接起来?网站建设完成外网无法访问

转载自 Nacos Spring 快速开始 本文主要面向 Spring 的使用者,通过两个示例来介绍如何使用 Nacos 来实现分布式环境下的配置管理和服务发现。 关于 Nacos Spring 的详细文档请参看:nacos-spring-project。 通过 Nacos server 和 Nacos Spring 配置管…

数字化平台建设seo sem论坛

随着大模型的爆火,投入到生产环境的模型参数量规模也变得越来越大(从数十亿参数到千亿参数规模),从而导致大模型的推理成本急剧增加。因此,市面上也出现了很多的推理框架,用于降低模型推理延迟以及提升模型…

专业建站团队百度企业官网

大家好,我是若川。github1s大部分人知道了,但还是有一部分不知道。我在掘金发过沸点和知乎发过想法还是有挺多人不知道,所以再发公众号推荐下。点击下方卡片关注我、加个星标。学习源码整体架构系列、年度总结、JS基础系列近日,一…

网站标题图片怎么做wordpress全屏博客

千帆大模型概述 一站式企业级大模型平台,提供先进的生成式AI生产及应用全流程开发工具链。直接调用ERNIE-Bot 4.0及其他主流大模型,并提供可视化开发工具链,支持数据闭环管理、专属大模型定制、大模型训练调优、插件编排等功能。 千帆大模型…

新乡网站建设服务黄冈网站优化公司哪家好

恭喜你,找到宝藏博主了,这里会分享shell的学习整过程。 shell 对于运维来说是必备技能之一,它可以提高很多运维重复工作,提高效率。 shell的专栏,我会详细地讲解shell的基础和使用,以及一些比较常用的she…

wordpress图标代码wordpress速度优化简书

文章目录 openssl3.2 - 帮助文档的整理概述笔记整理后, 非空的文件夹如下整理后, 留下的有点用的文件列表如下备注END openssl3.2 - 帮助文档的整理 概述 openssl3.2源码工程编译安装完, 对于库的使用者, 有用的文档, 远不止安装的那些html. 用everything查找, 配合手工删除,…

qq音乐怎么做mp3下载网站wordpress 文件类型

1 介绍 QT的文件操作来源于其抽象基类QIODevice,中用于处理输入输出设备。提供了统一的接口来处理不同类型的数据源,如文件、套接字、缓冲区等。QIODevice 主要用于读取和写入数据,无论数据来自何种源头,都可以通过 QIODevice 统一…

php做网站页面网站下载app连接怎么做的

制作与导出 Linux 镜像 https://cloud.tencent.com/document/product/213/17814 制作与导出 Windows 镜像 ​​​​​​https://cloud.tencent.com/document/product/213/17815 云服务器 导出镜像-操作指南-文档中心-腾讯云 (tencent.com) 轻量应用服务器 管理共享镜像-操作指…

公司淘宝网站怎么建设的更加好腾讯云建站流程

引言 今天带来论文A COMPARE-AGGREGATE MODEL FOR MATCHING TEXT SEQUENCES的阅读笔记。 很多NLP任务,包括阅读理解、文本蕴含和问答任务,都需要在序列之间进行比较。匹配序列间重要的单位是这些解决这些任务的关键。本篇工作提出了一个通用的比较聚合(compare-aggragate)框…

网站开发api中文手册chm漳州手机网站建设公司哪家好

文章目录 1、原因2、思路3、解决方法3.1、使用alignTicks解决3.2、结合min和max属性去配置interval属性1、首先固定两边的分隔的段数。2、结合min和max属性去配置interval。 1、原因 刻度在显示时,分割段数不一样,导致左右的刻度线不一致,不…

思勤传媒网站建设公司商务网络设计实验报告

再救你一次,不要让欲望击溃你的意志 0.红队攻防 1.红队实战 红队攻防之特殊场景上线cs和msf CVE-2021-42287&CVE-2021-42278 域内提权 红队攻防之Goby反杀 红队攻防实战之钉钉RCE 红队攻防实战之从边界突破到漫游内网(无cs和msf) 红队攻防实战系列一之C…

吉林省建设厅门户网站又拍云 cdn WordPress

视频监控平台与AI技术的结合为安防领域带来了革命性的进步。通过引入AI技术,视频监控平台可以实现对监控视频内容的智能分析、识别和理解,从而提高监控效率和准确性,为城市安全和管理提供有力支持。 首先,视频监控平台可以利用AI…

徐州建设网站小迪网站建设

功能介绍 以STM32单片机单片机作为主控系统;OLED液晶显示当前环境温湿度,光照强度,时间,开关状态等信息;雨滴传感器检测当前环境是否下雨,天气下雨检测,天气潮湿时自动收衣服;可以通…