目前开源了很多LLMs大模,虽然GPT4o一直占据第一位的宝座,但是并不是在每个领域都很强。

例如:写代码的Code-LM、做数学的meta-math,做图文多模态的Macaw-llm等等。都有自己的强项。

PolyRouter提供了一个多LLM路由系统,该系统根据特定需求动态将查询路由到最合适的专家,从而优化性能,减少响应时间和成本,同时提高输出质量。

AI RAG好用的3种Router

PolyRouter 解决的问题

·解决了与不同领域专门化的各种LLMs高效互动的挑战

·平衡了查询执行吞吐量、不同LLM带来的不同成本和延迟、以及多路LLM高效查询三个问题。

PolyRouter与Moe的区别

·MoE架构包含一组专家模型,这些模型被训练以专门处理不同的数据区域,同时还有一个门控网络模型,负责确定每个专家对最终预测的贡献

·LM路由方法可以视为MoE架构的一种特殊情况,其中预测路由模型充当门控机制,而可用专家则是LLM的集合。

PolyRouter 提出的路由方案

1.随机路由器(Random-Router):该方法随机选择一个专家模型来执行每个测试查询。它重复此过程多次,并根据各种指标评估性能。

2.kNN路由器(kNN-Router):kNN路由器使用句子变换器对训练查询进行编码,并根据余弦相似度找到与测试查询最接近的训练查询。然后,它选择在最相关的训练查询中表现最佳的专家模型来执行测试查询。

3.BERT路由器(BERT-Router):该方法在各种评估标准下优于所有其他专家模型和路由方法。它根据特定需求动态将查询路由到最合适的专家,从而优化性能,减少响应时间和成本,同时提高输出质量。

如何训练好一个PolyRouter

AI RAG好用的3种Router

第一阶段:准备router数据

1.选择专家模型及数据集:首先,需要找到适合特定领域(如生物、编程、物理科学)的指令数据集和模型专家,以便路由模型学习传播相关的查询提示。

2.前向传播与收集指标

  • 在第一步中,对每个专家模型进行前向传播,以收集训练和测试路由模型所需的相关指标。
  • 在第二步中,创建专家预测数据集。有必要收集以下指标:负对数似然(negative log likelihood)、BERT相似度评分(BERTSim)、推理时间(以秒为单位)、总输入标记数和总输出标记数。

3.生成软标签

  • 创建专家预测数据集后,选择收集的一个指标来生成软标签(第三步)。
  • 当前工作中,使用BERTSim分数来创建软标签,并训练路由专家模型分类器。使用软标签的目的是希望路由模型学习专家的预测性能排名。

4.通过softmax函数生成软标签

  • 对于每个专家模型和每条指令记录,通过带温度的softmax函数生成软标签。例如,对于指令记录r-iexx,专家(类别)softmax概率φr可被表示为:φr(x; T)=p(T)Pj∈E exp(T),其中E为专家总数,T为温度值,x为指标分数的向量。

5.参数设置:在评估中,基于BERT相似度分数生成专家的软标签,并设置温度值T=10。

该过程有助于为路由模型准备合适的输入数据,以提高其预测准确性和效率。

第二阶段:训练router

1.向量化表示:将指令记录通过路由器的嵌入模型(如Bag-of-Words、TF-IDF、BERT或其他语言模型)进行处理,以生成它们的向量化表示(步骤5)。

2.训练分类器:使用生成的嵌入训练提示到专家的分类器(步骤6)。这可以通过非参数的监督学习方法(例如kNN)、经典深度学习模型(例如多层感知器MLP)或更高级的语言序列预训练模型(如BERT)来实现。

第三阶段:Router的应用

1.查询处理

  • 新用户提交查询时,路由器首先对查询文本进行分词和编码,使用的是第2阶段调优后的嵌入模型(步骤8)。
  • 然后,路由器对训练或微调后的分类模型(如MLP、BERT)进行前向传递,预测最相关的专家模型(步骤9)。

2.专家模型选择:根据分类模型的预测结果,路由器选择相应的专家提示适配器,提交并执行查询。

3.查询响应:查询执行完成后,路由器接收来自专家模型的回复,并将其转发给最终用户(步骤10)。

4.监控与调优:在路由器的部署期间,平台提供必要的监控能力,用于排查问题和调整路由模型,例如请求数量、查询的语义上下文、专家模型的命中频率以及总体成本等。