“Python ‘为你管理内存’”的神话导致你的代理在运行4小时后OOM


上个月并行运行了24个多代理,消耗的tokens是单个会话的10倍,却没有任何可用输出
真正的问题并不是tokens,而是没人关注的内存
Python使用引用计数加循环垃圾回收。听起来没问题,直到你通过C扩展加载numpy数组,而这些扩展没有正确递减引用。那些对象永远不会被回收。它们就那样静静地存在,逐渐增长
每处理100个tokens的上下文,你的长时间运行的代理就会进行一次tensor分配,可能不会释放。将此乘以24个并发会话,你每天可能会泄漏400MB的内存
> 只需增加更多RAM
是的,这意味着每月花费3万美元的计算资源,来弥补tracemalloc在10分钟内就能捕获的问题
查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 评论
  • 转发
  • 分享
评论
0/400
暂无评论