最近在折腾MCP(Model Context Protocol)落地的项目,想把我们内部训练的PyTorch模型通过MCP server暴露给外部Agent调用。现在卡在数据流设计上:模型推理要传tensor,但MCP走的是JSON-RPC,只能传序列化数据。我目前是前端把numpy数组转base64塞进JSON里,后端再解码,但感觉这样好笨重,而且图片这种大体积数据一多延迟就上来了。看官方文档只讲了工具调用和资源映射,没具体说怎么跟推理服务(比如Triton或Ray Serve)衔接。想问问大家生产环境里是怎么处理的?是直接在MCP server里内嵌模型,还是设计成代理转发到推理集群?有没有延迟和吞吐还不错的模式?新人求指点。
楼主
24天前
MCP服务器接入深度学习框架,大家都怎么设计数据流的?
请 登录 后发表回复
全部回复
共 41 条
2楼
1天前
我们之前也踩过这个坑,base64塞JSON确实太折磨人了,大图或者大tensor一多,光序列化反序列化就吃掉不少时间。后来我们的做法是把MCP server当成薄代理层,不内嵌模型,收到请求后只做参数校验和路由,真正的推理丢给后面的Triton。数据这块改成让客户端先传到对象存储或者共享内存,JSON里只带一个引用ID和元信息,MCP server拿到ID再去拉数据送进推理集群。这样协议层始终是轻的,也避免了JSON-RPC传大payload的尴尬。不过代价是得多维护一套临时存储的生命周期和清理逻辑,稍不注意就攒一堆垃圾文件。我比较好奇你们QPS大概什么量级,如果并发不高其实内嵌模型也不是不能接受,省得链路拉太长。另外Ray Serve那块如果有现成的dashboard能直接暴露HTTP端点,是不是可以让MCP server直接转发而不是自己管序列化?