Files
obsidian/projects/moe-autoscaling/Bailian Arch.md

5.5 KiB
Raw Permalink Blame History

名词解释

  • CPFS: Cloud Parallel File Storage. CPFS provides a unified namespace and supports concurrent access of hundreds of machines. CPFS also provides an I/O throughput of tens of GB/s and millions of IOPS to ensure a sub-millisecond latency.
  • ODPS (MaxCompute): MaxCompute (previously known as ODPS) is a general purpose, fully managed, multi-tenancy data processing platform for large-scale data warehousing. MaxCompute supports various data importing solutions and distributed computing models, enabling users to effectively query massive datasets, reduce production costs, and ensure data security.
  • CEN: Cloud Enterprise Network. CEN uses transit routers deployed in different regions to build a full-mesh network on top of the Alibaba Cloud global transmission network.
  • BladeLLM: BladeLLM is an inference engine tailored for large language model (LLM) optimization and high-performance model deployment. BladeLLM has an advanced technical architecture and provides a user-friendly interface and outstanding performance to address new opportunities and challenges in LLM fields. This makes BladeLLM a suitable choice for enterprises that want to deploy LLMs and use the LLMs to perform inference.

Arch

!250716-011140.png

百炼的资源池的计算任务有 4 层:

  • 实时推理任务
  • Batch 推理任务
  • 闲时训练任务
  • 闲时数据处理任务

网关

接口协议层面提供了标准的 HTTPHTTP SSE 和 Websocket 的接入 用户 API 的接入、鉴权、路由、限流、协议转换、计量、计费(部分)、内容安全和所有与之配套的业务逻辑 网关层同时作为平台的基础服务层,提供 Apikey、文件、用户空间、资源权限等基础服务能力

model serving

重构前:每个 model 部署一个 allinone简单理解为一个 model 带着所有的 agent/plugin 作为一个最小单元进行部署。 !250715-192813.png

重构后:每个 agent/plugin 单独部署(必然趋势),那么确实会存在 gateway -> agent1 -> gateway -> agent2 -> ... 这种不断通信的模式。尤其在 model 的 output 越来越长、模态种类越来越多(图片、视频)的场景下,通信开销确实不可忽视。

Q: 不同 agent 之间的数据如何传递?都需要经过网关再发给另一端吗?是否存在一个 global storage 存放不同 agent 的 output实现共享那么也需要考虑 global storage 内的隔离)

!250715-135101.png

VL model

通过一系列一体化工作来减少图片/视频的传输,否则所有的图片/视频数据在经过每个节点时都需要传输,带来大量的开销。

!250715-202224.png

!250715-202246.png

!250715-202304.png

global batching

方案:

在Global Dynamic Batching的设计上我们选择使用拉模式来进行调度一句话概括为API Server先将请求发送至Redis全局队列推理节点Model Serving从全局队列中拉取请求。

Claim:

RR模式负载不均衡 RR模式所有请求在调度层的视角下是相同的LLM请求的差异性会导致负载不均衡

模型服务的容量难以评估: 每个LLM请求的生成长度是未知数无法准确评估下一时刻模型服务的容量

长尾延迟: 在集群整体水位较低的情况下也会出现非预期的长尾延迟请求Prefill聚集

低时延迟API Server和Turbo对Redis的操作耗时在毫秒级别

但是每个推理节点主动从全局队列拉时,如何选择拉哪个请求?确实主动拉取的方案能够保证负载均衡和可靠性,但 KVCache 亲和性如何考虑?

n 个请求时,k 个 instance$k < n$$O(nk) \to O(n^2)$,若每个节点都需要独立判断 KVCache 亲和性

只拉指定位置的请求 !250716-012653.png

且每个节点不知道其它节点的状态,容易陷入非全局最优的局面。

batch

财年batch api日调用占比商业化模型大盘20%带动资源利用率提升10

技术面临两大挑战

  1. 如何高速稳定的处理用户任务 长请求qps要大于2.5万+ 有状态考虑ACID不能丢、不能重复、状态一致、失败重试

  2. 不增加额外成本不影响在线api的SLO 不能为batch准备GPU资源在线闲时的资源有多少如何给batch使用

  • 用户任务并发,改为用户模型任务并发,解决用户多模型任务排队问题

调度策略升级requestId排队改为batchId排队

  • 解决查request表慢sql问题提升整体qps从1000qps提升至6000+qps
  • 多个batch同时调度长短请求混合减少模型服务突发扩缩容次数
  • 灵活调度策略,方便设置高优先级用户

「解决查request表慢sql问题提升整体qps从1000qps提升至6000+qps」无法理解是否说明查 sql 表成为了比 batch 推理更大的 bottleneck

Q: ToB 场景中 online 和 batch 的需求分别占多少?

serverless

TBD

无影 AgentBay

TBD


「目前百炼上架、更新、下架一个基础模型服务需要很多团队配合完成」,每个模型上线需要:商业化研发:设置模型计量、计费配置;测试:模型出账、配置验证

这件事听起来非常麻烦,是否有统一的设置方案

PAI为百炼提供模块功能例如拓扑感知的POD分配策略。合作的团队不止有PAI例如模型启动加速的工作也会有更底层的阿里云团队参与。

Thinking

batch 任务和 online 任务处理时的区别,对 MoE 有什么不同的需求