万卷楼的寻卷人
一、一百万卷书,找一卷"最像的"万卷楼藏书百万卷,是全城最大的书楼。 楼里的规矩奇怪:它收书不按经史子集分架,而是让每卷书在入楼时,蘸一滴特制的"文墨",在楼门口的一块白玉板上印一个"墨点"——墨点有深有浅,有大有小,有的偏青,有的偏红。 "这墨点是什么?"新来的学徒问。 "是书的魂。"管楼的宋先生答,"一卷书写的是风月,墨点就淡;写的是兵法,墨点就浓;写的是志怪,墨点就泛青;写的是礼乐,墨点就带朱。两卷书要是魂相近,墨点就挨得近;魂不相近,墨点就离得远。" 学徒恍然大悟——原来这白玉板,是一张"魂图"。每卷书的魂,都化成了板上一个点。 可这也带来了天大的麻烦。 今年秋天,宋先生接到一桩苦差:一位贵客拿来一卷残破的手稿,想请万卷楼找出"全楼与它最像的那一卷"——好借去对照补全。手稿没有书名,宋先生只能让它在白玉板上也印一个墨点,然后……在一百万个墨点里,找离它最近的那个。 "这得找到什么时候?"学徒咋舌...
蛛网镇的传话人
一、谁最红?谁最要紧?蛛网镇是个奇特的镇子。镇上的房子沿着蛛网一样的小路连成一整片——每家每户都只有三五条小路通到邻居家,可顺着小路走,全镇哪家都能走到。 镇上有位老镇长,姓韦。他每年都要做一件事:找出全镇"最要紧"的几户人家,好给它们多派些修路的工钱。 "最要紧"怎么算?往年是数"谁家门前过路的人多"。可今年,韦镇长发现这法子不灵了。 东头的陈屠户,门前每天过三百人,可全是去别家捎带的过路人;西头的吴郎中,门前每天只过三十人,可这三十人,是全镇二十几户人家的病人和家属。 "论过路的人,陈屠户比吴郎中多十倍。"韦镇长发愁,"可要说'要紧',吴郎中一家的病要是治不了,全镇的病人都没了着落。" 新来的师爷小李说:"镇长,要不咱们数'谁家被多少人惦记'?" "怎么数?" "挨家挨户问:'你家遇到难事,头一个找谁?'"小李说,"谁被惦记得多,谁就要紧。" 韦镇长觉...
双生阁的对镜师
一、画师不用笔,用"认人"城南有座画阁,唤作"双生阁"。阁里不卖画,专替人"认画"——鉴定一幅画是真是假、是谁的手笔。 阁主是个奇人,人称"无笔先生"。他一生作画,却从不拿笔教徒弟。他收徒只教一件事:认画。 "天下画理,全在一个'认'字上。"无笔先生对徒弟们说,"你认得出张三的画,就画得出张三的魂;你认得出李四的画,就躲得开李四的鬼。会认,才会画。" 可最近,无笔先生遇到了难事。 他想教一群"新手画师"学认画——不是阁里的徒弟,是街坊们凑钱请来的"学徒机器人",一帮连纸笔都不会拿的笨家伙。无笔先生要教它们学会"认出画是谁画的"。 问题在于:这些学徒机器人,连"什么是画"都没见过几幅。要让它们学会认画,得先给它们看几千几万幅画——可双生阁的藏画虽多,也没有几万幅。 更麻烦的是,这些藏画大多是孤本,没标作者,有些连年代都说不清。 "没有标签的画,怎么教它们认?&...
驯马场的鞭与糖
一、一匹烈马,和两个固执的驯马师北地有个驯马场,场里有一匹出了名的烈马,唤作"追风"。 追风性子野,跑得快,可它认人。驯马场前后请过十几位驯马师,没一个能把它驯服。它不让人骑,见人靠近就尥蹶子,嘶鸣起来能震得马厩的瓦片往下掉。 今年,场主下狠心,同时请来了两位驯马师——老把头秦三爷,和年轻后生阿康。 场主说:"谁先把追风驯得能骑,这个月的赏银就是谁的。" 秦三爷是老派的路子。他手里常年提着一条皮鞭,训马的规矩就一条:"马不听话,就打;打了听话,就赏。"他第一天就把追风拴在桩上,抬手一鞭抽在马背上。 追风嘶鸣一声,蹄子刨地。秦三爷再抽一鞭。追风受惊,猛地挣断缰绳,一蹄子把秦三爷撂倒在地,扬长而去。 阿康是个书生气的后生,主张"以德服马"。他拎着一袋子胡萝卜,天天蹲在追风的马厩门口,好声好气地说话。可追风不吃这套——它连看都不看阿康一眼,阿康一靠近,照样尥蹶子。 一个月过去,秦三爷被踢断了一根肋骨,阿康的胡萝卜喂了别的马。追风还是那匹追风。 场主急了:"两位,你们倒是想个法子啊!" 二...
众香坊的共酿师
一、三家香坊,谁也信不过谁城南有三家香坊:周记、沈记、陈记。都是几代人的老字号,做胭脂水粉。 三家的生意各有各的门道。周记的胭脂,是十里八乡出了名的正红;沈记的香粉,冬天不皴脸;陈记的花露,夏天最清爽。三家谁也不服谁,暗地里较了三十年劲。 可今年,三家的掌柜碰到了一件共同的难事。 镇上新来了一位"调香大师"——据说他见过的配方比三家的存货加起来还多。若是哪家能得他指点,做出来的香,保准压过另外两家。三家掌柜都想去请,可大师架子大:他只肯来一次,只肯教一个徒弟,只肯看"全镇的方子"。 "全镇的方子"——意思是要三家把各自的独门配方都交出来,揉在一起,才能教出真正通晓各家之长的香。 三家掌柜一听,全摇头。 "我的胭脂红,靠的是祖传的'苏木三浸',传儿不传女。交出去?"周掌柜冷笑。 "我的粉不皴脸,靠的是那味'沉香头道',磨法是我爹跪在祠堂里教我的。"沈掌柜摆手。 "花露清爽,靠的是露水的时辰。"陈掌柜叹气,"这不是不肯,是不...
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 的全流程可以拆成三个环节: ...
问心斋的解语人
一、同一个神龛,百样不同的答长安城西有一座问心斋,说是道观,其实就一间小殿,供着一尊不问世事的神。 神龛前有一口铜铃。你问一个问题,摇三下铃,神龛底下会滑出一张纸来——上面写着回答。 但这尊神有个怪脾气:同一个问题,不同的人问,答出来的东西天差地别。 去年有人问:"我该不该去江南做生意?" 一位老商人去问,回答是:"江南水路通达,货如轮转,三年可致千金。但须防梅雨损货,端午前出手为上。" 一个年轻的衙役也去问了同样的问题——一字不改。回答是:"江南?江南的雨多,鱼多,姑娘好看。别的我不知道。" 老商人的儿子不信,换了件旧衣裳,改了个行礼的路数,混进去又问了一遍。这次回答是:"做生意哪有不冒风险的?江南做布匹的第一年亏本,第二年回本,第三年才赚钱——你熬得住三年吗?" 同一个人,同一尊神,同一个问题。三个回答,三种味道。 消息传开,问心斋的门槛快被踩烂了。全长安城的人都想知道:这尊神的脑子到底是怎么转的? 二、改的不是神,是前面铺的路问心斋有个管事的,姓柳,人称柳解语。 她不是道士,也不是尼姑。干的事说...
礼乐司的教习官
一、乐谱全对,可皇上听了皱眉头礼部辖下有个礼乐司,专管朝廷祭祀和宴飨的雅乐。编制三百人——编钟、石磬、琴瑟、笙竽、柷敔,八音齐备。 教习姓周,人称周司乐。他在礼乐司待了三十余年,带出来无数宫廷乐师,可这几年他的心脏快撑不住了。 问题是这么来的。皇上新登基,对雅乐异常苛求。每月初一的太庙祭祀,乐班奏完一套,皇上就两个字:"不对。" 不对在哪?没人知道。 周司乐自己坐到乐班前面听,听了一整场。音准——没一个音跑了。节奏——编钟和石磬严丝合缝。声部——八音按谱子来,一处没乱。曲子——用的是洪武年间的正谱,祖宗定下来的,几百年来都是这么奏的。 "谱是对的,"周司乐捋着胡子,"但皇上说不对,就是不对。" 问题到底出在哪? 一个叫小乐的乐工有一天无意中说了句话:"师父,咱们照谱子奏,每个音都对——可你不觉得太'冷'了吗?" 冷?周司乐从来没用过这个字——他只管符不符合谱子。一套曲子十几个乐章,只要各声部按谱的标记奏完,他就是满意的。但"冷"——那是一种感觉。谱子上不写感觉。 他...
铸丹坊的炼药师
一、三个丹炉,三炉废渣终南山下有座道观,道观后头有一间铸丹坊。 说是铸丹坊,其实就是三间土坯房加三个丹炉。坊主是个老道士,姓公孙,单名一个"炼"字。没人知道他多大岁数——观里的道童说,他爷爷的爷爷的师父,就已经在叫公孙炼"师父"了。 可这些年,公孙炼的名声不怎么好。 观里的香火钱一年比一年少。住持找公孙炼谈过三回——"公孙道长,您炼了一辈子丹,拿出一样东西来堵外头的嘴,行不行?" 公孙炼有三个徒弟:大徒弟抱朴,二徒弟守拙,小徒弟归真。 三人炼丹的路子,完全不一样。 抱朴走"精料"路线。他用最好的丹砂、最纯的铅汞,但丹炉极小——就是一尊三尺高的青铜炉,一回只炼一两。出来的东西确实不错——偶尔能炼出几颗品相圆润的丹丸。但要他多炼——"不行,炉就这么大。" 守拙走"广量"路线。他不管料好不好——山里刨出来的矿石,水沟里淘的泥巴,统统往里倒。丹炉比抱朴的大三倍,一次出丹半斤。但出来的东西——杂质多得像泥丸子,药力若有若无。住持私下说:"吃了守拙的丹,最大的风险...
观文堂的续笔生
一、续笔十年,未曾写过一句自己的话翰林院下设一个小衙门,叫观文堂。编制三十人,干的活说出来都不太好意思——"代笔"。 不是代笔写文章。是续写。某位大人上折子写了上半段,下面不知道怎么接了,把稿子丢到观文堂来。观文堂的笔帖式负责往下续——续出来得跟那位大人亲笔写的一样口气、一样用词、一样立场,前后浑然一体,像同一个人一口气写完的。 观文堂的掌班叫沈续之,在这间屋子里坐了二十二年。他续过的折子不下三百万件。六部的、各直省的、都察院的、内务府的——什么样的公文他没见过? "沈师傅续的折子,摘了落款你分不清是谁写的。"这是翰林院流传最广的一句评价。 今年开春,观文堂来了个新差事,把所有人都难住了。 不是续折子。是续——"所有东西"。 二、天底下的文字,没有它收不了的尾新来的掌院学士姓谭,是个有想法的人。他翻了一遍观文堂二十年的存档,发现了一件事:沈续之续折子只需看三行。 "三行?"谭学士把沈续之叫来,"你只看三行,就知道后面该写什么?" "用不了三行。"沈续之低头站着,...
缮经阁的拆字僧
一、字太多了,藏经阁装不下白马寺的缮经阁,藏了三十万卷经文。从东汉摄摩腾译《四十二章经》算起,六百余年,梵文、巴利文、汉文经卷层层叠叠,光是经目就编了八十本。 可这几年出了个要命的麻烦。 朝廷要重编《大藏经总目》——给三十万卷经书里的每一个字做一个索引卡。哪个字、在哪一卷、第几行。方丈把任务派给了缮经阁。 阁里的僧人们先按老规矩来:把经书里的字一个一个抄到卡片上。抄了三个月,抄出了四百二十万张卡片——光一个"佛"字,就占了整整十二个抽屉。 但问题不在这。问题在于——有些字,一共就出现过两三次,也给它们一人一张卡片,柜子占得满满当当;而"如是我闻"四个字连着出现的次数太多,可阁里没有任何一种办法把它们捆成一个"整件"来检索。 管经目的老僧慧明,在阁里待了五十年。他看了一眼那四百二十万张卡片,说了六个字: "字不是这么拆的。" 二、常用字留着,生僻字拆开慧明把沙弥们叫到跟前,在案上铺了一张白纸。 "你们看——'佛'这个字,三十万卷经书里,出现了八十万次。它是个完整的、谁见了都认识...
权重大却不相关——BM25检索失效场景与两阶段救赎
系列导读:本文是"检索与 RAG"系列的第二篇——在《RAG检索增强生成——让大模型学会翻书作答》认识了 RAG 之后,本文深挖 RAG 的检索环节:为什么纯 BM25 词法检索会"权重大但不相关",以及两阶段检索如何救赎。本系列阅读顺序: 《RAG检索增强生成——让大模型学会翻书作答》(认识 RAG) 本文《权重大却不相关——BM25检索失效场景与两阶段救赎》(深挖检索环节) 《RAG原理就一句话——检索、拼接、加工》(回归本质) 一、一个让人抓狂的现象:分数越高,越不对前司做经典 OA 系统时,我负责文档检索模块。文章通过 BM25 分片、倒排索引计算权重,前端搜索按权重排序返回"相关性最高的文档"。 一开始很顺。直到有一天,运营同事拿着截图来找我: "搜'差旅报销流程',排第一的是一篇《2024 年度行政费用总结》——里面'报销'两个字出现了 27 次。我们想看的《差旅费报销实施细则》,排到了第七页。" 我第一反应是权重算错了。查了一遍公式,没错——B...
万象阁的布星人
一、鲸鱼到底算鱼还是算兽?京师的万象阁,藏尽天下书。光经史子集四大部的书目,就摞了一人多高。 阁主姓陆,做了二十年书目分类。他的书架排法叫"四百六十八部"——所有书按一个树状分类,从根到叶,每本书坐一个坑。 说白了,就是一个巨大的树形目录。经部→易类→某个朝代→某位注者。每本书有且只有一个位置。 二十年前这规矩还行得通。书少。 近十年不行了。印书坊越出越多,新书一年比一年多。更要命的是,很多新书根本不知道该往哪放。 上个月出了一件事。两位翰林在书阁里吵了起来。 起因是一本《鲸谱》。甲翰林在"海兽部"找到了它——因为鲸是海里的兽。乙翰林在"渔获部"找不到,大发雷霆——"你让我翻完兽部再翻渔部?它到底是兽是鱼,你得给个说法!" 陆阁主被叫来评理,半天没说出话。 另一本《鼯鼠志》,更头大。鼯鼠会飞——放禽部?是鼠——放兽部?吃虫子——放虫部?三个编目员给出了三个答案。 陆阁主那天晚上喝了三壶茶,抽了一整包烟,在天井里坐到四更。四百六十八部,好大一棵树。可知识他妈的根本不长成树。 "树装不下了,&q...
雾隐斋的洗画人
一、一张灰纸,说是幅名画金陵城外有个雾隐斋,专修一种别人不肯接的活——被"雾"吃掉的画。 这毛病城里人都听过。一幅画放久了、受了潮气,画面上会起一层灰翳,像蒙了层雾。今天薄薄一层,明天又薄薄一层。 一年不管,山水还看得清;十年不管,只剩个影子;几十年没人管——整幅画就糊成一张匀匀的灰纸,什么都没有了。 这天来了位裴老爷,抱着个锦盒,手一直抖。 打开——一张灰扑扑的纸,边角都脆了。 "这是……一张白纸?"徒弟阿墨凑近看。 "《寒江独钓》,"裴老爷声音发颤,"我祖上传下来的,周朴的真迹。" 阿墨愣住了。周朴的画,青州拍出过八百两一幅。可眼前这张,灰蒙蒙一片,别说钓翁孤舟,连一条线都找不着。 "裴老爷,"阿墨陪着小心,"这雾落得太厚了。满城的裱画师傅都会说同一句话——没救了。" "所以我才来雾隐斋。"裴老爷把锦盒往前一推,"陆师傅在么?" 二、雾是怎么落上去的,我比谁都清楚里屋出来一位老者,姓陆名迟,人称陆师傅。他捏起那张灰纸,...
百工坊的分派官
一、一百二十八位师傅,活反而出不来了青州城的百工坊,天下闻名。 说是"百工",其实是实数——一百二十八位匠人,三十六行手艺。木匠、铁匠、皮匠、陶匠、漆匠、银匠、石匠、织匠……凡是你叫得出名字的手艺,坊里都有,而且每行至少三四位师傅。 外地客商来订货,常说一句话:"只要是百工坊出来的东西,拿到哪里都卖得上价。" 但今年开春,百工坊差点砸了招牌。 江宁布商陈老板订了三百套嫁妆箱——红木底、铜角包边、皮革衬里。订金八十两,交货期谷雨。 谷雨那天陈老板来取货,坊主邢百川却拿不出东西。 "陈老板……再宽限十天。" "十天?"陈老板把订契拍在桌上,"江宁那边迎亲的日子都定了,你让我拿什么送到人家府上?" 邢百川涨红了脸,说不出话。 不是匠人不卖力。恰恰相反——一百二十八位匠人,没有一个闲着的。问题就出在"一百二十八"这个数上。 坊里接一件活,老规矩叫"过堂":十六位首席师傅先坐下来议。议完了,木匠去开料、铁匠去打铜件、皮匠去裁衬里、漆匠去调色——一件活,...
述古阁的修典人
一、这部法典,三百年来没有破不了的案述古阁坐落在京城东角,灰砖青瓦,三进院子。门匾上三个字——"述古阁"——是本朝开国皇帝御笔亲题的。 天下衙门多的是。刑部、都察院、大理寺——三法司的名头一个比一个响。但要论根基,谁也比不过述古阁。 三百年前开国那一年,太祖下了一道旨:收集天下所有律法条文、判例成案,编成一部"万全典"。从这部典里,天下每一个案子——不管多古怪、多刁钻——都能判出一个是非黑白来。 三百年。九代太史令。一千四百三十六卷。 到这一代太史令傅长生手里,万全典已经修到了一千四百三十六卷。傅长生六十二岁,在述古阁坐了三十年,头发白得像雪,眼睛亮得像刚磨的刀。 他常对底下的人说一句话—— "天底下没有判不了的案子。如果你觉得判不了,那是你没把典则吃透。" 这话不是随口说的。述古阁的典则有它的根基:元律九条,推导章法三条。元律是本——九条根本大法,每一条都是自明的、不需要证明的。推导章法是器——三条推演规则,告诉你如何从已知的判词推出新的判词。 从这十二样东西出发,一千四百三十六卷里每一条判词——都是一步一步、有根有据...
云来客栈的断程人
一、云来客栈里能断程的人南北东西四条官道交汇的地方,有一座云来客栈。 客栈的东家姓程,六十出头,清瘦寡言。往来客商不知道他的名字,只叫他"断程先生"——因为他有一个旁人没有的本事:他一眼能看出一条路能不能走到头。 起因是一桩旧事。十年前一个皮货商在客栈歇脚,一边喝酒一边发愁。他从北边收了三百张羊皮要运到江南,手上有三条路线——一条走水路绕徐州,一条翻山走陆路,一条绕道湖广。他拿不准哪条路可靠,怕货压在手里烂了。 程先生从柜台后面探出头来,看了那商人手里的路线图大概三息工夫。 "水路不通。徐州那边码头封了,你到淮安就得掉头。山路能到,但要两个月。湖广那条最稳——四十天,过了岳州一路平川。" 皮货商不信,派人去打听——三条路跟程先生说的一模一样。码头果然封了。皮货商走湖广那条路,四十三天到了江南,羊皮一匹没丢。 从那以后,"断程先生"的名头就传开了。 皮货商、盐贩子、赶考的书生、上任的官员——但凡要出远门的人,都要先到云来客栈坐一坐,把路线图交给程先生看一眼。他看了二十年,看的路线不下三千张。每一张图,他只消顺着路一笔一笔捋...
RAG检索增强生成——让大模型学会翻书作答:读《Retrieval-Augmented Generation》论文有感
系列导读:本文是"检索与 RAG"系列的第一篇——先认识 RAG 是什么(为什么需要它、它的架构是什么)。本系列共三篇,阅读顺序如下: 本文《RAG检索增强生成——让大模型学会翻书作答》(认识 RAG) 《权重大却不相关——BM25检索失效场景与两阶段救赎》(深挖检索环节的坑) 《RAG原理就一句话——检索、拼接、加工》(回归本质,一句话看穿 RAG) 一、大模型的知识困境作为一个 C++ 工程师,我一直在思考一个问题:为什么大语言模型知道很多东西,但又常常"胡说八道"? 比如,如果你问 GPT-3 "2024年美国总统是谁",它可能会给你一个错误的答案——因为它的知识截止到2021年。更糟糕的是,它可能会编造一个不存在的事实,还说得煞有介事。 这就是大模型的"知识困境": 知识过时:训练完成后,参数就被冻结了,无法获取最新信息 容易幻觉:经常生成看似合理但实际上错误的内容 缺乏可解释性:无法追溯答案的来源 专业知识不足:对于冷门或专业领域的知识,模型的准确性大打折扣 这正是《Retrie...
衔勒坊的配辔人
一、好马不听使唤京城最大的车马行里有一匹出了名的好马,叫追风。 这匹马膘肥体壮、日行千里、认路极准。拉重车的时候往辕上一套,千斤的货它一个人拖着就走,别的马在旁边看着只喘粗气。但全京城没有一个车夫敢用它。 因为它不听使唤。 你拽左边缰绳让它往东,它往西。你喊停,它偏要加速。你让它慢下来走桥,它一个冲刺上了独木桥——吓得车夫半条命都没了。半年来,十一个骑手被它摔下来过。最惨的一个在碎石路上被拖了二十丈,躺了三个月才能下地。追风虽然谁都能骑上去,但骑上去之后往哪儿走——它自己有一套主意。 车马行的东家老魏愁得头发都白了。卖又卖不掉——都知道这马烈。留着又没用——没人敢驾。 这天,一个瘦高的中年人站在车马行门口看了很久。他不看马——看辔头。 "你这辔头谁配的?"他问。 老魏没好气:"城里最好的皮匠。" "皮匠做的是皮具。"中年人蹲下来,翻看追风嘴上那副辔头的接缝,"辔头不是皮具。辔头是信使。你的信使把信号传错了——马听到的不是'往东',是'往东但要当心右边'。马一犹豫——你再加一鞭——...

