Core Concepts
AntBatchInfer是一個針對非專用集群的彈性批量推論框架,通過提供多層次的容錯能力和高效的計算資源利用,確保批量推論任務的穩定性和效率。
Abstract
本文提出了AntBatchInfer,一個針對Kubernetes集群的彈性批量推論框架。AntBatchInfer主要包含以下四個模塊:
有狀態的數據分片服務(Stateful DDS):彈性地將數據樣本分配給每個工作節點,並管理數據樣本的生命週期。它維護一個全局消息隊列,將整個數據集分成多個分片,並將這些分片插入隊列供工作節點消費。這樣可以實現工作負載的動態平衡,解決長尾節點問題。
數據處理器(Data Handler):負責數據I/O和CPU密集型的數據預處理。它與有狀態DDS協作,根據分配的數據分片從多個數據源獲取實際樣本,並對其進行預處理,然後將結果放入消息隊列供模型推論使用。
彈性控制器(Elastic Controller):負責整個批量推論作業的資源管理,包括容錯和彈性伸縮。它與Kubernetes Master通信,管理工作節點的生命週期,並根據需求彈性地增加或減少節點數量。
彈性預測調度器(Elastic Predictor Scheduler):彈性地調度模型推論的並行度,以提高計算資源的利用率。它管理推論過程中的各種進程或線程,並對它們進行細粒度的容錯處理。
此外,AntBatchInfer還針對單一模型和多模型批量推論場景進行了優化,包括管道化、節點內部和節點間的伸縮,以及針對複雜多模型推論場景的性能優化。通過大量實驗和實際應用,AntBatchInfer在穩定性和效率方面都優於現有系統,在單一模型和多模型批量推論場景下分別提高了2倍和6倍的吞吐量。
Stats
在單一模型批量推論場景中,AntBatchInfer的吞吐量為1200樣本/秒,而基線系統為550樣本/秒,提高了2倍以上。
在多模型批量推論場景中,AntBatchInfer的吞吐量為398樣本/秒,而基線系統為68樣本/秒,提高了近6倍。
與基於均勻數據分配的方法相比,基於有狀態DDS的方法在使用Nvidia A100 GPU時可以實現12%到30%的加速。
Quotes
"AntBatchInfer是一個針對非專用集群的彈性批量推論框架,通過提供多層次的容錯能力和高效的計算資源利用,確保批量推論任務的穩定性和效率。"
"AntBatchInfer在單一模型和多模型批量推論場景下分別提高了2倍和6倍的吞吐量。"