![]()
你有没有想过这样一个场景:一家公司同时接入了六个不同的大语言模型,GPT-3.5、GPT-4、LLaMA、Mistral……每次用户发来一条提问,系统该派给哪个模型来回答?
这听起来像个简单的调度问题,但里面藏着一个很棘手的矛盾。
先说个数据。Nectar数据集里收录了183000条提示,让GPT-4去给六个主流模型的回答打分,结果发现没有一个模型能一直赢。GPT-3.5-Turbo的胜率是18.2%,GPT-4-0613反而最高,达到31.9%,但LLaMA-2-7B-Chat只有7.3%。这意味着即便是表现最强的模型,也只在不到三分之一的场次里胜出。换句话说,如果你只用一个固定模型处理所有问题,你注定在大部分时候没有选到最优解。
那为什么不干脆做个分类器,把问题分门别类分给最擅长的模型呢?
难点就在这里:你怎么知道某个模型答得好不好?靠人工评审,费时费钱;靠更强的LLM当裁判,也要花计算资源。这篇来自Virginia Tech和Adobe Research的论文,标题叫《Online Learning with LLM Experts from Limited Feedback》,处理的正是这个左右为难的局面。
反馈是稀缺资源,不是免费午餐
这篇论文的第一个洞察其实挺朴素:模型选择这件事,天生就是在线的。
用户的提问是实时到来的,你没法提前把所有问题都收集齐了再做统一规划。每来一个问题,你得当场决定派给谁,等回答生成了,才有可能知道这个回答质量如何。但"知道回答质量"这件事本身是要付出代价的,无论是人工打分还是拿一个更强的LLM来当裁判,都不是零成本操作。
论文把这个场景形式化成了一个叫上下文赌博机的问题。
> 上下文赌博机:一种在线决策模型,系统在每一轮根据当前情境(上下文)从多个选项中挑一个执行,执行后可能获得奖励,目标是通过不断试错学习出哪个选项在什么情境下最优。
在这个框架里,每个大语言模型被当成一个"专家",一共有K个专家。每条用户提示被转换成一个d维的特征向量,用作上下文。系统一共要运行T轮,但只有m次机会能获得真实反馈,而且m远远小于T。
这个约束听起来像是给系统上了枷锁,但它恰恰反映了现实。没人愿意每次都花钱请裁判,大部分时候系统只能靠自己积累的经验做判断,偶尔才舍得花一次"评审费"去校准自己的认知。
打个比方,这就像一个新入职的实习生要在没有导师全程盯着的情况下处理客户需求。导师不可能每次都在场点评,只能隔三差五抽查几次。实习生得学会在被抽查的那几次里,尽量学到最多的东西,剩下的时间靠自己积累的判断力硬撑。如果实习生随便挑哪次工作被抽查,很可能抽查到的都是些没什么信息量的重复场景,那这几次宝贵的反馈机会就白瞎了。这正是论文要解决的核心矛盾:反馈的稀缺性,意味着你不能随便决定什么时候看答案,得挑真正有价值的时刻去看。
全信息反馈:一次看清所有专家的表现
论文先处理了一个相对简单的场景,叫全信息反馈设置。
在这个设置里,只要系统决定要反馈某一轮,就能同时看到那一轮所有K个专家的回答质量,而不只是被选中的那一个。这就好比你请了一位阅卷老师,这位老师批改试卷时,会把所有考生的成绩都告诉你,而不只是你随便点名的那个学生。
论文提出的算法叫LimFullFeed,核心思路是:每隔固定的轮数(大约每T/m轮)触发一次反馈请求,但反馈请求的不是当前这一轮,而是历史上信息量最大的那一轮。
> 协方差矩阵:在这里用来刻画系统对各个方向(特征维度)已经积累了多少信息,矩阵的行列式越大,说明系统对这些方向的了解越充分,估计的不确定性越小。
具体怎么挑"信息量最大"的那一轮?系统会计算,如果选中某个历史时刻的提示词去做反馈,协方差矩阵的行列式会增加多少,然后挑增加最多的那个。这个思路有点像磨刀,你手上有一把已经磨得比较锋利的刀(已经学到的知识),但总有几个角度还没磨到位(信息缺口最大的方向)。与其随便磨一下刀刃上已经很锋利的地方,不如专挑那些还很钝的角落使劲磨,这样整把刀的锋利度提升最快。
论文证明了,这样做能让遗憾值(regret,也就是跟"事后诸葛亮选择"相比多犯的错误累积量)控制在 $\tilde{O}(dT/\sqrt{m})$ 的量级。
> 遗憾值:衡量算法表现的核心指标,指的是系统实际选择带来的总奖励,与"如果每次都选中最优专家"相比,累计损失了多少。
这个界限有个直观的解读:当m等于T,也就是说反馈预算足够充裕、每一轮都能看到结果时,遗憾值会退化成 $\tilde{O}(\sqrt{T})$,这正好是标准线性赌博机问题里的经典结果。而反馈越稀缺,多出来的代价就是一个 $\sqrt{T/m}$ 的倍数因子,直观理解就是反馈越少,系统积累知识的速度就越慢,犯错的总量也随之水涨船高。
论文还证明了一个下界,也就是说无论你的算法多聪明,遗憾值都不可能低于某个门槛。这个下界和上界之间差了一个 $\sqrt{d}$ 的因子,作者解释这是因为算法事先并不知道未来会出现什么样的提示词,只能对整个d维空间里所有可能的方向都留有余地,这种"未卜先知式的保守"天然会带来额外代价。
论文里还设计了一个对照组,叫NoLookBack,它的策略很简单粗暴:每次决定要反馈时,就直接反馈当前这一轮,完全不回头看历史。实验显示,如果一个"对手"故意在这些反馈触发的时刻,给出跟其他时候完全不相关(数学上叫正交)的提示词,NoLookBack可能会陷入线性遗憾值的困境,也就是完全学不到东西。这也印证了为什么"回头挑最有价值的历史样本"这件事如此关键。
赌博机设置:一次只能看见一个专家的答案
现实往往比全信息设置更苛刻。
在真实的LLM路由场景里,你派给了模型A去回答,你能评估的自然也只是A的这一个回答,不可能凭空知道如果换成模型B会答得怎么样。这种"只能看到自己选中动作的结果"的设置,在赌博机理论里叫bandit反馈。
> Bandit反馈:区别于全信息反馈,在这种设置下,每一轮只能观察到被选中那个动作(此处是被选中的专家)的真实奖励,其余未被选中的选项结果完全未知。
这个约束让问题一下子变难了。因为每个专家能获得的反馈次数是不均匀的,有的专家被频繁调用、频繁校准,有的专家可能很久都没被选中过,自然也就很久得不到反馈更新。
论文提出的LimBanFeed算法,给每个专家单独维护一套协方差矩阵和参数估计,而不是像全信息设置那样共用一套。每次挑选专家时,用的是一个叫"上置信界"的策略。
> 上置信界:一种平衡探索与利用的经典策略,系统不只看某个选项当前估计的平均回报,还会加上一个"不确定性加成",对了解得还不够的选项给予更多尝试机会,鼓励探索。
系统给每个专家设了一个计数器,专家每被调用一次,计数器加一。等计数器达到某个阈值z(约等于T/m)之后,就触发一次反馈,而反馈的对象依然是历史上信息量最大的那个提示词,只不过这次是在该专家自己服务过的提示词里挑选,而不是全局挑选。
这就像一家连锁餐厅有六个厨师,每个厨师做的菜由不同的服务员分别记录顾客评价,而不是所有顾客反馈汇总给一个统一的评审团。厨师A被点单的次数多,得到的评价反馈自然也多,厨师F如果很少被派单,评价校准的机会就稀少。这种设计的代价是,某些不常被选中的专家可能长期得不到充分校准,但好处是每次反馈都精确对应到具体是哪个专家需要改进,信息不会被稀释到无关的专家身上。
论文证明了LimBanFeed的遗憾值是 $\tilde{O}(dT\sqrt{K/m})$,和全信息设置相比多了一个 $\sqrt{K}$ 的因子。这个多出来的代价很好理解:全信息设置里,一次反馈能同时给K个专家都带来信息增量,相当于花一次钱学到K份知识;而bandit设置里,一次反馈只能给一个专家带来信息,效率天然低了K倍,这个损耗最终就体现在遗憾值的界限里。
论文同样给出了下界分析,$Reg(T) \geq \frac{TK\exp(-4)}{8\sqrt{m}}$,并指出上下界之间还存在 $\sqrt{d/K}$ 的差距,作者坦言这个缺口的进一步收紧是留给未来工作的开放问题。
当专家的"出场费"不一样时该怎么办
论文还考虑了一个更贴近实际的变体:如果不同模型的评估成本不一样怎么办?
现实中,用GPT-4去评审一个GPT-3.5的回答,和用人工去评审同样的回答,花费完全不是一个量级。论文在附录里给出了扩展方案,思路是让评估频率和成本成反比。
具体来说,如果专家j的评估成本是$z_j$,那么系统就调整触发反馈的阈值,让成本高的专家被评估得更稀疏一些,成本低的专家可以更频繁地被校准。论文证明这个扩展下的遗憾值是 $O(dTm^{-1/2}(\sum_j z_j)^{1/2}\log T)$,当所有专家成本相同时,这个公式会退化回标准bandit设置的结果,逻辑是自洽的。
这个设计思路很像家庭理财时给不同渠道设置检查频率。信用卡账单值得你每月都核对一遍,因为查起来方便、成本低;但跨境投资账户可能一年才对账一次,因为每次核对都要花大量时间精力去梳理汇率、税务这些复杂因素。如果你不管三七二十一,对所有账户都用同样的频率去核查,要么是信用卡账单查得不够勤快容易漏掉异常,要么是跨境账户核对得太频繁,白白浪费时间精力。按成本调整检查节奏,才是聪明的资源分配方式。
实验:数字说话
论文在两个真实的LLM路由基准数据集上做了验证,一个是RouterBench,包含11个大语言模型对约40万条提示的评估结果;另一个是Nectar,也就是开头提到的那个183000条提示的数据集。
在Nectar数据集上(专家数K=6,特征维度d=40,总轮数T=60000),论文详细记录了不同反馈预算m下的累计遗憾值表现。
| 反馈预算m | 全信息-LimFullFeed | 全信息-NoLookBack | Bandit-LimBanFeed | Bandit-NoLookBack |
| 1000 | 672.9 | 631.6 | 3583.4 | 3789.6 |
| 2000 | 441.4 | 408.0 | **3084.1** | 3580.0 |
| 5000 | **214.1** | 218.7 | **2295.7** | 3020.7 |
| 10000 | **128.0** | 129.0 | **1839.1** | 2538.4 |
| 20000 | **73.6** | 75.8 | **1567.9** | 2090.7 |
这张表格里有个挺有意思的现象。在全信息设置里,反馈预算比较少的时候(比如m=1000),LimFullFeed和NoLookBack的差距并不明显,甚至NoLookBack数值略低。但随着m增大,LimFullFeed逐渐显出优势。论文对此的解释是:全信息设置下,即便是当前这一轮的反馈,也能同时看到所有专家的表现,信息量本来就比较大,所以"回头挑历史最优样本"这个策略带来的边际收益,要等到预算增多后才更明显地体现出来。
而在bandit设置里,LimBanFeed在所有预算水平下都稳定优于NoLookBack,而且随着m增大,两者的差距是在拉大的,不是缩小的。这符合直觉:bandit设置下每次反馈的信息量本来就少,所以选对反馈时机这件事,价值更加突出。
论文还测了运行时间。LimBanFeed的耗时随专家数K增长呈线性关系,这不难理解,因为它要给每个专家维护独立的协方差矩阵。而LimFullFeed因为所有专家共用同一套协方差矩阵,运行时间几乎不受K影响,稳定在1.5秒左右,即使K从2涨到20也几乎没什么变化。这个对比本身也从工程侧印证了两种设置背后统计结构的差异。
写在后面
读完这篇论文,有个细节让我印象很深:作者反复强调"回头看"这个动作本身的价值,不是随便回头,而是带着明确目的地回头,专挑那些能带来最大信息增量的历史时刻。
这跟人类的学习习惯其实有点像。我们复习考试的时候,聪明的做法从来不是把所有做过的题目再刷一遍,而是专挑自己错过的、模棱两可的那些题目重点复习。论文里的"挑行列式增加最多的历史样本"这个操作,本质上就是数学化的"专挑薄弱环节复习"。
还有一点值得琢磨:论文特意区分了全信息和bandit两种设置,并且证明了两者遗憾值之间恰好差了一个 $\sqrt{K}$ 因子。这个因子不是凭空冒出来的,它精确对应了"一次反馈能覆盖多少个专家"这个信息效率的差异。这种把直觉转化成精确数学表达式的过程,是这篇论文比较扎实的地方。
论文也坦诚地留下了一些没解决的问题,比如bandit设置下上下界之间还有 $\sqrt{d/K}$ 的缺口,作者明确说这是留给未来研究收紧的方向。这种诚实地划定边界的态度,反而让整个工作显得更可信。
下一次当你的手机助手自动帮你决定用哪个AI模型回答问题时,背后很可能就有类似这样的机制在悄悄运转,用有限的几次"抽查",尽量把整个系统调教得更聪明一点。
Q&A
Q1:论文提出的LimFullFeed算法解决了什么问题?
A:它解决的是在反馈次数有限的情况下,如何高效学习给不同大语言模型路由提示词的问题。算法通过回头挑选历史上信息量最大的样本来获取反馈,而不是只看当前这一轮,从而更快降低不确定性,遗憾值能做到 $\tilde{O}(dT/\sqrt{m})$。
Q2:为什么bandit设置下的遗憾值比全信息设置多了一个 $\sqrt{K}$ 因子?
A:因为全信息设置下每次反馈能同时看到所有K个专家的表现,相当于一次学到K份知识;而bandit设置下每次反馈只能看到被选中那一个专家的结果,信息效率天然低K倍,这个损耗最终就体现在遗憾值多出来的 $\sqrt{K}$ 因子里。
Q3:论文的实验是在什么数据集上做的,效果如何?
A:论文在RouterBench和Nectar两个真实的LLM路由基准数据集上做了实验。在Nectar数据集上,随着反馈预算从1000增加到20000,LimFullFeed和LimBanFeed的累计遗憾值都持续下降,且在bandit设置下始终优于对照组NoLookBack,差距还随预算增大而拉大。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.