目录

赛题题目:面向开源操作系统的的大语言模型PD分离容器化推理系统设计与优化(高校赛题)

赛题说明:

随着大语言模型在线推理服务规模持续扩大,Prefill-Decode(PD)分离已成为提升资源利用率、降低首Token时延的重要架构方向。相比单体式推理服务,PD分离能够将计算密集的Prefill阶段与时延敏感的Decode阶段解耦,从而支持独立扩缩容、异构部署与更精细的资源调度。然而,在Linux容器化环境下,PD分离架构仍面临若干关键系统挑战。首先,任务被抢占、容器异常退出、节点抖动或服务升级时,请求上下文、通信状态与运行时资源难以及时恢复,容易导致服务中断时间过长。其次,PD分离任务在异常中断后,基于NCCL等通信库的多进程协同可能残留僵尸进程、悬挂通信组、显存与句柄泄漏,进一步影响后续任务调度与系统稳定性。最后,容器 PD分离架构下链路更长、组件更多,路由、排队、跨实例通信和资源竞争会显著放大端到端SLO保证的难度,导致TTFT、TPOT、P99时延和请求成功率难以稳定优化。 本赛题要求参赛者基于 Linux 系统与开源推理框架,设计并实现面向大语言模型在线服务的PD分离容器化原型系统,围绕中断快速恢复、异常通信资源治理、容器化场景下端到端SLO优化开展系统级创新,并通过可复现的Benchmark与故障注入实验验证效果。

赛题要求:

  • 基于 openEuler、openKylin、OpenHarmony 等至少一个国内主流开源操作系统开发,鼓励在更多Linux发行版上编译、运行和测试。
  • PD分离容器化实现: 基于Linux系统与开源推理框架,完成Prefill服务、Decode服务、请求路由/调度模块、监控日志模块的容器化实现。系统应支持Prefill与Decode角色独立部署、独立扩缩容以及故障隔离。
  • 开源模型与统一基线: 选用开源dense和moe架构大语言模型作为测试对象,优先支持最新模型如Qwen 3.6、deepseekV4等。要求优化前后保持相同硬件环境和软件环境,并提供可复现的Benchmark测试脚本与性能对比报告。
  • 中断快速恢复机制: 针对容器被抢占、进程异常退出、节点重启、服务滚动升级等场景,设计并实现快速恢复机制。要求至少覆盖以下一种或多种能力:请求级自动重试与迁移、通信状态重建、会话上下文恢复或快速回放、实例故障后服务能力快速恢复。
  • 僵尸进程与异常通信资源治理: 针对PD分离任务在中断、抢占、异常退出场景下产生的大量僵尸进程、悬挂通信组、显存或IPC资源泄漏等问题,设计并实现自动检测、回收和保护机制。重点考察:僵尸NCCL进程/孤儿进程自动清理、通信组异常状态识别与重建、显存或句柄等资源的泄漏控制、多轮异常后系统持续运行稳定性。
  • 端到端SLO优化: 面向容器化PD分离架构,围绕TTFT、TPOT、P99时延、吞吐量、SLO违约率、硬件使用率等指标开展系统优化。优化方向包括但不限于:面向请求特征的路由与调度、队列管理与批处理策略、SLO-aware弹性扩缩容、Prefill/Decode负载解耦与资源配额优化、跨容器通信与数据传输路径优化。
  • 分离式推理优化:面向集群的KVCache管理优化。优化方向包括但不限于:KVCache跨界点传输优化、跨节点缓存一致性问题、基于缓存命中率的调度优化、扩缩容产生的缓存丢失与冷启动问题。

    评分细则(明确评审角度、标准和分值范围):

  • 功能完整性(30分):完整实现PD分离容器化部署、独立扩缩容和路由调度机制;实现中断快速恢复机制,并完成可复现实验验证;实现异常通信资源治理机制,包括僵尸进程清理或通信组恢复。
  • 应用效果(40分): 端到端SLO优化效果显著,包括TTFT、TPOT、P99时延、吞吐量或SLO违约率等指标改善;在抢占/中断场景下,恢复时延短、请求成功率高、服务恢复平稳;多轮异常与负载波动下系统持续稳定运行,资源泄漏可控。
  • 代码规范性(20分): 代码结构清晰,模块边界明确,具备良好的可维护性与可扩展性;符合开源社区规范,提供自动化部署、测试或故障注入脚本。
  • 文档质量(10分): 文档包含技术方案、系统架构、部署说明、Benchmark方案和测试报告;文档逻辑清晰,能够说明中断恢复、异常治理与SLO优化的设计动机和效果分析。

    赛题联系人:

    杨老师 pfyang@xidian.edu.cn

    参考资料:

  • SGLang Documentation: PD Disaggregation / Router Integration: https://docs.sglang.io/advanced_features/pd_disaggregation.html
  • vLLM Official Documentation: https://docs.vllm.ai/en/latest/features/disagg_prefill/
  • Zhong Y, Liu S, Chen J, et al. {DistServe}: Disaggregating prefill and decoding for goodput-optimized large language model serving[C]//18th USENIX Symposium on Operating Systems Design and Implementation (OSDI 24). 2024: 193-210. https://www.usenix.org/conference/osdi24/presentation/zhong-yinmin
  • Wu B, Liu S, Zhong Y, et al. Loongserve: Efficiently serving long-context large language models with elastic sequence parallelism[C]//Proceedings of the ACM SIGOPS 30th Symposium on Operating Systems Principles. 2024: 640-654. https://dl.acm.org/doi/abs/10.1145/3694715.3695948

以上内容为赛题说明及参考资料。以下内容为本项目结合服务器版与 RK3588 版实际代码、部署材料和测试证据整理的项目实现与复现说明。

项目实现与复现说明

1. 项目简介

RawPD-System 是面向大语言模型在线服务的 Prefill-Decode(PD)分离推理系统,包含服务器版和 RK3588 边缘平台版。项目在 SGLang 推理框架基础上,将 Router、Prefill、Decode、资源规划、弹性控制、KVCache 管理、故障恢复和资源清理等能力组织为统一的运行与治理体系。

服务器版面向 openEuler 和 NVIDIA GPU 服务器,重点验证容器化 PD 分离、独立扩缩容、KVCache 管理、请求恢复和异常资源治理。RK3588 版面向 ARM64 单板环境,在保留上层 PD 控制逻辑的基础上,适配共享系统内存、Mali-G610/Vulkan 执行环境以及板端本地数据交接路径。

2. 应用场景

项目适用于需要将 Prefill 和 Decode 分开部署的大语言模型在线推理场景,包括多 GPU 服务器上的容器化推理服务、资源受限的 ARM64 边缘设备、模型服务的故障恢复与滚动维护,以及需要对请求、KVCache、GPU/设备资源和运行状态进行统一管理的推理平台。

3. 主要功能

  • Prefill、Decode 和 Router 的角色分离、独立部署与独立生命周期管理;
  • 服务器版支持 Prefill/Decode 多副本 Worker 池管理,以及基于请求规模、Worker 负载和 P-D 组合预计完成时间的联合调度;
  • 基于模型和运行资源的准入检查、资源规划及阶段级弹性扩缩容;
  • Socket、SHM、NCCL Layer-wise 等服务器版 KV 数据传输路径,以及 RK3588 版本地 UDS 数据交接路径;
  • KVCache 注册、状态跟踪、迁移保护、缓存感知缩容和物理缓存恢复;
  • Router、Worker、请求和会话状态持久化,支持故障后的健康检查、请求恢复和完整请求重放;
  • 异常进程、容器、端口、GPU/通信资源、共享内存、临时载荷和注册表的定向清理;
  • 模型结构、权重、量化方式、设备能力和资源预算的安全准入。

服务器版和 RK3588 版的详细架构、模块设计和技术实现分别见:

  • docs/RawPD-System-Server项目汇总文档.md
  • docs/RawPD-System-RK3588项目汇总文档.md
  • docs/项目创新说明.pdf

4. 系统环境与依赖要求

服务器版的主要验证环境为:

openEuler 22.03 LTS-SP4 x86_64
Podman
Python 3.9
PyTorch 2.5.1+cu124
SGLang 0.4.4
CUDA 12.4、NCCL
双 NVIDIA Tesla V100 32 GB GPU
Qwen2.5-3B-Instruct 等开源模型

RK3588 版的主要运行环境为:

RK3588 ARM64
Deepin 25 Crimson ARM64 用户空间
Linux 6.1.115 Keepin 内核
Mali-G610 MP4
Panthor DRM、Mesa/PanVK、Vulkan Runtime
板端 Python 运行环境
GGUF 模型、Tokenizer 及板端 libllama/GGML/Vulkan 相关动态库

服务器版的依赖版本、离线 Python 环境和镜像准备方式见 demo/server/deploy/;RK3588 版的板端环境、模型和运行库准备方式见 demo/rk3588/RK3588运行说明.md、demo/rk3588/RK3588 Lite移植说明.md 及 demo/rk3588/deploy/README.md。模型权重、服务器版虚拟环境压缩包以及 RK3588 底层运行库不全部随仓库提交。

5. 构建与安装

服务器版在 Linux/openEuler 环境中准备项目目录、Python 环境、模型和 Podman 镜像。典型步骤如下:

cd src/RawPD-System-Server
bash deploy/restore_server_venv.sh
bash deploy/build_podman_image.sh

模型准备可使用:

bash deploy/download_models.sh

如果使用已有离线环境,可按照 demo/server/RawPD-System-Server软硬件部署手册.md 和 demo/server/deploy/README.md 完成安装。RK3588 版需要先按照移植说明准备板端内核、RootFS、Vulkan/PanVK、模型和动态库,再使用 src/RawPD-System-RK3588/ 中的源码及 demo/rk3588/deploy/ 中的交付脚本,不提供面向 x86_64 主机的直接交叉构建入口。

6. 运行方法

项目根目录提供服务器版和 RK3588 版的演示入口:

# 服务器版
bash demo/server_demo.sh

# RK3588 板端
bash demo/rk3588_demo.sh

RK3588 版也可以按场景执行:

bash demo/rk3588_demo.sh check
bash demo/rk3588_demo.sh request
bash demo/rk3588_demo.sh cli
bash demo/rk3588_demo.sh kv-fence

服务器版的启动、停止、模型路径和常用故障处理命令见 demo/server/RawPD-System-Server基础指令速查表.md;RK3588 版的服务启动、停止、Smoke 检查和 systemd 服务配置见 demo/rk3588/deploy/。

7. 测试方法

测试证据和使用说明位于 tests/,其中:

  • tests/evidence/ 保存已生成的服务器版测试证据包及 SHA256 校验文件;
  • tests/README.md 给出证据包清单、完整性校验方式和全部测试命令;
  • 原始测试脚本位于 src/RawPD-System-Server/scripts/。

校验证据包:

cd tests/evidence
sha256sum -c *.sha256

在具备 openEuler、Podman、Python 3.9、CUDA/NCCL、双 NVIDIA GPU、模型文件和已恢复运行环境的服务器上,可按 tests/README.md 进入 src/RawPD-System-Server/ 执行对应的基线、Smoke、扩缩容、故障恢复、KVCache 和资源清理测试。已有证据包反映的是既定实验环境中的结果,不替代在其他硬件上的重新测试。

8. 已知限制

  • 服务器版测试结果依赖 openEuler、双 Tesla V100、CUDA/NCCL、指定模型和固定软件环境,换用其他 GPU、驱动或模型后需要重新进行准入和性能验证。
  • RK3588 版当前主要面向指定 ARM64 板端环境和已适配的模型、量化格式及执行路径;Mali-G610、Panthor DRM、Mesa/PanVK、Vulkan Runtime 以及板端 libllama/GGML 动态库属于运行依赖,不是本项目重新实现的底层驱动或完整推理框架源码。
  • RK3588 版主要验证单板内 Prefill/Decode 的本地数据交接,不等同于已完成跨节点、跨设备的分布式 KVCache 传输。
  • 故障恢复以服务状态恢复和完整请求级重放为主,不保证从中断 Token 位置无损续写。
  • 项目提交材料未包含全部模型权重、完整服务器虚拟环境和板端底层运行库,复现时需要按照部署手册准备对应依赖。
  • README 中的测试命令和证据结果用于说明复现入口与既定实验过程,性能指标会受到硬件、模型、并发度、输入输出长度和运行时配置影响。

9. 文档索引

文档或目录 内容
docs/RawPD-System-Server项目汇总文档.md 服务器版架构、环境、模块设计、实验方法和结果
docs/RawPD-System-RK3588项目汇总文档.md RK3588 平台迁移、执行链适配、部署环境和限制
docs/项目创新说明.pdf 项目创新点、已有方案对比、代码位置和验证依据
demo/ 可运行演示、部署脚本、软硬件部署手册和基础指令
tests/ 测试证据包、校验文件和测试运行说明
关于
13.7 GB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号