paddler
开源 LLM 负载均衡平台,balancer+agent 双组件架构支持零成本自托管 AI 推理
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
开源 LLM 负载均衡平台,balancer+agent 双组件架构支持零成本自托管 AI 推理
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
深夜,一家医疗AI公司的CTO被财务邮件惊醒——上个月的 LLM API 账单高达 12 万美元。作为一家服务数十家医院的影像分析平台,他们每天处理成千上万份影像报告,Claude API 和 GPT-4 的调用费用已经超过了服务器和人力成本的总和。更要命的是,高峰期的响应延迟让放射科医生们怨声载道。
他们不是个例。当 LLM 从"尝鲜玩具"变成"生产级基础设施",企业开始面临三重挑战:成本不可预测(按 token 计费的商业 API 价格波动剧烈)、隐私高风险(患者影像报告属于敏感数据,上传到第三方 API 合规压力大)、可靠性不足(商业 API 的限流和停机直接影响用户体验)。
intentee/paddler 正是为解决这些问题而生——一个开源的 LLM/VLM 负载均衡与推理平台,让企业能够在自己的基础设施上运行、调度和规模化部署 LLM。
Paddler 由 Intentee 团队开发,2026 年 2 月在 FOSEDM 2026 大会上进行了主题演讲《From Infrastructure to Production: A Year of Self-Hosted LLMs》,分享了一年自托管 LLM 的生产经验。目前 GitHub 获得 1595 颗星、Apache-2.0 开源许可,是当前开源 LLM 自托管领域增长最快的负载均衡方案之一。
项目的设计哲学是"less moving parts"——相比 llm-d、Docker Model Runner 等同类方案,Paddler 通过极简架构降低了运维复杂度。核心技术栈围绕 Rust 语言和 llama.cpp ggml 生态构建,充分利用 Rust 的内存安全特性和高性能异步处理能力。
Paddler 采用极简的两组件分布式架构:
Balancer(负载均衡器):作为集群的大脑,Balancer 对外暴露两个端口:
Agent(推理代理):每个 Agent 对应一个或多个推理"槽位"(slot),每个槽位独立运行一个 LLM 实例。Agent 通过管理服务与 Balancer 保持心跳连接,支持动态注册和下线。这套架构天然支持:
Paddler 3.0+ 内置了功能完善的 Web 管理面板,访问端口 8062 即可在浏览器中直观查看:
管理面板基于 Rust 的 Askama 模板引擎构建,无需额外前端依赖,保持了二进制部署的简洁性。
语言与运行时:项目采用 Rust 2024 edition 构建,充分利用 Rust 的零成本抽象和内存安全保证。异步运行时基于 Tokio,配合 Actix-web 构建 HTTP 服务。代码质量门槛极高——workspace 级别的 clippy 配置采用 deny 策略强制检查,并使用 nextest 进行高效测试。
推理引擎:内置 llama-cpp-bindings 集成 llama.cpp,支持全量 GGML/GGUF 格式的模型文件。发布配置启用 LTO(链接时优化)和单 codegen unit,最大化推理性能。
13个子包职责:
| 包名 | 职责 |
|---|---|
| paddler_balancer | 负载均衡核心逻辑 |
| paddler_agent | 推理节点管理和 llama.cpp 集成 |
| paddler_cli | 命令行工具 |
| paddler_client | Python/多语言客户端 SDK |
| paddler_gui | 图形界面(Rust Iced框架) |
| paddler_download_manager | HuggingFace 模型下载管理 |
| paddler_cache_dir | 模型文件本地缓存 |
| paddler_messaging | 内部消息通信层 |
| paddler_openai_response_format_validator | OpenAI 响应格式校验 |
Paddler 的部署体验体现了开发者对运维痛点的深刻理解。项目提供三种部署路径:
路径一(最简):下载预编译二进制
# 下载对应平台的 paddler 二进制文件
# 添加到 PATH 后直接运行
paddler balancer --inference-addr 127.0.0.1:8061 --management-addr 127.0.0.1:8060 --web-admin-panel-addr 127.0.0.1:8062
paddler agent --management-addr 127.0.0.1:8060 --slots 4
路径二(推荐):Docker Compose 一键集群 example/compose.yaml 定义了完整的双 Agent 集群拓扑,一行命令启动:
cd example && docker compose up
路径三(源码构建):Rust 1.88+ 环境下 make build,适合需要定制裁剪的用户。
硬件需求方面,CPU 和 GPU 均可运行,但 GPU(NVIDIA CUDA)能显著提升推理吞吐量。内存需求取决于加载的模型大小(Llama-7B 约 4GB 显存,Llama-70B 需要多卡),相比商业 API 的按调用计费,自托管的边际成本趋近于零。
尽管 Paddler 在架构设计上非常克制,但仍有几个不可回避的现实问题:
1. llama.cpp 生态的局限:llama.cpp 在推理效率上已相当成熟,但在复杂推理任务(Chain-of-Thought、Function Calling)上相比商业闭源模型仍有差距。对于需要最高质量输出的场景,Paddler 目前更适合作为补充而非替代。
2. 多模态支持的新手墙:v3.0 开始支持 VLM(视觉语言模型),但多模态模型的文件格式和推理配置比纯文本模型复杂得多,官方文档对这块的说明还不够详细。
3. 集群管理的运维门槛:虽然比 K8s 方案简单得多,但分布式 LLM 集群的状态管理(模型版本、槽位分配、故障恢复)仍需要一定经验,配套的监控告警方案需要用户自行建设。
4. GPU 驱动的硬依赖:CUDA 驱动的安装和调试是 Linux 新手的常见坑点,项目文档对此着墨不多。
Paddler 的出现反映了一个更宏观的趋势:LLMOps 的民主化。2024-2025 年,随着开源模型质量快速逼近 GPT-4,企业开始重新评估"自托管 vs 商业 API"的成本收益比。Mistral、Qwen、DeepSeek 等开源模型的崛起,为 Paddler 这类负载均衡平台提供了坚实的模型基础。
从 GitHub 增长曲线看,Paddler 目前 1595 星的体量虽然不大,但 Apache-2.0 许可的生产级实现、极简部署哲学、以及对 llama.cpp 生态的深度集成,使其在中小规模自托管 LLM 场景中具有独特的竞争力。随着 2026 年更多企业寻求"AI 成本可控化",Paddler 这类工具的市场空间值得持续关注。