# 名词解释 - **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 推理任务 - 闲时训练任务 - 闲时数据处理任务 ## 网关 接口协议层面提供了标准的 HTTP,HTTP 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 有什么不同的需求