B+树与HNSW——数据库索引与向量检索的两座丰碑
一、两类检索,两套解法做后端的同学应该都有体会:检索这件事,本质上分两种。 第一种是精确检索——"查 id = 10086 的记录"、"查工资在 1万~2万之间的员工"。结果必须一个不多、一个不少,错了就是事故。 第二种是近似检索——"找和这段文字意思最像的文档"、"找长得最像的这张脸"。结果只要**"差不多"就行**,漏掉一两个冷门候选完全可以接受,但速度必须快到毫秒级。 这两种需求,各自催生了各自的事实标准: 精确检索 → B+ 树(MySQL InnoDB、PostgreSQL、SQLite 的默认索引结构) 近似检索 → HNSW(Milvus、Weaviate、Qdrant、FAISS 的主流索引结构) 它们名字里都带个"树"或"图",但设计哲学天差地别。这篇把它们放一起掰开揉碎地对比——搞清楚它们各自解决什么问题、为什么长成这样、什么时候该用哪个。 二、B+ 树:为磁盘而生的"多路平衡树"2.1 ...
AI 新闻速递|2026-08-10:Cursor 并入 SpaceX、Claude Code 自动模式上线、具身智能融资潮
今天的信息量有点大。AI 编程工具的格局在变天,具身智能的钱在猛灌。挑了几条值得停下来看一眼的,每条都附上为什么值得关注。 1. SpaceX 收购 Cursor 最快本周末完成,新产品或启用 Grok 品牌事件:据外媒报道,SpaceX 对 AI 编程工具公司 Cursor 的 600 亿美元收购交易最快本周末完成,最晚本月底前收尾。交易完成后 Cursor 品牌可能在未来几个月逐步退出,即将推出的通用型智能代理产品或被命名为 Grok Bot。现有工具短期内不会更名,交易仍需监管批准。 为什么值得关注:这是 AI coding 领域迄今体量最大的并购之一,意义不只是"换了个东家"——它意味着 Cursor 从一个独立工具厂商,变成马斯克生态里 Grok 体系的一员。通用智能代理(Agent)正在取代"编辑器"成为 AI 编程的核心形态,而 Grok Bot 这类产品瞄准的正是"一句话跑完整个任务"的终极形态。加上 xAI 的算力与数据,Cursor 的下一步很可能重新定义编程助手的竞争规则。 2. Anthro...
织锦坊的绣花娘
一、一块传了三代的锦,和一千个新花样织锦坊是城里有名的老字号,坊里有一块传了三代的镇坊之宝——百鸟朝凤锦。 这块锦三尺见方,上绣九十九只鸟、一只凤凰,针法千变万化,是三代绣娘的心血。坊里的规矩:新来的绣娘,头一件事就是学绣这块锦——针法、配色、走线,一丝一毫都不能改。 "这是咱们的根。"老掌柜沈娘常说,"百鸟朝凤锦学会了,天下锦缎,没有绣不来的。" 可这两年,坊里遇上了难题。 城里的贵人们口味变了——今儿要绣"竹报平安",明儿要绣"鲤跃龙门",后儿又要绣"连年有余"。都是新花样,坊里没人绣过。 "怎么办?"绣娘小芸问沈娘,"要不……咱把百鸟朝凤锦拆了,重新绣一幅新样式的?" 沈娘吓了一跳:"拆了?!这可是传家宝!再说了——拆了重绣,针法、配色全得重新来,少说也得三年五载,还得搭上三个老师傅。为了一幅新花样,把镇坊之宝毁掉?不值当。" "那……咱从零开始,单独绣一幅新锦?"小芸又问。 "从零开始...
花溪谷的引水人
一、一片果园,和一锄一锄挖出来的渠花溪谷是远近闻名的果园,三千棵果树,靠一条穿谷而过的小溪灌溉。 可今年天旱,溪水断了大半。果农们到处找水,最后在谷北的云台山下,发现了一处暗泉——水量足,足够浇灌整片果园。 "好水!"老果农周伯蹲在泉边,"可这泉在山上,果园在山脚。水要怎么引下来?" "挖渠呗。"年轻果农阿庆说,"从泉眼往下挖一条渠,水顺着渠流到果园,一了百了。" "挖到哪?"周伯问。 阿庆愣了:"挖到果园啊。" "果园那么大,三千棵树,水渠往哪棵树流?"周伯说,"云台山到果园,中间坡有缓有陡,有石头有沙地。你闷头挖一条直线,挖到一半碰上大石头,渠就废了。" 阿庆想了想:"那……先挖一段试试?看看水往哪边流,再顺着水流的方向挖?" "这还差不多。"周伯点头,"可这里头有个讲究——你每挖一段,都得看现在这水往哪边淌。水往东偏一点,你往东修一点;水往西偏一点,你往西修一点。一步...
RoPE旋转位置编码——让大模型"记住"字词顺序的旋转魔法:读《RoFormer》论文有感
一、为什么大模型需要"位置"?作为一名长期写 C++ 和关注大模型的工程师,我最早对**位置编码(Positional Encoding)**产生兴趣,是因为一个看似反直觉的问题: Transformer 本身,是"看不见顺序"的。 自注意力机制(Self-Attention)计算的是两个 token 之间的"相关程度": 1Attention(Q, K, V) = softmax(Q·Kᵀ / √d) · V 注意这个公式——Q·Kᵀ 是点积,衡量的是内容相似度。把"我爱你"和"你爱我"送进 Transformer,如果不加位置信息,模型看到的几乎是一模一样的东西。因为"我"和"你"不管谁在前谁在后,它们的点积都一样。 这就引出了一个大问题:语言是讲究顺序的。"猫追老鼠"和"老鼠追猫"完全是两回事。所以我们必须给每个 token 注入"它是第几个"的信息——这就是位置编码存在...
丰记号的记账先生
一、一场大火,烧掉了丰记号的账丰记号是城里最大的商号,做着南北两路的买卖。店里账目繁多,全记在几十本厚厚的流水账上。 记账先生姓丰,是丰记号的东家兼账房,人称"丰先生"。他记账有个习惯:每天打烊后,把当天的账目,一笔一笔誊进大账本,誊得整整齐齐,分毫不差。 "账在人在,账亡人亡。"丰先生常摸着账本说。 可今年腊月的一个夜里,出事了。 账房隔壁的柴房走了水,火势蔓延,一夜之间烧塌了半个店铺。火扑灭时,账房里那几十本流水账,烧得只剩一捧灰。 丰先生蹲在灰烬前,一夜白了头。 "账……全没了。"他喃喃,"腊月的货款、赊账、往来……全没了。明年开春的生意怎么做?欠账的凭据,一个字都没留下。" 伙计们劝他:"先生,这些账,您都记在心里吧?" "记在心里有什么用?"丰先生惨笑,"我心里记得的,是'大概';账本上的,是'分毫不差'。人家欠我三两五钱,我心里记着'三两多'——可人家要赖,我拿什么作证?" 他瘫坐在...
磨坊镇的分粮官
一、三座磨坊,分十镇的口粮磨坊镇靠着一条河,镇上开了三座磨坊——东磨、西磨、南磨。十里八乡的十个村镇,每年秋收,都把粮食送到磨坊镇磨成米面。 磨坊的规矩是"一镇一磨":每个村镇,固定把粮食送到指定的一座磨坊。 东磨坊磨四镇的口粮,西磨坊磨三镇,南磨坊磨三镇。十镇对三坊,派粮单子贴在镇口,从没乱过。 可今年出了岔子。 东磨坊的磨盘忽然塌了半边,要停工半个月。东磨坊磨着四个镇的口粮——这四镇的粮食,半个月内,送到哪儿去? "送到西磨坊和南磨坊去!"镇上的分粮官马官爷当机立断。 可当他翻开派粮单子一看——麻烦了。 那四个镇的口粮,是按"镇的排序"分给东磨坊的:单子上写着"第一镇、第二镇、第三镇、第四镇的口粮归东磨坊"。现在东磨坊停工,这四个镇要改送西、南两坊——可西磨坊已经背着三镇,南磨坊也背着三镇,再加四镇,两坊立刻要撑爆。 更要命的是——重新派粮,得把十个镇全动一遍。 "要是只动东磨坊那四个镇就好了,"马官爷叹气,"可现在,派粮单子是一整张:镇子的序号换一个,后面全得跟着改...
子午门的夜巡队
一、一道令,两支队伍子午门是皇城的一道门,入夜要查"腰牌"——只有腰牌上刻着规定字样的行人,才准放行。 往年查腰牌,规矩简单:腰牌上刻"内"字的放行,刻别的字,一律拦下。守门的兵丁一伸手就验得出来。 可今年,宫里换了新规矩,腰牌上的字样复杂起来。 新规矩是这么定的:腰牌上必须刻着"甲"、"乙"、"丙"三个字中的任意一个开头,然后后面可以跟"丁"或"戊",再往后,"己"字出现至少一次……老太监念了一长串,末了补一句:"总之,合乎这套规矩的腰牌,才准放行。" 守门的秦把总听得直挠头:"这怎么验?腰牌上的字刻得歪歪扭扭,每块还不一样长。" 老太监冷笑一声,丢给他一张纸:"这是令。能不能守好这道门,看你的本事了。" 秦把总打开纸——纸上画着一副图:一堆圆圈,圈里写着甲乙丙丁戊己,圆圈之间画着箭头,箭头边上标着"见某字走哪条路"。有的圆圈,一瞧见某个字,...
厢房院的腾房婆
一、三十间厢房,住着一百位客人城南有家大客栈,叫"厢房院"。客栈不大——正经厢房只有三十间。 可厢房院的掌柜马婆婆,做的是"大生意":她敢同时接一百位客人。 "三十间房,怎么住一百位客?"新来的伙计阿福头一回听见,下巴都惊掉了。 马婆婆慢悠悠地领阿福去看。客栈的后院,堆着一座巨大的"行李楼"——三层高,上千个格子,每个格子装一位客人带来的大箱子。 "客房只有三十间,"马婆婆说,"可客人的'行李',都锁在行李楼里。谁要住店,我给他开一间厢房;他进了房,我把他的箱子从行李楼搬进来。" "那三十间房住满之后,再来客人怎么办?" "好办。"马婆婆说,"先看看他要什么行李——他箱子里的东西,跟哪位住店的客人最像,就把那位客人的行李'挪回行李楼',把他的箱子搬进房。" 阿福更糊涂了:"行李还能这么换来换去?客人们不闹?" "你听着。"马婆婆说,...
百草堂的抓药人
一、三十万味药,抓一味药要多久?百草堂是京城最大的药铺,铺子里存着三十万味药材,按药名排在三百个药柜里。 药柜是老祖宗传下来的规矩:从左到右、从上到下,按"药名"排得整整齐齐——"麻黄"挨着"麻仁","桂枝"挨着"桂皮"。铺子里的老师傅,闭着眼都能摸到哪味药在哪。 可铺子大了,来了新伙计。 新伙计姓白,脑子灵,就是不认药名。掌柜的让他抓药,他对着药方,得先去翻药名册——一本记着"药名在第几柜第几屉"的厚册子。 第一天,药方上写着"柴胡三钱"。 白伙计翻开药名册,从第一页翻起——"巴豆""白术""白芷"……翻到第一百七十三页,才找到"柴胡":第十七柜,第三屉。 "一百七十三页,"白伙计抹汗,"翻一页药名册,得一眨眼;翻一百七十三页,得半天。" 第二天,药方上写着"附子"。 白伙计又从第一页翻起,翻到第三百一...
读代码前必运行的五个Git命令——快速诊断代码库健康状况
本文灵感来源于文章《The Git Commands I Run Before Reading Any Code》 一、为什么读代码前要先看Git历史作为一个 C++ 工程师,我接手过很多新项目。以前我总是迫不及待地打开代码编辑器,试图从第一行代码开始理解整个系统。但我发现,这种方法效率很低——我常常在代码迷宫中迷失方向,不知道哪里是核心、哪里是坑。 后来我学到了一个重要的技巧:在打开任何代码文件之前,先运行几个 Git 命令,从提交历史中获取代码库的诊断画像。 这就像看医生之前,护士会先测体温、量血压一样。Git 历史能告诉我们: 谁构建了这个系统? 哪里是问题集中的地方? 团队是充满信心地迭代,还是小心翼翼地拆炸弹? 项目是在加速还是在衰退? 二、命令一:谁是代码改动最频繁的文件1git log --format=format: --name-only --since="1 year ago" | sort | uniq -c | sort -nr | head -20 运行结果示例: 12345156 src/core/engine.cpp 8...
万卷楼的寻卷人
一、一百万卷书,找一卷"最像的"万卷楼藏书百万卷,是全城最大的书楼。 楼里的规矩奇怪:它收书不按经史子集分架,而是让每卷书在入楼时,蘸一滴特制的"文墨",在楼门口的一块白玉板上印一个"墨点"——墨点有深有浅,有大有小,有的偏青,有的偏红。 "这墨点是什么?"新来的学徒问。 "是书的魂。"管楼的宋先生答,"一卷书写的是风月,墨点就淡;写的是兵法,墨点就浓;写的是志怪,墨点就泛青;写的是礼乐,墨点就带朱。两卷书要是魂相近,墨点就挨得近;魂不相近,墨点就离得远。" 学徒恍然大悟——原来这白玉板,是一张"魂图"。每卷书的魂,都化成了板上一个点。 可这也带来了天大的麻烦。 今年秋天,宋先生接到一桩苦差:一位贵客拿来一卷残破的手稿,想请万卷楼找出"全楼与它最像的那一卷"——好借去对照补全。手稿没有书名,宋先生只能让它在白玉板上也印一个墨点,然后……在一百万个墨点里,找离它最近的那个。 "这得找到什么时候?"学徒咋舌...
蛛网镇的传话人
一、谁最红?谁最要紧?蛛网镇是个奇特的镇子。镇上的房子沿着蛛网一样的小路连成一整片——每家每户都只有三五条小路通到邻居家,可顺着小路走,全镇哪家都能走到。 镇上有位老镇长,姓韦。他每年都要做一件事:找出全镇"最要紧"的几户人家,好给它们多派些修路的工钱。 "最要紧"怎么算?往年是数"谁家门前过路的人多"。可今年,韦镇长发现这法子不灵了。 东头的陈屠户,门前每天过三百人,可全是去别家捎带的过路人;西头的吴郎中,门前每天只过三十人,可这三十人,是全镇二十几户人家的病人和家属。 "论过路的人,陈屠户比吴郎中多十倍。"韦镇长发愁,"可要说'要紧',吴郎中一家的病要是治不了,全镇的病人都没了着落。" 新来的师爷小李说:"镇长,要不咱们数'谁家被多少人惦记'?" "怎么数?" "挨家挨户问:'你家遇到难事,头一个找谁?'"小李说,"谁被惦记得多,谁就要紧。" 韦镇长觉...
双生阁的对镜师
一、画师不用笔,用"认人"城南有座画阁,唤作"双生阁"。阁里不卖画,专替人"认画"——鉴定一幅画是真是假、是谁的手笔。 阁主是个奇人,人称"无笔先生"。他一生作画,却从不拿笔教徒弟。他收徒只教一件事:认画。 "天下画理,全在一个'认'字上。"无笔先生对徒弟们说,"你认得出张三的画,就画得出张三的魂;你认得出李四的画,就躲得开李四的鬼。会认,才会画。" 可最近,无笔先生遇到了难事。 他想教一群"新手画师"学认画——不是阁里的徒弟,是街坊们凑钱请来的"学徒机器人",一帮连纸笔都不会拿的笨家伙。无笔先生要教它们学会"认出画是谁画的"。 问题在于:这些学徒机器人,连"什么是画"都没见过几幅。要让它们学会认画,得先给它们看几千几万幅画——可双生阁的藏画虽多,也没有几万幅。 更麻烦的是,这些藏画大多是孤本,没标作者,有些连年代都说不清。 "没有标签的画,怎么教它们认?&...
驯马场的鞭与糖
一、一匹烈马,和两个固执的驯马师北地有个驯马场,场里有一匹出了名的烈马,唤作"追风"。 追风性子野,跑得快,可它认人。驯马场前后请过十几位驯马师,没一个能把它驯服。它不让人骑,见人靠近就尥蹶子,嘶鸣起来能震得马厩的瓦片往下掉。 今年,场主下狠心,同时请来了两位驯马师——老把头秦三爷,和年轻后生阿康。 场主说:"谁先把追风驯得能骑,这个月的赏银就是谁的。" 秦三爷是老派的路子。他手里常年提着一条皮鞭,训马的规矩就一条:"马不听话,就打;打了听话,就赏。"他第一天就把追风拴在桩上,抬手一鞭抽在马背上。 追风嘶鸣一声,蹄子刨地。秦三爷再抽一鞭。追风受惊,猛地挣断缰绳,一蹄子把秦三爷撂倒在地,扬长而去。 阿康是个书生气的后生,主张"以德服马"。他拎着一袋子胡萝卜,天天蹲在追风的马厩门口,好声好气地说话。可追风不吃这套——它连看都不看阿康一眼,阿康一靠近,照样尥蹶子。 一个月过去,秦三爷被踢断了一根肋骨,阿康的胡萝卜喂了别的马。追风还是那匹追风。 场主急了:"两位,你们倒是想个法子啊!" 二...
众香坊的共酿师
一、三家香坊,谁也信不过谁城南有三家香坊:周记、沈记、陈记。都是几代人的老字号,做胭脂水粉。 三家的生意各有各的门道。周记的胭脂,是十里八乡出了名的正红;沈记的香粉,冬天不皴脸;陈记的花露,夏天最清爽。三家谁也不服谁,暗地里较了三十年劲。 可今年,三家的掌柜碰到了一件共同的难事。 镇上新来了一位"调香大师"——据说他见过的配方比三家的存货加起来还多。若是哪家能得他指点,做出来的香,保准压过另外两家。三家掌柜都想去请,可大师架子大:他只肯来一次,只肯教一个徒弟,只肯看"全镇的方子"。 "全镇的方子"——意思是要三家把各自的独门配方都交出来,揉在一起,才能教出真正通晓各家之长的香。 三家掌柜一听,全摇头。 "我的胭脂红,靠的是祖传的'苏木三浸',传儿不传女。交出去?"周掌柜冷笑。 "我的粉不皴脸,靠的是那味'沉香头道',磨法是我爹跪在祠堂里教我的。"沈掌柜摆手。 "花露清爽,靠的是露水的时辰。"陈掌柜叹气,"这不是不肯,是不...
string_view——现代C++的零拷贝字符串视图
一、为什么需要string_view作为一个 C++ 工程师,我相信很多人和我一样,写过无数次这样的代码: 12345678void process(const std::string& str) { // 只是读取,不修改 std::cout << str.size() << std::endl;}process("hello");process(std::string("world"));process(std::string_view("test")); 每次调用 process("hello") 时,都会创建一个临时的 std::string 对象,拷贝字符串内容,然后在函数结束时销毁它。这是一种不必要的开销。 同样的问题也存在于从 std::string 中截取子串时: 12std::string s = "hello world";std::string substr = s.substr(0, 5); ...
芸编阁的记性生
一、阁里来了个"过目不忘"的抄书郎芸编阁是国子监藏书的地方,三万卷书,每日人来人往。 今年开春,阁里添了个新差事——抄书郎。凡是阁里要誊录、续写、校对的卷子,都由他代笔。这抄书郎不一般:他誊抄任何一卷书,都能一字不差;你给他半句上联,他能工工整整地对出下联;给他一段前文,他能顺着笔意续出后文。阁里的先生们试了他三个月,无不啧啧称奇。 "好个过目不忘的神童。"掌阁的柳先生捋着胡子说。 可日子一长,柳先生发现了蹊跷。 这位抄书郎,誊写一篇三百字的文章,要花半个时辰。而阁里最快的书手,誊同样一篇,只要一盏茶。 柳先生起初以为是新人不熟规矩,便不催他。可连着三个月,回回如此——抄书郎誊东西,慢得出奇。 "你誊一卷书,为什么要磨蹭这么久?"柳先生终于忍不住问。 抄书郎抬起头,一脸无辜:"先生,我没磨蹭。我只是……每写一个字,都要把前面写过的所有字,再从头看一遍。" 柳先生一噎:"你过目不忘,前面写的字,你记不住吗?" "我记不住。"抄书郎老老实实地说,"我每一笔...
璇玑台的司轮人
一、每个人都知道自己是第几个,除了"它"璇玑台是观星台,也是天底下消息最灵通的地方。 台上有十二名司轮人,每人都管着一只巨大的铜轮。铜轮上刻着天干地支、二十八宿、三百六十度——一封信送进璇玑台,司轮人转动铜轮,就能算出这封信"该往哪个方向去"。 十二只轮子彼此咬合,像一座精密的钟。运转了三十年,从没出过错。 可今年入夏,台主换了一批"新轮手"——不是人,是台主花重金从西域请来的"无声匠人"。据说这种匠人不用吃饭、不用睡觉,只要喂它文卷,它就能自己学着转轮子。台主盘算着:让它们学上三个月,就能替十二个司轮人守夜。 头一个月,无声匠人学得飞快。 教它认字,它认得;教它看信,它看得懂;教它转轮,它转得比人还稳。司轮人老王私下试过它——给它看十封信,它九封都答对了方向。 但第二个月,毛病来了。 老王把一封信倒着放在它面前——信封上盖着"第三日卯时"的邮戳,信里说"昨日寅时,城北起火"。 无声匠人看了半晌,答:"这封信该送往城南。" 老王一愣:&quo...
鉴真阁的核史官
一、最好的史官,出了一段假史国史馆里,论才情,没人比得上何太史。 何太史大名何敏行,三十四岁入史馆,四十二岁升太史。他修过《世宗实录》,主编过《皇朝通典》,经手的文稿摞起来比他本人还高两头。同僚们说:"何太史写的人物列传——你读着就觉着这人好像刚从你面前走过去。" 但偏偏就是在人物列传上,何太史出过一次大错。 去年国史馆重修《文宗实录》。何太史负责写六位大臣的列传。其中一位叫盛文昭——做过一任礼部侍郎,不算很有名。何太史洋洋洒洒写了三千字。写了他哪年科举、哪年中进士、哪年上过一道著名的"请罢矿监"折子——写得绘声绘色,从殿上对答到同僚侧目都写了。 稿子送到总纂官案头。总纂官姓陈,是个以"龟毛"闻名的老学究——一个年份前后差半年他都能跟你较三天劲。 陈总纂翻完何太史的盛文昭传,没批字。过了三天,他把一沓文牍放在何太史桌上。 "你写'盛文昭于隆庆三年上《请罢矿监疏》'——我查了隆庆三年所有的奏疏档,没有。" 何太史接过文牍,翻了一遍。确实没有。 "那可能年份记错了——"...
博古斋的寻典人
一、京城最博学的先生,翻了三次大车应天书院里有位顾先生,博闻强记,名满江南。他能引经据典随口就来,哪本书哪一卷哪一页,张嘴就有。学生问他任何一个朝代任何一年的科举题目,他不假思索,脱口而出。 但最近半年,他当众翻了三次车。 头一次——一个学生问他:"顾先生,北宋熙宁三年,王安石推行免役法的同一年,开封府出了个有名的案子——您记得是哪件?" "包拯审乌盆。"顾先生脱口而出。 底下鸦雀无声。过了半晌,一个学生小声说:"先生,包拯是真宗朝的人,熙宁是神宗朝——差了一百年……" 顾先生愣了片刻,自己笑了。但笑得不自然。 第二次——有人问到《元史·地理志》里一个边塞小城。顾先生一口气说了一长串,事后学生对了一本原书——地名对了、方位对了、建城年份——说错了。 第三次最要命。一个远来的贡生问了一件陈年公案——国初大诰里的某条刑律具体怎么说的。顾先生信誓旦旦背了原文。结果第二天那贡生从怀里掏出誊抄的大诰原文——顾先生背的那段,是另一个案子里的。他搞混了。 书院山长把顾先生叫到屋里喝茶。 "老顾——你学问还在。但你最近是不是,...
演算堂的推演生
一、张口就算,可十题错六题金陵府学下设有一间演算堂,专给各县选拔上来的算学神童开小灶。每年两百多个神童里,能进演算堂的不超过十五个。 掌教姓秦,人称秦推之。他在演算堂教了二十年,教出来两个状元,六个会元。全江南的府学都知道——"算学出金陵,金陵出秦门。" 但最近三年,秦推之觉得不对劲。 新一届十五个学童,天赋是一个比一个吓人。心算两位数乘法——一息出答案。心算三位数乘三位数——一顿饭的工夫。上一届最厉害的也不过如此。可等秦推之把题从"单纯算数"换成"应用题"之后——这帮神童塌了一大半。 比如这道: 张家有田四十二亩,李家有田三十六亩。张家的亩产比李家高两斗。两家一年共收粮四千一百二十八斗。问张家亩产多少斗? 按说这帮心算天才,拿下这题最多一盏茶的工夫。结果交上来的十四份卷子——只对了三份。 不是他们不会算两位数的乘除。是题里的数字多了、关系绕了、得"先求什么、再求什么、最后套什么"——这帮神童的大脑到第二步就懵了。 秦推之把错卷摆开看了一遍。十一个错的人,错得五花八门:有的一步没推对就开始心算,算...
RAG原理就一句话——检索、拼接、加工:写给想祛魅的你
系列导读:本文是"检索与 RAG"系列的第三篇(收尾篇)——前两篇分别认识了 RAG、深挖了检索环节的坑,本篇回归本质,用一句话看穿 RAG 的骨架。本系列阅读顺序: 《RAG检索增强生成——让大模型学会翻书作答》(认识 RAG) 《权重大却不相关——BM25检索失效场景与两阶段救赎》(深挖检索环节) 本文《RAG原理就一句话——检索、拼接、加工》(回归本质,收尾) 一、RAG 被讲复杂了打开任何一篇 RAG 教程,你会看到:向量数据库、embedding、切分策略、重排、混合检索、RRF 融合、引用溯源、评估指标……名词堆成一座山。 但如果你剥掉所有包装,RAG 的原理真的只有一句话: 用传统软件工程的办法,把用户输入对应的知识搜索出来,拼到大模型的提示词里,让大模型帮你二次加工一下。 就这么简单。私域文件知识库问答是这样,联网搜索是这样,企业内部文档检索也是这样——框架完全同构。 这篇不教你搭系统,只帮你把 RAG 看穿:它到底是什么、每一环在干什么、为什么教程写得天花乱坠。 二、拆开看:三个环节,一个都不新RAG 的全流程可以拆成三个环节: ...
问心斋的解语人
一、同一个神龛,百样不同的答长安城西有一座问心斋,说是道观,其实就一间小殿,供着一尊不问世事的神。 神龛前有一口铜铃。你问一个问题,摇三下铃,神龛底下会滑出一张纸来——上面写着回答。 但这尊神有个怪脾气:同一个问题,不同的人问,答出来的东西天差地别。 去年有人问:"我该不该去江南做生意?" 一位老商人去问,回答是:"江南水路通达,货如轮转,三年可致千金。但须防梅雨损货,端午前出手为上。" 一个年轻的衙役也去问了同样的问题——一字不改。回答是:"江南?江南的雨多,鱼多,姑娘好看。别的我不知道。" 老商人的儿子不信,换了件旧衣裳,改了个行礼的路数,混进去又问了一遍。这次回答是:"做生意哪有不冒风险的?江南做布匹的第一年亏本,第二年回本,第三年才赚钱——你熬得住三年吗?" 同一个人,同一尊神,同一个问题。三个回答,三种味道。 消息传开,问心斋的门槛快被踩烂了。全长安城的人都想知道:这尊神的脑子到底是怎么转的? 二、改的不是神,是前面铺的路问心斋有个管事的,姓柳,人称柳解语。 她不是道士,也不是尼姑。干的事说...
礼乐司的教习官
一、乐谱全对,可皇上听了皱眉头礼部辖下有个礼乐司,专管朝廷祭祀和宴飨的雅乐。编制三百人——编钟、石磬、琴瑟、笙竽、柷敔,八音齐备。 教习姓周,人称周司乐。他在礼乐司待了三十余年,带出来无数宫廷乐师,可这几年他的心脏快撑不住了。 问题是这么来的。皇上新登基,对雅乐异常苛求。每月初一的太庙祭祀,乐班奏完一套,皇上就两个字:"不对。" 不对在哪?没人知道。 周司乐自己坐到乐班前面听,听了一整场。音准——没一个音跑了。节奏——编钟和石磬严丝合缝。声部——八音按谱子来,一处没乱。曲子——用的是洪武年间的正谱,祖宗定下来的,几百年来都是这么奏的。 "谱是对的,"周司乐捋着胡子,"但皇上说不对,就是不对。" 问题到底出在哪? 一个叫小乐的乐工有一天无意中说了句话:"师父,咱们照谱子奏,每个音都对——可你不觉得太'冷'了吗?" 冷?周司乐从来没用过这个字——他只管符不符合谱子。一套曲子十几个乐章,只要各声部按谱的标记奏完,他就是满意的。但"冷"——那是一种感觉。谱子上不写感觉。 他...

