<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>RAG on Intellectual Guides</title><link>https://ckw19810413.github.io/zh-cn/tags/rag/</link><description>Recent content in RAG on Intellectual Guides</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><lastBuildDate>Tue, 18 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://ckw19810413.github.io/zh-cn/tags/rag/index.xml" rel="self" type="application/rss+xml"/><item><title>每日研究生概念寓言故事：分层可导航小世界 (HNSW)</title><link>https://ckw19810413.github.io/zh-cn/blog/obsidian-cellar-hnsw/</link><pubDate>Tue, 18 Aug 2026 00:00:00 +0000</pubDate><guid>https://ckw19810413.github.io/zh-cn/blog/obsidian-cellar-hnsw/</guid><description>&lt;p&gt;晚上好！为您送上今天的「每日研究生概念寓言故事」。&lt;/p&gt;
&lt;h2 id="黑曜石地窖与引路蜘蛛"&gt;黑曜石地窖与引路蜘蛛
&lt;/h2&gt;&lt;p&gt;在知识大陆的深处，有一座被称为「黑曜石地窖」的巨大地下图书馆。这里不存放纸本书籍，而是漂浮着数以千万计、散发着微光的「概念石」。每一颗石头都封印着一段文本或一个想法。&lt;/p&gt;
&lt;p&gt;地窖的规则很奇特：意义越相近的概念石，它们在空间中的距离就越靠近。&lt;/p&gt;
&lt;p&gt;学士们每天都会带着一颗「未知的石头」来到地窖，试图找出地窖中与这颗石头最相似的几颗石头。&lt;/p&gt;
&lt;p&gt;一开始，学士们使用「地毯式搜索」。他们拿着未知的石头，走到第一颗概念石前比对，再走到第二颗、第三颗……当石头数量达到千万级别时，找一颗石头需要花上大半辈子，许多学士因此累死在地窖中。&lt;/p&gt;
&lt;p&gt;后来，一位聪明的工匠发明了「牵线法」。他用蜘蛛丝把距离相近的石头绑在一起，形成一个巨大的立体蜘蛛网。&lt;/p&gt;
&lt;p&gt;现在，学士只要随便挑一颗石头作为起点，看看它周围被蜘蛛丝连着的邻居，挑一个与目标最接近的走过去；然后再看新邻居，再走过去。就像顺藤摸瓜一样，直到周围再也没有更近的石头为止。&lt;/p&gt;
&lt;p&gt;这个方法快多了！但它有两个致命缺点：
第一，如果一开始挑的起点离目标太远，学士要在网子上爬很久很久；
第二，有时候学士会走进一个「死胡同」，周围的石头看起来都是最接近的，但真正的完美解答其实藏在网子的另一端，只是这中间没有蜘蛛丝相连。&lt;/p&gt;
&lt;p&gt;就在地窖即将瘫痪之际，一位盲眼建筑师带来了一群具有魔力的「引路蜘蛛」。盲眼建筑师没有改变最底层的千万颗石头，但他让引路蜘蛛在原始地窖的上方，往上盖了好几层「悬空网」。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;最顶层（云端层）：&lt;/strong&gt; 蜘蛛们只挑选了地窖中极少数（大约万分之一）的石头作为「洲际地标」，把它们拉到最顶层，并用极长的蜘蛛丝相连。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间层（城市层）：&lt;/strong&gt; 往下走一层，蜘蛛挑选了百分之一的石头作为「城市地标」相连。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;最底层（地面层）：&lt;/strong&gt; 维持原本千万颗石头全部相连的稠密网络。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;现在，当学士带着未知石头来寻找时，寻宝过程变得无比优雅：&lt;/p&gt;
&lt;p&gt;他直接搭乘电梯来到最顶层。这里只有寥寥几颗「洲际地标」，他一眼就能看出哪一颗地标离他的目标最近。他跨出巨大的一步，走到那颗地标上。&lt;/p&gt;
&lt;p&gt;接着，他从地标的活板门往下一层跳，来到「城市层」。这里石头变多了，但他不需要从头找，因为他已经降落在正确的洲际区域。他沿着城市层的蜘蛛丝，走几步找到最接近的城市地标。&lt;/p&gt;
&lt;p&gt;最后，他一路降落到最底层。此时，他已经精准地站在目标石头的家门口。他只需要在稠密的地面层走上两三步，就能找到最完美的那颗概念石。&lt;/p&gt;
&lt;p&gt;盲眼建筑师的立体蜘蛛网，让原本需要核对一千万次的搜索，变成了只需要在不同楼层轻跳几十步的完美旅程。&lt;/p&gt;
&lt;h2 id="概念揭晓分层可导航小世界-hnsw"&gt;概念揭晓：分层可导航小世界 (HNSW)
&lt;/h2&gt;&lt;p&gt;这个故事所讲述的，是现代人工智能、向量数据库 (Vector Database) 与大模型检索增强生成 (RAG) 领域中，极为核心且高效的研究生水平算法：&lt;strong&gt;分层可导航小世界 (Hierarchical Navigable Small World, 简称 HNSW)&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;当我们在本地端构建庞大的知识库，并将文本转化为高维度的向量（例如使用 nomic-embed-text 生成的 Embedding）时，如何在一大堆高维向量中，极速找到与用户提问最相似的段落，是一个巨大的挑战。&lt;/p&gt;
&lt;p&gt;传统的 K-Nearest Neighbors (KNN) 需要计算每一个向量的距离，时间复杂度是 $O(N)$，这在处理百万级数据时是无法接受的。而 HNSW 通过构建多层次的图论结构，巧妙地结合了「跳表 (Skip List)」的思想与「小世界网络 (Small World Network)」的特性。&lt;/p&gt;
&lt;p&gt;它让算法在搜索初期能够进行大跨度的「粗略定位」，并在搜索后期进行小范围的「精细微调」，成功将高维度向量搜索的时间复杂度大幅压缩至接近 $O(\log N)$。&lt;/p&gt;
&lt;h2 id="故事中的隐喻对应"&gt;故事中的隐喻对应
&lt;/h2&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;故事中的元素&lt;/th&gt;
&lt;th&gt;算法与系统概念&lt;/th&gt;
&lt;th&gt;解释&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;黑曜石地窖与概念石&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;向量数据库与文本嵌入 (Vector DB &amp;amp; Text Embeddings)&lt;/td&gt;
&lt;td&gt;将知识、文件或笔记转化为空间中的坐标点。意义越相近的文本，在多维空间中的距离越短。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;地毯式搜索&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;暴力搜索 (Brute-force Search / Exact KNN)&lt;/td&gt;
&lt;td&gt;逐一计算查询向量与数据库中所有向量的距离（例如 Cosine Similarity），极度耗时。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;平面的牵线法&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;可导航小世界图 (Navigable Small World, NSW)&lt;/td&gt;
&lt;td&gt;只在单一平面上将相邻的节点连起。容易陷入局部最优解（死胡同），且起点距离目标太远时效率低。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;悬空网的楼层 (云端、城市、地面)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;HNSW 的分层图结构 (Hierarchical Layers)&lt;/td&gt;
&lt;td&gt;HNSW 算法的核心。第 0 层包含所有节点，越往上层节点数越少，呈现指数级递减。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;顶层的洲际地标&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;高层的进入点 (Entry Points in Top Layers)&lt;/td&gt;
&lt;td&gt;在最稀疏的图层中，提供长距离的跨越能力，确保算法能快速逼近目标所在的全局区域。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;逐层降落并寻找&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;贪婪搜索与降层 (Greedy Search Routing)&lt;/td&gt;
&lt;td&gt;算法从最高层开始，在该层找到最近节点后，将该节点作为下一层的起点向下传递，直到抵达第 0 层并找到最终的最近邻 (Nearest Neighbors)。&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description></item></channel></rss>