AI Pulse

双3090上AI代理等待从28秒降至7秒,靠调整OMP设置

背景介绍

我在两张3090上运行 Oh My Pi + vLLM。每轮平均等待时间从28秒降至7秒,主要来自修改OMP设置:

1. 为每个角色设置显式effort level

未设置的角色默认是xhigh(极高)。显式设置后可以有效控制各角色的推理开支,避免意外高推理强度拖慢响应。

2. 调整thinking_token_budget

将thinking_token_budget设为7500,限制每个回合的思考token数量。这个预算既能保留思考能力,又不会因过度思考导致每轮等待急剧上升。

3. 增加maxTokens

将maxTokens从8k增至32k,因为之前的文件写入会被截断。更大的输出上限确保长文件能被完整生成。

4. 工具输出超过10KB时转移到文件

当工具输出超过10KB时,将其写入文件而不是保留在上下文中,避免大量输出挤占有限的上下文窗口。

5. 限制子代理数量并启用appendOnlyContext

最多使用4个子代理,并开启appendOnlyContext,让上下文只追加、不重写,保持对话稳定。这个组合在双3090上运行良好。

帖子中有更多信息,也欢迎提问。

补充讨论:常见问题与经验

u/PM_ME_DEAD_CEOS:设置thinking budget会影响质量。

u/imnotzuckerberg:我在使用club3090(dual-fast)和autoround(Q4),以及2x 3090 + nvlink。

- 我取消了thinking budget的上限(缺点是它会想很久)。
- Token窗口为256k,但压缩(contractions)大约发生在75%。
- 如果使用超过2个子代理,性能会直线下降,效果明显变差(根据OMP报告,解码速度至少低到1 tok/s)。

所以我对你的设置很好奇,你是如何让4个子代理运行得如此顺畅的?

u/Open-Adhesiveness-86:一旦你添加第三个子代理导致解码速度降至约1 tok/s,检查vLLM日志中是否有'preempted ... not enough KV cache space',或观察vllm:num_preemptions_total指标。在256k上下文下,数个长并行会话会填满KV缓存,vLLM会不断驱逐并重新计算它们。通常降低max_model_len或使用fp8 KV缓存可以解决。

阅读原文
📚 相关主题 大语言模型教程

订阅 AI Pulse

每天 08:00 · 12:30 · 18:30 · 23:50 更新