predibase/lorax

Multi-LoRA inference server that scales to 1000s of fine-tuned LLMs

它解决了什么问题

LoRAX(LoRA eXchange)通过让上千个微调的大型语言模型(LLM)在单个 GPU 上共存,降低了服务这些模型的成本和复杂度。它消除了为每个基础模型的微调版本都必须配备独立 GPU 的需求,否则成本将高得难以承受。

它如何工作

LoRAX 使用共享的基础模型,并在每次请求时动态加载特定任务的 LoRA 适配器。它采用了多项优化技术以保持高性能:

  • 动态适配器加载: 来自 HuggingFace、Predibase 或本地文件系统的适配器会即时加载,且不会阻塞其他请求。
  • 异构连续批处理: 针对不同适配器的请求会被打包到同一批次,以保持吞吐量和延迟的稳定。
  • 适配器交换调度: 异步系统会预取并在 GPU 与 CPU 内存之间搬移适配器,以优化吞吐量。
  • 优化推理: 利用张量并行、量化以及 Flash‑Attention、Paged Attention、SGMV 等专用 CUDA 核心,提高效率。

适用人群

需要在大规模部署和服务多个微调 LLM,且不想牺牲性能或大量占用 GPU 内存的开发者和机器学习工程师。

亮点

  • 大规模可扩展性: 在单个 GPU 上服务上千个微调模型。
  • 兼容 OpenAI: 通过兼容 OpenAI 的 API 支持多轮对话。
  • 生产就绪: 包含 Docker 镜像、Kubernetes Helm Chart 以及 Open Telemetry 用于分布式追踪。
  • 灵活模型支持: 兼容 Llama、Mistral、Qwen 等架构,支持通过 PEFT 与 Ludwig 训练的适配器。