
蒸馏出个MCP工具箱
图片
清华,交大,普林斯顿和德州奥斯丁,港大等一堆学生联合完成的一篇论文(全华班)
文章虽然被冠以Distill,但是严格说和我们理解的Distill没啥关系,最早的Distill要求有训练任务和损失的交互,后来Deepseek把抽COT数据来FT也叫Distill直到这个文章,连LLM的参数都被冻结了,也算是老词新用吧!
AgentDistill 实现知识蒸馏的机制与传统的大语言模型(LLM)蒸馏方法不同。它通过以下关键方式实现知识转移:
训练无关的代理蒸馏:AgentDistill 是一种新颖的、无需训练的代理蒸馏框架。它与依赖于链式思考提示(CoT prompting)和昂贵微调的传统 LLM 蒸馏不同。
模型-上下文-协议 (MCP) 的直接复用:AgentDistill 的核心思想是直接复用由教师代理自主生成的模块化、可复用的模型-上下文-协议(MCP)。这些 MCP 是结构化的、可复用的任务解决模块。
MCP-Box 的构建与集成:
* 教师代理在任务执行过程中生成自包含的 MCP。
* 这些 MCP 会经过一个 MCP-Box 构建过程,包括抽象(移除特定示例的短语,使其参数化和可复用)、聚类(按功能分组)和整合(将功能相似的工具实现合并为通用版本)。
* 最终形成的 MCP-Box 是一个紧凑、结构化的存储库。
* 在推理时,这个 MCP-Box 会直接集成(挂载)到学生代理的工具接口中,无需检索、重排序或参数选择。
* 学生代理的运行方式:
* 学生代理(基于 SLM)在推理时策略保持冻结,不接受任何梯度更新。
* MCP-Box 充当一个可执行协议的外部库,封装了工具层面的逻辑,并采用参数化格式。
* 这使得学生代理无需进行低级代码生成。
* 学生代理仍然负责高级规划,例如决定是否调用工具、选择哪个 MCP 以及如何填充参数。
* 蒸馏的益处在于将工具调用空间限制在了一组功能性、经过验证的选项之内。这在不干扰学生代理核心推理过程的情况下,降低了生成复杂性。
所以其实这个学生并没有干什么,但是学生模型本身必须具备有很好的MCP tool的识别和调用能力,要能支持相对高的上下文能力。
剩下的事全是所谓的teacher LLM干的teacher LLM 要build成agent的方式,然后来生成它的推理路径,也就是trajectory
at的actiion 里面就有它call了什么tool来做的下游任务,只有下游任务做成了,这条带着tool的trajectory被临时收集出来。
MCP-Box 的构建是一个三步过程:抽象、聚类和整合!
先把刚才被收集起来的trajectory得抽象成函数表达,然后聚类,比如这个是做CV的,那个是做nlp的给聚类一下,这一步将同一功能组内的所有工具实现合并为一个统一的版本,包括参数统一、验证和文档化,最终生成一个可用于生产的 FastMCP 兼容的 Python 文件。例如文中写道的可以将处理不同脑区或分析模式的多个 MRI 分析工具,整合为一个支持多个参数的通用 analyze_brain_mri 函数,最后学生模型其实啥页没干,挂在上就可以使用了。
这个思路还可以,但是我个人理解是受限于任务的泛化的,最后又变成了RLVR 去调小模型来做agent一样的问题!
本文转载自熵减AI,作者:周博洋
