游离t3高了一点点。
这是一句真人打进搜索框的话,一个字都没改。我在这句话上卡了小半个月。
实习这边最近让我看一批搜不好的 query。具体在做什么不方便细说,能说的是这些 query 本身,它们就是一串谁都能打出来的中文。
比如上面那句。他想要的是甲功方面的建议,可要去匹配的那些文档里,根本找不着“游离t3”这四个字。有的文档里有这四个字,讲的又不是他要的那回事。
这样的 query 在我那张表里还有一大片。再挑三条:
五岁孩子心肌酶高吃什么药。
签了劳动合同还算应届毕业生吗。
电脑长时间没用开机显示好多英文。
这三条我盯了挺久。第一条里没有“儿童用药”这几个字,可任何一个能用的答案都必须先想到这一层,不然就是在给成年人开方子。第二条的答案躺在就业政策文件里,那些文件和这句话之间几乎没有共用的词。第三条最绝,它一个“故障”、一个“解决”都没提,用户只是把屏幕上看见的东西描述了一遍。
它们的共同点是,query 和能满足它的文档之间隔着一段路,那段路得有人走过去。关键词匹配不走路,它只认字。
这件事在信息检索里有个老名字,词汇鸿沟。用户嘴里的说法和文档里的说法对不上,这个问题比大模型早太多了,几十年前就在讲。
对付它也有一整套老办法。最早是同义词扩展,往后是用点击日志学关系,用户搜了 A 最后点了一篇讲 B 的文档,那 A 和 B 之间就记一笔。再往后是双塔的语义向量,把 query 和文档各自压成一个向量去算距离。这些办法都有效,我不打算装作它们不管用。
但它们管的是同义。番茄和西红柿是同义,笔记本卡和电脑运行慢是近义,这一层被吃得挺干净了。
游离t3和甲功不是同义关系。它是一步推断。你得先知道游离t3是甲功检查里的一项,才能把这句话接到那一大堆讲甲功的文档上。这一步不在词表里,也不在点击图里,除非正好有大量用户搜了这句话又点了甲功的文档,可这类长尾 query 本来就没多少人搜,点击信号稀得可怜。
所以这一类 query 卡的地方,在同义词的下一层。
那一层得靠推理。
烦的地方不在这儿。
烦的地方是我没法说清楚它们凭什么算难。
如果只是想把这几条搜好,办法多得是,一条条打补丁就完了。
补丁的问题是它不迁移。你今天为游离t3加了一条规则,明天来的是“促甲状腺激素偏低要紧吗”,换个指标,规则又不认了。医疗只是一个领域,就业政策、法律、故障排查这几片地方全是同一个形状的 query,你不可能一片一片地手工填。
所以真正要干的事是把这一类从海量 query 里捞出来,先知道它们长什么样、有多少、都堆在哪些领域,才谈得上针对性地做点什么。
要捞就得有判据。凭什么说这条复杂,那条不复杂。
我最开始的做法特别朴素,拍了一张表。
四栏。一栏是要绕几步才明白他想干什么,一栏是 query 里的词和答案里的词离多远,一栏是他的意图有没有说出口,一栏是回答这个需不需要专业知识。每栏零到三分,加起来排序,高的挑出来。
表拍完煮啵还挺满意的,觉得这不就把主观的东西量化了嘛。咳咳。
然后就出事了。
同一条 query,两个人标出来的分能差两级。一个人给一分,另一个给三分。吵起来之后发现两边都有道理,因为“绕几步”这件事,取决于你脑子里默认了多少常识。你要是知道游离t3是甲功那几项里的一项,这条 query 就是一步;你要是不知道,它就是三步。
那张表量的不是 query,是标注的人。
这一下有点难受。标注规范写细一点也修不了这个,因为那一栏的定义本身就挂在人身上。
就是在这儿我才回过头去找论文。
顺序是活先把我按住了,我才去看有没有人想过这个问题。以前我干过反过来的事,读到一个漂亮的方法就到处找地方用它,那阵子找出来的问题基本都是假的,是为了用那个方法硬凑出来的。
顺手改一个我自己以前的判断。以前我一直觉得读论文是为了找 idea,读得够多 idea 就会来,所以有一阵我给自己定每周几篇的量。现在我不这么看了。读论文的作用是让你认出你已经撞上的那个东西。撞是自己撞的,论文只负责告诉你这个坑有名字、有人量过它多深。
这半个月的顺序刚好是这样。我先撞上“没法量化难度”这件事,撞得挺疼,然后才在两篇今年的论文里看见它。
两篇都不是搜索的论文。它们讲的是大模型的推理链该有多长。但它们量的那个东西,就是我手上缺的那把尺子。
CoT 这三个字得有人讲一遍
熟的家人们可以直接跳到下一节。
CoT 是 Chain of Thought,中文一般叫思维链。它干的事一句话能说完,让模型先把推导过程写出来,再给答案。
举个小学题。一支笔三块钱,一个本子是笔的两倍价,买四支笔两个本子多少钱。
模型要是直接张嘴报数,很容易报错。它得在一次输出里同时完成好几件事,换算本子单价、算两笔小计、再求和。这几件事被压在同一步里,容易塌。
让它先把过程写出来,就变成这样。本子六块,四支笔十二块,两个本子十二块,一共二十四块。
每一步都很短,短到不容易错。
这个做法是 2022 年 Google 那篇 Chain-of-Thought Prompting Elicits Reasoning in Large Language Models 提出来的,一般说 CoT 的奠基工作就是指它。论文里最有名的例子是罗杰的网球,罗杰有五个球,又买了两筒,每筒三个,问一共几个。给示例里加上中间步骤之后,模型在这类题上的正确率涨了一大截。
这里有个地方特别容易讲歪,我自己讲歪过一次。我第一次给一个刚接触这行的人讲 CoT,说的是让模型把解题过程写出来给你看。他反问了一句,写出来给谁看,模型自己又不看。我当场没答上来。
中间那些步骤本身就是计算。
模型每多生成一个 token,就多了一次带着前面所有内容重新过一遍的机会,那些中间 token 就是它用来算的地方。写的过程就是算的过程,同一件事。你不让它写,它就得在一步里把这些全干完;你让它写,它就把一次困难的跳跃换成了几次容易的小跳。
顺着这个说法往下推一步,就能明白为什么“让我们一步一步想”有时候念了也没用。那句咒语只是给了模型一个铺开的机会,如果它铺开之后写的东西跟解题没关系,token 是花了,活没干。CoT 有效的前提是那些 token 真的在干活。
o1、R1、文心 4.5 Thinking 这些推理模型,正式作答之前那一大段思考过程,就是这个东西被训进模型里了。以前得靠 prompt 求它一步一步想,现在不用求,它默认就想,而且想得很长。
CoT 有用这件事没什么好争的,跑过的人都有体感。但它一被训进模型、一开口就是几千 token 的思考,两个很实际的问题就冒出来了。
一个是到底要多长才够。
另一个是,越长是不是就越准。
这两个问题都压着活。谁真拿推理模型去干点什么,早晚都得回答它们,躲不过去。如果“要多长才够”对每道题都有一个客观的数,那这个数就是难度。
一条整齐得不像真的曲线
第一篇论文的标题挺长,How Well do LLMs Compress Their Own Chain-of-Thought? A Token Complexity Approach。今年三月挂在 arxiv 上,作者是哥伦比亚商学院的三个人,Ayeong Lee、Ethan Che、Tianyi Peng。
他们的出发点很工程。推理链动不动几千 token,又慢又贵,能不能让它说短点。
于是他们做了一件挺笨也挺狠的事。同一批题,用三十来种不同的方式去压模型回答的长度和格式,然后看准确率怎么掉。
那三十来种五花八门。有直接的,只给最终答案,不许解释。有数着来的,最多二十个词,或者最多三步。有换格式的,只许写公式。有换语言的,用中文答,或者五十个汉字以内答完。还有几种纯属找茬,不许用空格和换行,或者语法不用管对、能看懂就行。
六个主流模型上跑,里面有 GPT-4o,有 Claude 3.5 Sonnet,也有 Llama 3.3 70B,题目是三个数学推理的 benchmark。
结果是这样。
把所有这些 prompt 得到的结果画成点,横轴是实际用掉的 token 数,纵轴是准确率,那些点落在了同一条曲线上。
我第一次看到这张图,第一反应是这也太整齐了,整齐得不太像真的。
它的意思是,你让模型用中文答还是英文答,让它打点还是写公式,让它去掉标点还是不管语法,这些都不改变结果。只要最后花掉的 token 数差不多,准确率就差不多。
格式、语言、措辞,全都从这条曲线上退场了。留在台上的只有一个量,你给了它多少 token 去想。
我在地铁上看到这儿,把手机举着晃了一下,差点戳到旁边的人。这半年调 prompt 调得最多的地方就是措辞,横过来竖过来试,试出来的收益要真按这篇论文的意思,多半是因为改完之后模型说得长了一点。
当然这是数学推理题上的结论。别的任务上格式还有没有独立作用,这篇没管。
从那条曲线上还能看出一件更有用的事。它中间有一道断崖。token 数在断崖以上,准确率就在那个水平上;一旦掉到断崖以下,准确率直接塌。它掉下去的样子很陡,跟平滑滑坡完全两回事。
论文里给了一个很具体的数字,Claude 在 53 个 token 那儿,准确率从百分之三十跳到百分之九十。差别就在那几十个 token 上面。
而这个断崖的位置是题本身的属性。你换 prompt、换语言、换格式,断崖不动。
于是有了这篇论文最有用的那个东西。
Token 复杂度,一道题被正确回答所需要的最少 token 数。
定义看着简单,它有两条性质是我最需要的。
第一条,它属于题,不属于你怎么问。这条正好是我那张表缺的。我那张表上的分数取决于标注人脑子里有多少常识,token 复杂度不取决于任何人的常识,它就是那道断崖的位置,测出来多少就是多少。
第二条,知道了一道题的 token 复杂度,就能反过来预测各种压缩策略在这道题上大概能拿到什么准确率。论文说这个预测相当准,具体的拟合指标我没去细核,反正比拍脑袋强。
论文还顺手测了一件事,这件事我觉得比前面都重要,因为它后面要来打我的脸。
他们看了看模型自己有没有分寸感。难题多想,简单题少想,模型知不知道这个。
答案是知道一点。模型确实倾向于给简单题短一些的推理链,给难题长一些的。但拿它跟理论上的最优比,差得相当远。论文用 rate-distortion 那一套算了个上限,结论是现在最好的压缩策略离这个上限还差三到十一倍。
模型能感觉到题的难易,可它对“我该想多少”这件事的估计非常粗。
它有分寸感,但分寸很糙。
把这句记住,它等下要来拆我自己的方案。
越想越错,可它凭什么是倒 U 型
第二篇,When More is Less: Understanding Chain-of-Thought Length in LLMs。今年二月,作者是北大、MIT CSAIL 和慕尼黑工大那边的几个人,Yuyang Wu、Yifei Wang、Tianqi Du、Stefanie Jegelka、Yisen Wang。
它管的是另一头。推理链长了会怎么样。
结论一句话说完。准确率跟着 CoT 长度先涨后跌,是一条倒 U 型曲线。步数加到某个点上最好,再往上加,准确率往下走。
至于为什么会往下走,论文给的解释我一看就懂。误差在累积。
CoT 把一个大问题拆成 n 步,每一步都有出错的概率。设每步做对的概率是 1 减 p,那 n 步全对的概率就是 $(1-p)^n$。
拿百分之五的每步错误率算一遍,很直观。
三步,0.95 的三次方,85.7%。
五步,77.4%。
十步,59.9%。
二十步,35.8%。
到二十步的时候只剩三成半了。链条上多一环,就多一个断掉的机会。
这一段我看得很顺,然后接着往下读,卡住了。
如果只有误差累积这一个力,那这条曲线就该一路往下掉,凭什么是倒 U?
按 $(1-p)^n$ 这个式子,n 越大结果越小,没有拐点,从头滑到底。可论文说的是先涨后跌。前面那段涨是从哪儿来的。
我想了两天没通。可恶。中间还怀疑过是不是自己看错了图的坐标轴,翻回去看了两遍,没看错。
想明白是在操场上,跟同门跑到一半的时候。
p 不是常数。
每一步出错的概率,取决于这一步要干多少活。你把一道题拆成三步,每一步都得跨一大截,那每一步的 p 就很高。你把它拆成十步,每步都很短,每步的 p 就低。
所以 n 变大的时候,$(1-p)^n$ 里的两个东西在同时动。n 在往上走,p 在往下走。
这是两个力在拔河。步数少的那一头,每步太重,抬不动;步数多的那一头,环节太多,扣不牢。两边拉扯出来的那个平衡点,就是倒 U 的顶。
我跟同门讲了一遍,他听完说,那这个最优点跟你怎么拆题有关系啊。这话说得对,而且它正好是论文接下来讲的东西。
跑完那圈我挺高兴的,那种高兴跟活干完了没关系,活一点没往前走。
实习这两个月我慢慢发现一件事。让我坐得住的那件事,好像是搞明白它为什么搞不定。把这批 query 搞定本身,反倒没那么让我上劲。这两件事在日程表上长得几乎一样,指向的下一步却不太一样。
扯远了,拉回来。
论文推了一个最优步数的式子,里面有两个因素。
一个是任务有多难。越难,最优步数越多。难题不拆细真解不开,哪怕多出来的环节会累积误差,也得拆。
另一个是模型有多强。模型越强,最优步数反而越少。强模型每一步能扛的活更多,同样的题它需要的台阶更少。
这两条合起来就是,“好的 CoT 该有几步”这个问题没有普适答案。它由题和模型两边一起定。
这里我得说一件搬结论的时候最容易漏掉的事,我自己差点漏掉,是回去翻实验设置的时候才看见的。
论文二的核心实验,是在合成的算术数据集上用不同层数的 GPT-2 做的,之后在 MATH 代数 Level 5 上做了真实任务的验证。它是在小模型和可控任务上把这条倒 U 曲线量出来的,R1 那个量级的模型不在实验里。
这不影响结论成立。控制变量本来就该这么做,你想干净地看出“模型能力”这个自变量的影响,就得能自由地换模型容量,拿 GPT-2 换层数是最直接的办法,换成几个不同的商用大模型反而说不清是能力差异还是训练数据差异。
但它确实意味着,我不能拿那个式子直接套到我的活上算出一个步数来。式子里的模型容量和任务难度,在我这边都没有对应的可测量。它给我的是方向。数值得我自己想办法。
这句不是谦虚。我真的试着套过,套到一半发现参数填不进去,最后关掉了那个文档。
论文最后基于这个发现给了个很轻的方法,叫 Length-filtered Vote。原来的做法是让模型对同一道题答好几遍,取出现次数最多的那个答案。改动只有一处,投票之前先把推理链特别长和特别短的扔掉,只在长度落在中间的那些里面投。就这一下,在几个数学 benchmark 上明显好过普通的多数投票。
我挺喜欢这个方法,因为它便宜。不训练,不改模型,它只是承认了一件很朴素的事。推理链的长度本身就是一个质量信号。太短的可能没想明白,太长的可能已经跑偏了。
尺子只有一半
把这两篇接回我手上那批 query。
论文一给我的东西可以直接搬。一道题有一个客观的、最少的思考量。搬到搜索这边,一条 query 的复杂度就可以定义成,从这句话走到能满足它的文档,中间得走几步。
零步的,关键词直接命中就完事,阿胶的作用和功效就是零步,答案文档里原样有这句话。
步数越多,就越是我要找的那种 query。
那张四栏表虽然加总的时候不可靠,四栏本身是有用的,我现在还在用,只是不再加权求和了。一栏一栏说。
第一栏,得绕几步才明白他想要什么。这一栏最核心,也最主观,前面就是在这儿翻的车。
高密度脂蛋白偏高是什么意思,一步。先认出这是个化验指标,再给正常范围和偏高的含义。
五岁孩子心肌酶高吃什么药,至少两步。先判断心肌酶高在临床上意味着什么,再考虑五岁这个年龄在用药上的限制。这两步的顺序还不能换,跳过去就答成了给成年人开药。
第二栏,query 里的词和答案里的词离多远。这一栏直接决定关键词匹配还能不能干活。阑尾炎是哪个部位疼,答案里一定出现“阑尾”,这条搜起来不费劲。游离t3那条,答案里必须出现的是甲功、甲亢这些词,而 query 里一个都没有。
我另外见过一条特别典型的,茶台烧水壶加热不到100度。有用的答案里会出现海拔、水垢、加热功率,跟 query 一个字都不挨着。用户描述的是现象,回答用的是原因的语言,这两套词天生不共用。
第三栏,他有没有把想要的东西说出口。
为什么天空是蓝色的,说出口了,他要的是原因。
孩子鼻子总是不透气使劲吸鼻子,只有现象。你不知道他要的是判断还是处理办法,也不知道他更怕的是过敏还是腺体的问题。
里面的大牙就剩一半了,这条最狠。纯现象,意图整个藏着。得先猜出他大概想知道这种情况还能不能补、要不要拔、大概多少钱,才有得可搜。
第四栏,要不要专业知识才能答。苹果为什么会掉下来,不用,生活常识够了。逾期多久信用卡会被冻结,得懂点银行的风控规则。早孕垂体泌乳素高的原因,没有妇产科的底子,写出来的东西一个字都不能信,而且这种 query 答错的代价比搜不到大得多。
四栏里任何一栏单独看都会误判。
最典型的假阳性是 oppo 耐用还是 vivo 耐用。看着像个要综合分析的题,词汇也不完全重叠,可它一点都不复杂,直接找一篇耐用性对比的评测就解决了。它长得复杂,实际不复杂。
反过来的误判也有。有些 query 词汇离得远,纯粹因为里面有个生僻词,查一下就通了,那也不算复杂。
几条放一起看才有意思。
| query |
绕几步 |
词离多远 |
说没说出口 |
专业门槛 |
| 韩币汇率 |
0 |
完全重叠 |
说了 |
无 |
| oppo 耐用还是 vivo 耐用 |
1 |
部分重叠 |
说了 |
无 |
| 签了劳动合同还算应届毕业生吗 |
2 |
得转换 |
说了 |
政策法规 |
| 里面的大牙就剩一半了 |
2 |
完全不重叠 |
全藏着 |
基础医疗 |
| 只有游离t3高了一点点 |
3 以上 |
完全不重叠 |
全藏着 |
医学 |
这张表以前有第六栏,综合判断,一个总分。现在拿掉了。
四栏是四种不同的东西,硬加成一个数就是在假装它们能通兑。一条 query 在词汇距离上得三分,和它在专业门槛上得三分,这两个三分对召回系统的意义完全不同,前者是检索方式的问题,后者是内容供给的问题,加起来那个六没有任何含义。
我现在的做法是把四栏当四个筛子串起来,一个一个过,每一栏各自给出一个“要不要留”的判断。麻烦,但不撒谎。
到这儿尺子还是缺一块。第一栏那个步数怎么定,还是靠人猜。
论文一其实给了办法。别猜,测。
拿 R1 当标准答案,这里有个洞
我原来想的校准方案是这样。人工标好的那批样本,顺手拿 R1 跑一遍,把它生成的思考过程有多少 token 记下来,然后看人工打的分和实测的 token 数相关性有多高。相关性高,说明这套打分基本靠谱。某一类 query 上两边对不上,就说明那一类的评分标准得修。
比全靠主观打分可靠,方向我到现在还觉得是对的。
但它有个洞,而且这个洞是论文一自己指出来的。
回去看前面那句话,模型有分寸感,但分寸很糙,离理论最优还差三到十一倍。
R1 实际生成了多少 token,量的是 R1 在这道题上的习惯,不是这道题需要多少 token。我拿它当标准答案,等于拿一把不准的尺子去校另一把不准的尺子。
更麻烦的是它不准的方式可能带系统性的偏。举一个我担心的情形。医疗类的 query,模型可能天生就啰嗦,因为它被训得在健康话题上要更谨慎、要多加几句免责的话。那多出来的 token 是安全策略,跟难度无关。反过来,有些真需要绕几步的 query,模型一眼看着眼熟就直接答了,思考过程反而短。
这两种情况都会让相关性算出来一片模糊,而我很可能还以为是自己的打分标准没写好,回去改标注规范,改半天没用。
那还能怎么办。
我想到的半个办法,是把论文一的实验方法搬过来,而不是搬它的结论。
论文一测断崖不靠模型自由发挥。它主动加压,一遍遍让模型压缩,二十个词、三步、不许写标点,看它在哪个长度上崩掉。崩掉那个点才是这道题的复杂度。
那我也可以对一条 query 加压。让模型在很紧的预算里说清楚“这个人到底想找什么”,从宽到紧一档一档往下收,看它在哪一档开始说不明白。开始说不明白的那一档,比它自由发挥时的长度更接近我要的那个数。它测的是这条 query 压不压得住。模型爱不爱说话这件事被压出去了。
档位我想过怎么排。从一百字起,一档一档往下收,最紧的那档只给十个字。
“阑尾炎是哪个部位疼”这种,十个字够了,右下腹疼,问部位,完事。它在最紧的那一档还站得住。
“只有游离t3高了一点点”我猜它在五十字上下就开始塌。五十字里塞得进“甲功三项之一、偏高可能提示甲亢”,塞不进“轻微偏高、单项偏高、要不要复查”这几层。再往下收到二十字,模型大概只能吐出“甲功异常”四个字的意思,那就等于什么都没说,答案文档一篇都定位不到。
它塌下去的那一档,就是这条 query 的位置。
这个办法我还没跑。它至少有两个问题我已经想到了。
一个是“说不明白”这件事还是得有人判断,主观性又从后门溜回来了一点。虽然比判断“绕几步”要容易些,毕竟“这句话有没有说清用户想找什么”比“这需要几步推理”更接近一个能达成一致的判断。
另一个是加压要跑很多遍,成本比跑一遍高一个量级,铺到海量 query 上不现实。大概只能拿它标一批种子集,再用种子集去训一个便宜的打分模型。
所以它是半个办法。
论文二在这儿也有一个很直接的约束。我们对筛出来的复杂 query,本来打算让召回模型先推理一步再去做表示匹配,用推理补上文本匹配缺的那段路。论文二的意思是这个推理不能放任自流。你要是让模型对“只有游离t3高了一点点”这句话推二十步再转成向量,后半截推理里很可能已经掺进来一些它自己编的东西,那个向量反而比不推理的时候更偏。
真按论文二的结论办,合理的做法是给推理链设个上限,而且上限跟 query 的类型挂钩。医疗、法律这种要多绕几道的可以放宽,剩下大部分 query,三到五步大概就够了。
这有点像 early stopping。知道再训下去只会更差就停在那儿,这跟认输是两件事。
至于上限具体设几步,我现在给不出来。论文二的式子套不进来,只能一档一档试。
剩下三个我没答上来的
尺子的形状我大概摸出来了,但有三个问题横在中间,一个都没解决。
第一个,在搜索里“答对”是什么。
论文一整套东西建立在能判断对错上。数学题有标准答案,模型答 24 就是对,答 20 就是错,断崖测得出来。搜索没有这个。召回回来的文档相关,可相关到什么程度算把这个人的问题解决了。
这条不解决,token 复杂度就搬不过来,得先找一个能替代“答对”的东西。我暂时只有些不成型的想法,比如拿人工判定的满足度当代理指标,可那又把主观性请回来了,绕回了我最开始那张表的老问题。也想过用点击和停留时长这类行为信号,但这类信号在医疗这种领域本来就脏,用户点进去看了很久,也可能是因为没找到、在里面翻。
第二个,长得复杂其实简单的那些怎么滤掉。
oppo 那条就是。这类 query 会稳定地骗过我那四个筛子,因为它在词汇距离和步数上看着都不低。
它们的共同点好像是,这个题已经有人替你归纳过了。网上存在大量现成的对比、盘点、总结类文档,用户的推理由文档作者提前替他做完了。可这个共同点我没法从 query 本身看出来,得看文档那一侧有没有现成的东西。
这就把问题从 query 侧推到了资源侧,等于换了个题。而且这个题还带时间性,今天没人写过的对比,明年可能就有一堆了,那这条 query 的复杂度会自己变。
第三个,怎么证明我优化好了。
这个是带我的那个人问我的。我拿着一堆分析去找他,讲得挺起劲,他听完问了一句,你先别急着给它分类,你先说说你打算怎么证明你分对了。
我当时答不上来。到现在也只答出一半。召回率、准确率这套指标对这类 query 不太好使,因为你连“该召回什么”都还没定清楚。它跟第一个问题其实是同一个问题的两头,一头在定义,一头在验收。
答出来的那一半是这样。既然说不清一条结果好到什么程度算够,那就别去说它。把两套系统在同一条 query 上召回的东西并排摆着,只问哪一边更接近这个人想要的。绝对的尺子造不出来,相对的比较还是做得动的。
这一半的代价也很清楚。它只能告诉我改动是往前还是往后走了,说不出还差多远。而且并排比是人来比,量一大就比不动了。
那批 query 现在还在我表格里。游离t3那条排第一行,我给它标了三步以上。
可我知道那个三是我猜的。我甚至说不清那个三是三步什么,步的单位到底是什么,还没定下来。
两篇论文的链接放这儿,都是今年的,都不长,读起来不费劲。
https://arxiv.org/abs/2503.01141
https://arxiv.org/abs/2502.07266
CoT 的奠基那篇是 Wei et al., Chain-of-Thought Prompting Elicits Reasoning in Large Language Models, NeurIPS 2022。对 CoT 思维链 这类推理机制感兴趣的,可以顺着这两篇往下翻一翻。