跳转至

二十九:向量索引自测题

来源:http://mp.weixin.qq.com/s?__biz=MzYyNTk3Njg1NA==&mid=2247484338&idx=1&sn=7be72796d2a6e56f995dd72555fb8b99&chksm=f01eb0cbc76939ddf79c8fb7730ed498d5cd1c1c37f0d5e1ad070210825b2803e2ddd374b991#rd

A. 向量检索基础

  • 什么是向量检索?它在 RAG 中承担什么作用?

  • 最近邻搜索和 top-k 向量检索的目标是什么?

  • 精确搜索和 ANN 搜索有什么区别?

  • 为什么大规模向量库不能总是使用暴力搜索?

  • Flat 索引的优点和缺点是什么?

  • Flat 索引为什么常用于 ANN 评估基线?

  • L2 distance、inner product、cosine similarity 分别如何定义?

  • 为什么向量归一化后 cosine similarity 和 inner product 排序可能等价?

  • 选择相似度指标时为什么必须匹配 embedding 模型?

  • 向量维度对检索延迟、内存和效果有什么影响?

B. ANN 权衡与评估

  • ANN 中 recall、latency、memory、build time 分别代表什么?

  • 为什么 ANN 是用召回率损失换速度?

  • Recall@k 如何计算?

  • 为什么 RAG 场景通常更重视 Recall@k?

  • QPS、平均延迟、P95/P99 延迟分别反映什么?

  • 为什么只看平均延迟不够?

  • 如何用 Flat ground truth 评估 ANN 索引?

  • 如果 ANN Recall@10 很高,但 RAG 答案仍不好,可能是什么原因?

  • metadata filter 会如何影响向量检索评估?

  • 向量索引评估为什么要使用真实业务 query?

C. IVF 与 IVF_FLAT

  • IVF 的基本思想是什么?

  • IVF 离线构建阶段做了什么?

  • IVF 查询阶段做了什么?

  • IVF 中 inverted list 存储什么?

  • IVF_FLAT 中的 FLAT 表示什么?

  • IVF_FLAT 相比 Flat 为什么更快?

  • IVF_FLAT 相比 IVF_PQ 通常有什么精度和内存差异?

  • IVF_FLAT 的 nlist 参数是什么?

  • nlist 太大或太小分别会带来什么问题?

  • IVF_FLAT 的 nprobe 参数是什么?

  • nprobe 增大对 recall 和 latency 分别有什么影响?

  • 如果 nprobe = nlist,会发生什么?

  • IVF_FLAT 为什么需要训练聚类中心?

  • 训练 IVF 聚类中心时,训练样本应该满足什么条件?

  • 数据分布变化为什么会影响 IVF 索引质量?

  • IVF 中 list 分布不均会造成什么问题?

  • 如何调参 IVF_FLAT 以满足 RAG 召回要求?

  • IVF_FLAT 适合哪些场景?不适合哪些场景?

D. HNSW

  • HNSW 的核心思想是什么?

  • HNSW 为什么使用分层图结构?

  • HNSW 查询过程大致是什么?

  • HNSW 中 M 参数控制什么?

  • M 增大对 recall、内存和构建时间有什么影响?

  • efConstruction 控制什么?

  • efConstruction 增大有什么收益和代价?

  • efSearch 控制什么?

  • efSearch 增大对 recall 和 latency 有什么影响?

  • HNSW 为什么通常 recall 高、查询快?

  • HNSW 的主要内存开销来自哪里?

  • HNSW 适合哪些场景?不适合哪些场景?

  • HNSW 的插入、删除、更新有什么工程注意点?

  • HNSW 和 IVF_FLAT 在索引构建、查询、内存、参数上的区别是什么?

E. 生产化、过滤与 RAG 应用

  • RAG 中为什么经常需要 metadata filter?

  • 先过滤后向量检索和先向量检索后过滤分别有什么优缺点?

  • 多租户/权限场景下,向量索引应该如何设计?

  • 为什么权限过滤不能只依赖 prompt?

  • embedding 模型升级为什么通常需要重建索引?

  • 文档更新、删除和增量插入对向量索引有什么挑战?

  • 什么是双索引切换?它适合什么场景?

  • 什么情况下需要向量量化或 PQ?

  • 向量数据库和 FAISS 这类本地库有什么差异?

  • 如何为小规模知识库选择索引?

  • 如何为千万级向量、低延迟检索选择索引?

  • 如果业务需要强关键词匹配,向量索引应该如何配合 BM25?

  • 如果检索召回差,你会从哪些索引参数排查?

  • 如果检索延迟高,你会如何排查?

  • 如果索引内存占用过高,你会如何优化?

  • 请设计一个 RAG 向量索引评估实验。

  • 请比较 Flat、IVF_FLAT、HNSW、IVF_PQ 的优缺点和适用场景。

  • 请完整说明 IVF_FLAT 和 HNSW 的原理、关键参数、调参方式和 RAG 应用取舍。

            预览时标签不可点
    

    <div class="