Continuous Batching 连续批处理
原始论文题目:
Continuous Batching — ORCA: a distributed serving system for Transformer-based generative models
关键词:
Continuous Batching, iteration-level scheduling, selective batching
1.迭代级调度(iteration-level scheduling)
Orca系统又由几个关键组件组成:
Endpoint,Scheduler,Execution Engine,Request Pool
- Endpoint一般是(HTTPS或者gRPC)用来处理推理请求(inference requests);
- 所有的requests被放入到Request pool当中,并被scheduler监控;
scheduler 从request pool中选择requests,并放到execution engine上去运行一个模型迭代(run a model iteration),并从execution engine中收取输出tokens,再更新到request pool中; - execution engine执行张量运算,以及多个GPU并行运算;
- scheduler动态的决定在每一次迭代中,哪些requests要被处理,一旦一个请求完全被处理完毕,那么这个请求就会被从request pool中移除,并发送给endpoint;
不同于那些通过多次迭代直到所有迭代全部完成的传统批处理方法,ORCA的scheduler可以调整在每次迭代过程中哪些请求要被处理。
上面图片是原始论文中ORCA系统overview
图中虚线的部分表示每次execution engine的迭代都涉及到的相关组件。
x i j x_{ij} xij