CoServe-MaaS 是一个面向 MaaS(Model as a Service)平台多模型混部的资源编排与性能优化原型系统。系统基于 vLLM OpenAI API Server 扩展,在不修改 vLLM 内核的前提下,通过 MaaS Gateway、SLO 感知调度、Token-Memory Co-Scheduling、Fast Handover、可解释治理与容灾防护机制,提升多模型并发服务下的有效吞吐、成功率、SLO 达成率和资源利用效率。
GET /health
GET /models
POST /models/load
POST /models/unload
POST /v1/chat/completions
GET /stats
GET /metrics
GET /policy
POST /policy/switch
GET /explain/scheduler
GET /health/models
POST /models/recover
POST /adaptive/tick
GET /security
GET /audit
Web 控制台
服务启动后访问 http://127.0.0.1:8080/。控制台提供 Overview、Models、Scheduler、Resilience 四个工作视图,可操作策略切换、模型注册/卸载/恢复和 Adaptive control tick,并展示 SLO/P95、GPU/队列、Token Budget、调度解释、handover、熔断状态与审计事件。
CoServe-MaaS
CoServe-MaaS 是一个面向 MaaS(Model as a Service)平台多模型混部的资源编排与性能优化原型系统。系统基于 vLLM OpenAI API Server 扩展,在不修改 vLLM 内核的前提下,通过 MaaS Gateway、SLO 感知调度、Token-Memory Co-Scheduling、Fast Handover、可解释治理与容灾防护机制,提升多模型并发服务下的有效吞吐、成功率、SLO 达成率和资源利用效率。
本项目面向“研究创新-MaaS 平台中模型混部的资源编排与性能优化”赛题构建,重点覆盖:
安全模式下,监控与解释接口仍执行 API Key 和 RBAC 校验,但只读
GET/HEAD请求不消耗租户业务配额;推理请求和模型、策略等写操作才计入 请求、Token 与并发限流。该边界避免 Web 控制台的周期观测挤占真实推理额度。评审快速入口
本提交包以“真实系统、真实 GPU、统一负载、可复现证据”为主线。正式性能结论来自 华为云
openEuler 24.03 LTS-SP1 + Tesla V100S 32GB环境:两个 Qwen2.5 模型通过 两个 vLLM 实例同时驻留于同一 GPU,并由 CoServe-MaaS 网关统一调度。tests/、coserve/、技术报告第 4、5 章slo-balanced综合增益+33.22%,adaptive综合增益+26.16%report/研究创新-MaaS平台中模型混部的资源编排与性能优化-何诗雨-技术报告.pdf、docs//explain/scheduler、/security、/adaptive正式 V100S 主结果
统一设置为每种策略
180个计入统计的请求、4个预热请求(不计入统计)、相同随机种子 和请求序列,三种策略成功率均为100%。相对 FIFO baseline:完整口径、公式和分析见 技术报告与正式结果索引。
快速启动的脚本
真实 vLLM 复现需先按 openEuler 部署说明安装 CUDA 12.4 兼容环境,再执行 真实 vLLM 实验闭环。评审材料入口见 提交指南。
文档导航
系统架构
目录结构:
核心算法
核心算法为
SLO-Guard-TB:1. SLO 感知评分
调度器对每个等待请求计算综合得分:
含义:
2. Per-Priority Token Reserve
系统维护全局 token budget,并按优先级拆分:
该机制避免低优先级长请求占满 GPU 池,也避免热点模型长期挤压长尾模型。
3. Deadline-Aware Token Shaping
slo-balanced策略额外启用 deadline-aware token shaping。系统会在请求进入调度器前,根据请求优先级和deadline_ms对max_tokens做轻量收敛:该机制不是全局截断,而是只在
slo-balanced中启用,并会在响应的coserve.guardrails中记录:它的目标是优化
p95_service_ms/p99_service_ms,弥补单纯提升并发时可能带来的服务尾延迟压力。slo-balanced同时采用比real-balanced更低的全局并发与更严格的 token budget,以降低真实 vLLM 后端的并发干扰。4. Token-Memory Co-Scheduling
在请求 admit 前,调度器同时检查:
这使系统不仅能做请求级调度,还能表达模型混部中的显存竞争和快速资源交接。
5. Fast Handover
ResourceHandoverManager管理显存租约:/explain/scheduler会展示最近一次 handover 决策,包括action、batch_action、reclaimed_mb、handover_cost_ms等。运行策略
系统支持六种策略,均可通过
/policy/switch动态切换:具体表述:
功能接口
Web 控制台
服务启动后访问
http://127.0.0.1:8080/。控制台提供 Overview、Models、Scheduler、Resilience 四个工作视图,可操作策略切换、模型注册/卸载/恢复和 Adaptive control tick,并展示 SLO/P95、GPU/队列、Token Budget、调度解释、handover、熔断状态与审计事件。控制台静态资源随项目交付,不依赖 CDN,适合 openEuler 离线环境。
安全生产模式
默认不开启强制鉴权,以兼容已有 benchmark。正式部署必须设置:
客户端使用
X-API-Key或Authorization: Bearer <key>。角色权限为:/models/load只接受COSERVE_ALLOWED_MODEL_HOSTS白名单中的 HTTP(S) 端点;本地 Mock 模式允许mock://。云元数据地址、含凭据 URL、未授权私网端点会被拒绝。Adaptive 策略
adaptive使用独立的 quality-guarded profile:以slo-balanced的 SLO 约束为基础,额外提高低优先级借用能力与 aging 强度,避免在真实 vLLM 高压负载下只提升 high-priority goodput、却牺牲低优先级尾延迟。控制器周期性计算多目标风险:控制动作包括:
所有动作、信号、调整前后参数和原因均进入
/explain/scheduler,并在 Web 控制台的“闭环控制时间线”和“调度智能”区域可视化。关键能力:
运行环境要求
本地 Mock / 模拟实验
安装:
真实 vLLM / GPU 实验
安装:
openEuler + V100 32GB 双模型闭环
当前推荐验证机规格为 openEuler 24.03 LTS-SP1、x86_64、Tesla V100 32GB、 8 vCPU、64 GiB 内存和 200 GiB 系统盘。V100 的计算能力为 7.0, vLLM 0.8.5.post1 会自动使用 V0 engine,这是预期兼容路径。
先执行只读预检。该步骤会在启动模型前检查
nvidia-smi、PyTorch CUDA、pip check、模型config.json、磁盘空间、端口和上下文预算:预检通过后,先跑稳定档:
稳定档通过后,再使用
docs/real_vllm_experiment.md中的 V100 压力档。 每种策略均先完成相同请求预热,并在正式计时前重置 CoServe 指标,以减少 冷启动和固定执行顺序造成的偏差。压测期间会持续写入 GPU 时间序列和逐请求记录。验证环境:
本地快速验证
编译与单元测试:
一键 quick 实验:
完整本地实验:
输出目录:
当前 quick 实验覆盖:
启动服务
Mock 模式
PowerShell:
Bash:
切换策略:
查看解释:
真实 vLLM 模式
推荐使用统一实验器。它会先检查 CUDA、模型路径、端口和上下文预算,再顺序启动两个 vLLM,避免单卡并发初始化争抢显存:
PASS不再只表示脚本执行结束。每个模式必须生成完整请求记录,且成功率达到--min-success-rate(默认 95%);否则结果目录写入failure.txt并以失败退出。脚本会自动生成:
如果两个 vLLM 已经手动启动,只让实验器启动 CoServe 并完成真实对比:
实验脚本
离散时间排队模拟
多类型模型融合负载
Fusion 负载包含:
Fast Handover 演示
典型输出:
Fast Handover 消融
该脚本对比:
输出指标包括:
HTTP 级策略对比
默认会在本地
127.0.0.1:8091自启动 Mock Gateway,并依次切换:关键指标
实验报告重点记录:
实验结论与证据边界
正式结论采用单 V100S、双 vLLM、双 Qwen2.5 模型的统一负载实验。
slo-balanced取得+33.22%综合性能增益,adaptive取得+26.16%综合性能增益,均超过赛题 “挑战目标为 25% 或更大”的门槛。详细原始口径与局限性见技术报告第 6 章。补充实验承担不同的证明责任:
ResourceHandoverManager 当前实现为控制面的显存预算、批任务租约与
shrink/pause/resume状态机;它不宣称完成 CUDA 页迁移或 vLLM KV Cache 的物理迁移。 该边界在报告中明确披露,避免把控制面机制误写为推理引擎内核能力。提交内容
最终我的提交包仅保留一套权威源码、文档和证据,不包含 API Key、私钥、历史压缩包、模型权重 或缓存文件。评委建议按以下顺序阅读: