Initial commit: obsidian to gitea

This commit is contained in:
2026-05-07 15:04:41 +08:00
commit a57afa86b4
323 changed files with 42569 additions and 0 deletions

View File

@@ -0,0 +1,130 @@
# 名词解释
- **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 有什么不同的需求