李博!好久没录了,最近忙什么呢?
别提了,最近一直在折腾智能体的推理链路,头都大了。不过正好,我前两天看到NVIDIA Dynamo出了个新功能,特别想跟你聊聊。
Dynamo?就那个NVIDIA年初开源的推理框架?我们组之前调研过,当时觉得就是个分布式推理的底座嘛。
对,但现在不一样了。他们加了一个叫Multi-Turn Agentic Harness的东西,说白了就是让推理框架原生支持智能体的多轮工具调用。
等一下,这事儿不是LangChain那些编排框架在做的吗?为什么推理引擎要管这个?
这就是关键了。你想啊,现在的智能体不是简单的一问一答。用户说「帮我查明天北京天气,再订个餐厅」,模型得先推理、调天气API、拿到结果、再推理、再调餐厅API,最后汇总回复。
这整个过程涉及多轮交互、状态管理、流式输出,全靠上层框架去编排的话,效率其实很差。
嗯,我理解。就像我们做产品的时候说的,能力下沉嘛。越底层的东西越应该让基础设施来搞定。
没错!而且Dynamo做了一件特别狠的事——它把流式Token输出和工具调用做了深度集成。
这我就不太懂了,流式输出和工具调用有什么关系?
你看,模型在自回归生成的时候,是一个Token一个Token往外蹦的对吧?传统做法是等模型把整段话都说完了,再去看里面有没有工具调用的标记。
但Dynamo的做法是,模型一边生成,框架一边实时解析。一旦检测到类似tool_call这种特殊标记,立刻触发工具调用,不用等。
真的假的?就是边生成边执行?
对!这就是pipeline parallelism的思路。推理和工具执行可以流水线并行,官方说在多工具调用场景下端到端延迟能降30%到50%。
这个数字还挺吓人的。但我有个问题,工具调用的参数不是JSON格式吗?那参数可能跨好几个Token生成,你怎么知道参数拼完了没有?
哎,这个问题问得好。框架内部其实维护了一个状态机,专门追踪不完整的JSON片段。它会一直攒Token,直到参数完整了才真正触发调用。
所以本质上是个流式JSON解析器。
可以这么理解,但比普通解析器复杂多了。不同模型的工具调用格式还不一样,OpenAI用function_call字段,Llama和Qwen用特殊Token标记,框架都得兼容。
这我太有感触了,我们之前对接不同模型的工具调用,光格式适配就搞了两周。
哈哈,所以说这种脏活累活就该让框架干嘛。
行行行,那还有个事我特别关心——多轮对话的上下文管理。智能体聊着聊着上下文窗口就爆了,这怎么办?
这就要说到KV Cache跨轮复用了。你知道Transformer推理的时候,每生成一个新Token都要对前面所有Token做注意力计算吧?
知道,所以才有KV Cache,把算过的Key和Value缓存起来。
对。但关键是,在多轮智能体交互里,Dynamo可以跨轮次复用这个Cache。第一轮算了1000个Token的KV值,第二轮只需要增量计算新增的部分,不用从头来。
而且Dynamo的分布式KV Cache管理,让这个复用在多GPU甚至多节点环境下都能高效工作。对于动辄几万Token上下文的智能体对话,省的显存和算力相当可观。
等会儿让我想想……就是说工具调用等待的时候,GPU也不闲着?
没错,资源动态调度。工具调用等待期间,计算资源可以释放给其他请求用,等结果回来了再重新分配。
这不就是我们产品里说的「资源利用率优化」嘛!
你们产品经理就知道起名字。
得了吧,你们研究员就知道发论文。
哈哈好好好。不过说正经的,还有一个点我觉得特别值得关注——NVIDIA把这个功能跟MoE架构放在一起讨论了。
MoE?混合专家模型?这跟智能体有什么关系?
你想啊,MoE模型里不同的专家模块可以专注不同的事,有的擅长逻辑推理,有的擅长代码生成,有的擅长理解工具调用格式。智能体场景天然需要这种多能力切换。
而且MoE虽然总参数量大,但每次只激活少数专家,计算量其实不高。比如Mixtral 8x7B总共47B参数,单次推理计算量只相当于13B的稠密模型。配合Dynamo的专家级负载均衡,在智能体场景里既能保持低延迟又能部署大模型。
这么一说,Dynamo的野心还挺大的。它不只是想做推理引擎,是想做智能体的运行时操作系统。
我觉得你这个总结比我说的好。其实整个行业都在往这个方向走——LLM推理框架从文本生成引擎演进为智能体运行时。vLLM也在加工具调用支持,TensorRT-LLM也在搞。
那这几个框架之间怎么选?
简单说,vLLM适合单机或小集群,TensorRT-LLM单次推理性能最强但分布式能力弱,Dynamo是更高层的抽象,可以把前两个当底层后端来用,在上面做分布式调度和智能体编排。
嗯,所以对我们做产品的人来说,如果要搞生产级的智能体系统,Dynamo确实值得认真评估一下。
我觉得最大的意义在于,它把智能体编排的脏活下沉到了基础设施层。开发者可以专注写业务逻辑和定义工具,不用再自己搞那些交互管理的轮子了。
说到底,推理框架这一层的进化,才是智能体真正能大规模落地的前提。光有上层编排框架,底下跑不动也白搭。
对,这就是那块关键的基础设施拼图。行了,今天就聊到这儿吧,我得回去继续调我那个智能体链路了。