ByteHouse高性能向量检索实践——“以图搜图”
更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群
ByteHouse向量检索能力
- 既有局限分析
- 优化整体架构

向量检索能力落地以图搜图场景
优化一:计算下推优化
- 首先,对每个 Part 进行 Vector Search,相当于将一个算子拆分成三个算子,先做Vector Search。
- 然后,对 Vector Search 的结果进行全局排序,此时不读取标量信息列。
- 最后,在全局排序的结果上,执行Read Task,得到最终结果。

优化二:过滤操作优化
- 基于标量主键范围查找
- 加速标量列剪枝
- 存储层过滤
优化三:向量数据冷读问题优化
- 使用索引需要index结构全载入内存
- Cache Preload & Auto GC
优化四:索引构建资源限制
- 向量数据库workload特征
- 并发限制
- 内存优化
使用 PQ、SQ 压缩,将向量的存储空间降低到原来的 1/4 或 1/3。例如,在精度要求不太高的情况下,将 float32 类型的数据压缩为 INT8 类型,从而将 4 字节的数据压缩为 1 字节,减少存储空间。
在训练过程中,需要支持增量训练。对于IVF系列,在构建索引时,不需要常驻内存,可以将其落盘。
不仅仅向量检索引擎,ByteHouse具备全场景引擎能力
ByteHouse高性能向量检索实践——“以图搜图”的更多相关文章
- Google 以图搜图 - 相似图片搜索原理 - Java实现
前阵子在阮一峰的博客上看到了这篇<相似图片搜索原理>博客,就有一种冲动要将这些原理实现出来了. Google "相似图片搜索":你可以用一张图片,搜索互联网上所有与它相 ...
- 以图搜图(一):Python实现dHash算法(转)
近期研究了一下以图搜图这个炫酷的东西.百度和谷歌都有提供以图搜图的功能,有兴趣可以找一下.当然,不是很深入.深入的话,得运用到深度学习这货.Python深度学习当然不在话下. 这个功能最核心的东西就是 ...
- Google 以图搜图 - 相似图片搜索原理 - Java实现 (转)
前阵子在阮一峰的博客上看到了这篇<相似图片搜索原理>博客,就有一种冲动要将这些原理实现出来了. Google "相似图片搜索":你可以用一张图片,搜索互联网上所有与它相 ...
- 以图搜图之模型篇: 基于 InceptionV3 的模型 finetune
在以图搜图的过程中,需要以来模型提取特征,通过特征之间的欧式距离来找到相似的图形. 本次我们主要讲诉以图搜图模型创建的方法. 图片预处理方法,看这里:https://keras.io/zh/prepr ...
- 使用 selenium 实现谷歌以图搜图爬虫
使用selenium实现谷歌以图搜图 实现思路 原理非常简单,就是利用selenium去操作浏览器,获取到想要的链接,然后进行图片的下载,和一般的爬虫无异. 用到的技术:multiprocessing ...
- [No000007]搜索引擎以图搜图的原理
之前,Google把"相似图片搜索"正式放上了首页. 你可以用一张图片,搜索互联网上所有与它相似的图片.点击搜索框中照相机的图标. 一个对话框会出现. 你输入网片的网址,或者直接上 ...
- 以图搜图功能实现(windows10版)
1,原理 存储:通过Core项目调取python接口,python通过使用towhee把图片转成向量存在milvus向量数据库中. 查询:通过Core项目调取python接口,python根据查询的图 ...
- 以图搜图(demo创建流程)
window10添加向量数据库以及调用 创建docker 1,在windows功能中打开Hyper-V 和 容器 2,进入https://www.docker.com/ ,下载windows版本进行安 ...
- php 以图搜图
感知哈希算法count < =5 匹配最相似count > 10 两张不同的图片var_dump(ImageHash::run('1.jpg’, '2.jpg’)); <?php c ...
- 谷歌百度以图搜图 "感知哈希算法" C#简单实现
/// <summary> /// 感知哈希算法 /// </summary> public class ImageComparer { /// <summary> ...
随机推荐
- 多项分布模拟及 Seaborn 可视化教程
多项分布 简介 多项分布是二项分布的推广,它描述了在 n 次独立试验中,k 种不同事件分别出现次数的离散概率分布.与二项分布只能有两种结果(例如成功/失败)不同,多项分布可以有 k 种(k ≥ 2)及 ...
- Kafka--Rebalance重平衡
Rebalance总览 Rebalance触发条件 (1)消费组成员发生变更,有新消费者加入或者离开,或者有消费者崩溃 (2)消费者组订阅的主题数量发生变更 (3)消费组订阅主题的分区数发生变更 避免 ...
- 2024-06-08:用go语言,给定三个正整数 n、x和y, 表示城市中的房屋数量以及编号为x和y的两个特殊房屋。 在这座城市中,房屋通过街道相连。对于每个编号i(1 <= i < n), 存在一条
2024-06-08:用go语言,给定三个正整数 n.x和y, 表示城市中的房屋数量以及编号为x和y的两个特殊房屋. 在这座城市中,房屋通过街道相连.对于每个编号i(1 <= i < n) ...
- SpringBoot系列(五) 接口校验(非空、非法字符/特殊字符、长度等)
1.引入pom依赖 <dependency> <groupId>javax.validation</groupId> <artifactId>valid ...
- Vue学习:17.组件通信案例-记事本
通过上一节的学习,我们了解并掌握了组件通信的定义及一般使用.那么接下来,我们将之前练习过的案例使用组件化思想来实现一下吧. 实例:记事本(组件化) 实现功能 运用组件化思想,实现Vue学习:3.V标签 ...
- vue动态页签
效果图 前端 1 <template> 2 <!-- 总体情况 - 总览echarts --> 3 4 <div v-loading="loading" ...
- 搭建springboot redis项目
1.创建项目 如果出现init失败(需要等待网络可以正常连接) 或者运行主类的时候报错(错误: 找不到或无法加载主类),需要重新导入maven项目再重新编译试试. 2.引入pom jar <?x ...
- ecnuoj 5039 摇钱树
5039. 摇钱树 题目链接:5039. 摇钱树 感觉在赛中的时候,完全没有考虑分数规划这种做法.同时也没有想到怎么拆这两个交和并的式子.有点难受-- 当出现分数使其尽量大或者小,并且如果修改其中直接 ...
- 关于tomcat中servlet的url-pattern匹配规则
首先需要明确几点容易混淆的规则: servlet容器中的匹配规则既不是简单的通配,也不是正则表达式,而是特定的规则.所以不要用通配符或者正则表达式的匹配规则来看待servlet的url-pattern ...
- 执行insmod提示 invalid module format
内核版本和驱动版本不匹配: 1.假如内核版本是2018.3,驱动使用了另外一个版本,可能会出现这样的问题 2.内核和驱动版本一致,但内核进行了一些配置,导致驱动装不上,此时应该: make clean ...