ScaleLLM
高性能生产级LLM推理引擎,支持张量并行、投机解码与多格式量化
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
高性能生产级LLM推理引擎,支持张量并行、投机解码与多格式量化
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
当你需要在企业内部署一个 70B 规模的大语言模型,同时支撑几十个并发用户实时对话时,传统方案往往面临两难:要么推理速度慢得令人沮丧,要么部署复杂度高到需要专职 SRE 团队维护。ScaleLLM 正是为解决这一痛点而生——它将 vLLM、FasterTransformer 等前辈项目的精华技术与自研优化内核结合,打造了一套面向生产环境的 LLM 推理解决方案。
ScaleLLM 由 VectorCh AI 团队开发,GitHub 目前拥有 500 颗星,被 14 个热门话题标签覆盖(cuda、llm-inference、speculative、production 等)。2023 年 11 月首次发布,2024 年 6 月登陆 PyPI,2025 年 1 月完成了自研 Attention kernels 的重大优化。值得关注的是,2025 年 8 月京东开源的 xLLM 高性能推理引擎也将 ScaleLLM 作为底层运行时依赖,表明其在工业界已获得实质认可。
ScaleLLM 的技术架构充分吸收了 vLLM 的 Paged Attention 思想,并在此基础上做了大量深度优化。
自研 CUDA Kernels: 项目在 src/kernels/ 目录下实现了大量定制化 CUDA kernel,包括 Flash Attention 风格的融合 kernel(fmha_block.h)、分组 GEMM(Grouped GEMM for MoE)、KV Cache kernel 等。特别值得注意的是 Attention 模块同时支持 MLA(Multi-head Latent Attention,如 DeepSeek 系列)和标准 MHA 两种机制,分别有独立的 CUDA 实现(sm80_mha_launch.cuh / sm80_mla_launch.cuh),体现了对不同模型架构的广泛适配能力。
连续批处理(Continuous Batching): 与 vLLM 一脉相承,ScaleLLM 采用迭代级调度(iteration-level scheduling),在请求级别动态 batch,实现 GPU 利用率和吞吐量的最大化。结合 Chunked Prefill(将长 prompt 分块处理)技术,有效缓解了长序列场景下的"气泡"问题。
Speculative Decoding(投机解码): 支持 draft model 驱动的投机解码,通过小模型(如 Gemma-2B)先生成若干 token,再用大模型验证,可显著加速推理。代码位于 src/speculative/,包含 speculative_engine.cpp 和 rejection_sampler.cpp 两个核心组件。
量化支持: 原生支持 GPTQ 和 AWQ 两种量化方案,对接 autogptq 和 awq 库,支持 INT4/INT8 精度压缩,显著降低显存占用。src/layers/quantization/ 下有多个量化实现后端(Marlin、ExllamaV2、AWQ)。
张量并行(Tensor Parallelism): 内置多 GPU 张量并行,Qwen-72B 这类超大规模模型可在多卡环境下分布式推理,由 src/model_parallel/ 和 src/layers/linear/multi_parallel_linear.cpp 实现。
ScaleLLM 采用经典的多层分离架构:
scalellm/serve/):api_server.py 提供 OpenAI 兼容的 REST API,支持 /v1/chat/completions 和 /v1/completions 两个端点,底层通过 llm.py 调用 C++ 引擎。src/engine/):llm_engine.cpp 是核心调度器,配合 scheduler(continuous_scheduler.cpp)、batch(动态批处理)、worker(GPU worker)完成推理执行。src/memory/):block_manager + block_allocator 实现 Paged Attention 的 KV Cache 管理,支持 Prefix Cache 共享。gateway/):独立的 gRPC-HTTP gateway,通过 protobuf 定义 chat/completion 接口,既提供 HTTP REST API 的兼容性,也为高性能 gRPC 通信留下扩展空间。src/huggingface/src/lib.rs):通过 Rust binding 接入 HuggingFace tokenizers,确保分词效率。安装非常友好,PyPI 一行命令即可:
pip install -U scalellm
python3 -m scalellm.serve.api_server --model=meta-llama/Meta-Llama-3.1-8B-Instruct
从源码编译则需要 CMake、CUDA Toolkit 和 PyTorch,门槛稍高,但项目提供了完整的多阶段构建 Dockerfile,开发者也可直接基于该 Dockerfile 构建。
配合 Docker 化的 Chatbot UI 可快速搭建可视化对话界面,不过核心推理服务本身没有 docker-compose 一键编排,需手动管理服务依赖。
README 明确列出的限制只有一个:仅支持 Turing 架构以后的 NVIDIA GPU(即 RTX 20 系列及更新的 Ampere、Ada Lovelace、Hopper 架构)。这意味着 Tesla V100 等老卡无法使用,对遗留基础设施有一定约束。
ScaleLLM 代表了 LLM 推理领域的几个重要趋势:开源推理引擎的持续分化(不再只有 vLLM/TGI 两个选择)、CUDA kernel 自研优化的回归(摆脱对第三方 fused attention 库的依赖)、以及投机解码从研究走向生产。随着 xLLM 的采用,ScaleLLM 在国内工业界的落地正在加速。