实际瓶颈终于出现。解码速度快到工具调用(CPU)成了真正瓶颈,而非解码或预填充。单张 RTX5090。将 Kenshi 移植到 Godot 项目。

Reddit r/LocalLLaMA 新闻

摘要

一位开发者分享了自己的经验:在 RTX 5090 GPU 上运行 25 个并发编码智能体时,CPU(9800X3D)成了工具调用执行的主要瓶颈,而不是 GPU 解码速度。他还分享了前端调优和智能体槽位管理方面的实践经验。

大家好,项目页面实时更新。TLDR:这个故事的教训是,想做真正的智能体编程、干实际的活,你需要一颗更强的 CPU……过去两个月我一直在折腾,想让我的 RTX5090 跑满,甚至专门为它写了自己的引擎,这里得到了“火热”的反应(嗯,源码马上放出)最近我升级了缓存的存储方式,并且让共享相同初始预填充的任务能够复用部分预填充,之后我就发现:往项目里加的智能体越多,性能反而越差——我一开始是让 12 个槽位的服务器在跑。实际上服务器处于利用不足的状态。上下文空闲、槽位空闲,GPU 平均跑到 ~700t/s 在干正事(没有贪心代码,但也包含思考过程中的工具调用等等),我完全搞不懂问题出在哪……我明明让它越来越快、任务处理得越来越好,它反而变慢了……我同时跑了 25 个智能体(为了把那 12 个槽位填满),结果它们几乎很快全都卡在 `tool call` 上,我的服务器几乎跑不动了。我终于打开了任务管理器——看的不是 GPU 也不是内存,而是 CPU。结果一目了然:每一个线程都 100% 占用,完全堵死。教训:如果你想做真正用到工具的智能体编程,就必须确保你的 CPU 扛得住。我的 9800X3D 就是跟不上这个项目里重度智能体使用带来的工具调用处理量,尽管我的引擎完全有能力跑得更快。编辑:一些补充教训:- 对前端做调优非常有意义。调优前它一股脑塞进来 2 万条 prompt,调优后因为新任务和更好的、更紧凑的任务处理,基本只有 7000 条左右。前端重构前后,端到端耗时从 43 分钟降到了 18 分钟。- 永远要比服务器槽位数多开一些智能体,因为工具使用、测试等带来的暂停是不可避免的。- 在项目的整个过程中,每次尝试下来,共享上下文都是比固定上下文更好的选择。
查看原文

相似文章