Switchyard:NVIDIA的开源路由库

💡 原文英文,约1900词,阅读约需7分钟。
📝

内容提要

NVIDIA NeMo Switchyard是一个开源路由层,位于AI代理和模型之间,按请求智能选择模型以降低成本。教程演示了从随机路由到内容感知路由的升级,包括配置YAML、启动服务器、测试简单与复杂请求,以及基于进度或升级的路由策略。最后强调通过指标测量路由效果,优化质量与成本平衡。

🔎

延伸解读

路由策略的适用场景

Switchyard 提供了多种路由策略,各有侧重。随机路由适合 A/B 测试和验证代理配置;确定性路由(基于分类器)适合根据请求难度预先选择模型;阶段路由(stage_router)则针对多轮任务,根据代理的进展和信号动态调整;升级路由(escalation_router)让弱模型先尝试,在出现持续困难时再升级到强模型。选择哪种策略取决于你的工作负载类型和优化目标。

成本与质量的权衡

文章强调,路由器的价值不在于分类准确率,而在于能否在降低成本的同时保留强模型的大部分质量。通过对比始终用强模型、始终用弱模型和路由器三种配置,可以绘制出实际工作负载的质量-成本曲线。示例中,路由器以 $9 的成本实现了 89% 的任务成功率,接近强模型 92% 的效果,而成本远低于强模型的 $20。

实施建议与注意事项

作者建议初次实验时不要直接使用复杂的阶段或升级路由,而是从两个模型开始,分别测量它们的性能,然后使用加权随机路由验证设置,再引入基于能力的路由。此外,注意 API 密钥不应直接存储在配置文件中,而应通过环境变量引用。启动服务器时,配置错误会导致启动失败,因此启动过程本身就是一种验证。

Q&A

Switchyard是什么?它解决什么问题?

Switchyard是NVIDIA推出的一个开源路由层,位于AI代理和模型之间,按请求智能选择模型,以避免所有请求都发送到昂贵的顶级模型,从而降低成本。

如何安装Switchyard?

可以通过uv工具安装:`uv tool install "nemo-switchyard[cli,server]"`,或者使用Cargo安装原生Rust服务器:`cargo install --locked switchyard-server`。

Switchyard的随机路由配置中,strong_probability参数的作用是什么?

strong_probability参数指定请求被路由到强模型(如gpt-4o)的概率,例如0.3表示约30%的请求使用强模型,70%使用弱模型。

Switchyard的智能路由(deterministic)是如何工作的?

智能路由使用一个分类器(如gpt-4o-mini)来评估弱模型能否成功处理请求,并输出p_solve值,根据阈值决定将请求路由到强模型还是弱模型。

Switchyard支持哪些路由策略?

Switchyard支持随机路由(random_routing)、确定性路由(deterministic)、阶段路由(stage_router)和升级路由(escalation_router)。

如何评估Switchyard路由的效果?

可以通过Prometheus指标和JSON统计来监控请求、错误、延迟等,并对比始终使用强模型、始终使用弱模型和路由器的成本与质量,以判断路由是否经济有效。

Switchyard的升级路由(escalation_router)与确定性路由有何不同?

确定性路由在请求前预测难度并分配模型,而升级路由先让弱模型尝试,若持续出现困难(如多次失败)则升级到强模型,更适合长会话中难度变化的情况。

使用Switchyard时,如何配置API密钥?

通过环境变量设置API密钥,例如`export OPENROUTER_API_KEY="your-key-here"`,并在配置文件中使用`${OPENROUTER_API_KEY}`引用,避免直接写在配置文件中。

🏷️

标签

➡️

继续阅读