尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
套娃向量两级检索:全维重排救不回候选集之外的文档
把 3072 维截成 256 维第一轮只取 100 个候选再加载全维重排这条链路很容易讲清也很容易被误解成“既省内存又绝对无损”。关键限制是全维重排只看得到第一轮留下来的文档。Matryoshka Representation Learning 让表示在训练时适配不同粒度。它不是说任意一个向量模型随便截掉后半段都保留同样的语义。MRL 原论文 的研究结果有自己的模型与任务条件不宜直接替换成私有知识库的性能表。两份成本账不能只记低维索引低维索引常驻内存全维向量放在磁盘或另一层存储这样才有机会减少内存驻留。若实现里仍把全库完整向量存在 Python 字典中就没有演示存储分层。磁盘点读还会引入 I/O、缓存与并发控制成本不是“全维点积很短所以端到端免费”。评测时保留三份结果全维精确搜索作为参考、低维候选池、候选池内全维重排。第一份与第三份的差异可以帮助区分候选遗漏和重排计算的问题。再单独比较 ANN 与低维精确搜索避免把近似索引误差也归因于维度截断。一个只有两份文档的反例A 与 B 在第一维相同低维排序只能按稳定规则打破平局。如果候选池只有一个名额可能恰好留下 A完整向量明明能认出 B却没有机会看到它。例子的数字是手工构造目的是证明限制存在不是衡量发生频率。内图的全维存储与低维驻留是两层部署概念本地代码为了展示排序反例使用小字典不能据此声称已经节省真实内存。import math def unit(v): norm math.sqrt(sum(x*x for x in v)) if norm 0: raise ValueError(zero vector) return [x/norm for x in v] def dot(a, b): if len(a) ! len(b): raise ValueError(dimension mismatch) return sum(x*y for x, y in zip(a, b)) vectors {A: [0.8, 0.6], B: [0.8, -0.6]} query [0.8, -0.6] def cascade(candidate_k): if not 1 candidate_k len(vectors): raise ValueError(invalid candidate depth) q_low unit(query[:1]) candidates sorted(vectors, keylambda d: ( -dot(unit(vectors[d][:1]), q_low), d))[:candidate_k] return sorted(candidates, keylambda d: (-dot(unit(vectors[d]), unit(query)), d)) assert cascade(1) [A] assert cascade(2)[0] B assert dot(unit(vectors[B]), unit(query)) dot(unit(vectors[A]), unit(query)) print(candidate_k1 misses B; candidate_k2 reranks B first)例子跑通以后还要验证什么这段代码已在本地 macOS、CPython 3.9.6 下运行实际输出为candidate_k1 misses B; candidate_k2 reranks B first。它验证的是例子中的数据约束与分支不包含线上服务的吞吐或延迟测量。没有使用经过 MRL 训练的模型、真实磁盘向量存储或 ANN。上线方案要记录模型支持的维度、截断后归一化方式、候选保真率、全维读取字节数和冷缓存尾延迟。若目标只是减少向量字段体积也不能把索引拓扑和服务进程的所有内存等比例减掉。延伸阅读Matryoshka Representation Learning2022 年提出的表示学习方法本文未复现论文训练。Universal I/O in Qdrant2026 年 10 月 12 日对本地与远程读取成本差异的工程说明不引用其延迟为本文测量。
RELATED

相关推荐

分布外泛化(OOD)综述:从表示、模型到优化的方法体系与评估避坑

分布外泛化(OOD)综述:从表示、模型到优化的方法体系与评估避坑

简介:这份资源是清华大学崔鹏团队等撰写的《Towards Out-Of-Distribution Generalization: A Survey》综述论文PDF,面向深度学习研究者、算法工程师及关注模型鲁棒性的高年级学生,系统回应现实场景中训练与测试分布不一致、i.i.d.假设难以成立…

📅 2026/10/25 16:01:31
DeepSeek-R1 实战指南:从文件解析到LoRA微调的工程化落地

DeepSeek-R1 实战指南:从文件解析到LoRA微调的工程化落地

简介:本资源是一份面向AI开发者与大模型实践者的《DeepSeek应用手册》,聚焦深度学习微调、自然语言处理及多模态模型落地,系统解决模型选型、协同推理、私有数据集成与本地化部署等核心问题。手册涵盖多模型协同工作流(R1深度分析…

📅 2026/10/25 16:01:31
BP神经网络在路面裂缝识别中的精筛应用

BP神经网络在路面裂缝识别中的精筛应用

简介:本资源是一篇聚焦工程实践与算法落地的学术论文,面向交通工程、智能检测及人工智能应用方向的高校师生、科研人员与道路养护技术人员,旨在解决沥青路面图像噪声强、传统边缘检测易误判裂缝等实际识别难题。论文提出基于BP神经网络的裂缝…

📅 2026/10/25 16:01:31
MORE NEWS

更多资讯

📰

1024 再看 Spring AI:先读懂 2.0 文档与 2.1 M1 的版本边界

接入模型之前,有个很普通的问题值得先问:这段示例到底属于哪一版?文档能打开、依赖能下载、项目能启动,是三件不同的事。把它们混在一起,后面遇到消息丢失或工具调用差异,很容易误判成模型不稳定。 这篇写…

📰

从精确缓存到语义缓存:变化的是命中契约,不是替代关系

“同义句能复用答案”听起来简单,落到业务里却要回答另一个问题:这两个人,在这个时刻,真的应该拿到同一份答案吗? 精确缓存和语义缓存可以共存。前者用业务定义的Key命中,Key完全可以包含租户、版本和规范…

📰

封网前锁配置,不等于关掉熔断:Go 配置快照怎样安全生效

封网前把配置锁住,是为了减少无法追踪的变更,不是把保护机制焊死。一个固定路由表和一个运行时拒绝开关,解决的是两件事:前者回答本次请求按哪份规则走,后者回答此刻是否还应继续接单。 请求只看一份完整配置 最容易…

📰

MCP 工具目录变了,Agent 的权限为什么不能跟着自动变?

Agent 能看见一个工具,不代表它有权调用。目录刷新把 query_order 换成了带退款参数的新 Schema,如果授权仍只比较工具名,原先的只读许可就可能被悄悄扩大。小团队省掉的那次复核,会变成执行时没人说得清的权限。 先固定审核对象…

📰

长任务还活着吗:用进展租约区分卡住与依赖变慢

一个任务每秒上报心跳,十分钟没完成任何步骤。另一个任务正在等待供应商生成视频,三分钟没有新输出,却仍在预期时长内。只凭“几秒没动静就重启”,会把这两种情况混在一起。 活着、前进、拥有写权限 我会分别记三件事&#xff1…

📰

OpenMontage:开源AI视频生成与智能剪辑一体化框架解析

开篇先聊一个现象:最近半年我试了不少AI视频工具,单看生成能力,一个比一个惊艳,真到要拼成一条完整片子时,全都拉胯。生成几十段互不相干的镜头,然后让你自己在时间线上一段段对节奏,这活儿本质…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬