AIBrix v0.5.0 正式發佈:實現批量 API 支持

新聞
HongKong
14
02:51 PM · Nov 24 ,2025

AIBrix v0.5.0 現已發佈。此版本引入與 OpenAI 兼容的批處理 API,專為處理高吞吐、時延不敏感的離線推理與評估任務設計,有效避免對實時端點造成干擾。同時,新版本集成了全新的 KVCache 連接器(AIBrixOffloadingConnectorV1Type3),藉助其流水線式預取與分層卸載機制,顯著提升 KVCache 卸載與複用的效率。

此外,v0.5.0 將 StormService 打造為生產級的控制面,通過 PodSet/PodGroup 原語實現多 Pod 管理,提供拓撲與負載感知的路由能力,並利用 subTargetSelector 實現角色級自動擴縮,從而為 P/D 分離架構提供精細化的資源伸縮。

核心功能概覽如下:

批處理 API

AIBrix 本次更新正式加入對批處理 API 的支持。批處理 API 旨在優化大體量、對延遲不敏感的推理工作負載,是一項強大的新功能。

隨着生成式人工智能(GenAI)應用的規模不斷擴大,並非每個請求都需要即時響應。像大規模數據集評測、離線內容生成和批量數據處理等任務,常常會使實時服務接口擁堵不堪,導致資源利用效率低下和成本增加。AIBrix 批處理 API 通過允許用户異步提交大量請求來解決這一問題。通過將這些請求以優化過的數量批次處理,相較於標準在線服務,AIBrix 可以顯著提高 GPU 利用率和集羣整體吞吐量。

主要特性

  • OpenAI 兼容性: 批處理 API 被設計為可直接替代現有工作流,支持標準的 OpenAI 批處理 API(例如,/v1/batches)。

  • 異步處理: 支持“即發即忘”架構。通過 .jsonl 文件提交大量任務後,客户端應用程序可以處理其他任務,並在結果就緒後進行檢索。

  • 可配置的作業池: 支持通過可配置的作業池大小微調資源分配,以適應特定的硬件限制和吞吐量目標。

  • 增強的錯誤處理: 強大的驗證和錯誤報告功能支持請求自動重試,確保您可以追蹤大規模批處理中每個單獨請求的狀態。

快速入門

由於 AIBrix 批處理 API 與 OpenAI 兼容,對於熟悉標準大語言模型工具的人來説,上手操作十分簡單。

  1. 準備批處理輸入(requests.jsonl):
{"custom_id": "req-1", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "llama-3-8b", "messages": [{"role": "user", "content": "Hello world!"}]}}
{"custom_id": "req-2", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "llama-3-8b", "messages": [{"role": "user", "content": "Explain batch processing."}]}}

  1. 提交批處理作業(使用指向 AIBrix 的標準 OpenAI 客户端):
from openai import OpenAI

client = OpenAI(
    base_url="http://your-aibrix-endpoint/v1",
    api_key="aibrix"
)

# Upload file
batch_file = client.files.create(
  file=open("requests.jsonl", "rb"),
  purpose="batch"
)

# Create batch job
batch_job = client.batches.create(
  input_file_id=batch_file.id,
  endpoint="/v1/chat/completions",
  completion_window="24h"
)

print(f"Batch submitted: {batch_job.id}")

瞭解更多

如需完整的部署配置和 API 參考,可訪問官方文檔。鏈接:https://aibrix.readthedocs.io/latest/features/batch-api.html

KVCache v1 Connector

在 v0.4.0 版本中發佈的 AIBrix KVCache Connector,經過基準測試與內部實際部署驗證,發現了一些重要的可以提升性能的優化機會。為充分挖掘這些優化點以發揮 KVCache 卸載的潛力,在 v0.5.0 版本中實現了一系列關鍵優化,並推出了新的 KVCache Connector9(AIBrixOffloadingConnectorV1Type3)。

核心優化技術包含:

  • 流水線式 KVCache 預取和加載技術

通過讓預取、加載與計算這三個關鍵階段並行執行,以流水線充分重疊的優化方式,不僅大幅減少了空閒等待時間,消除了TPOT(每秒輸出 token 數)的延遲損耗,更讓系統吞吐性能突破原有瓶頸。

  • 分層式 KVCache 卸載機制

通過將 KVCache 卸載操作與推理各層的前向計算同步進行,有效隱藏了數據傳輸延遲。使得即使 KVCache 命中率較低時,仍能保持高效推理,確保推理引擎持續滿載運轉,實現資源利用率最大化。

相較於 v0.4.0 版本的 KVCache Connector(AIBrixOffloadingConnectorV1Type1),在 Llama 3.1 70B 模型(張量並行度=8)的測試中,v0.5.0 版本的這套組合優化方案使 TPOT 與整體吞吐量雙雙提升超過20%,同時仍保持優異的 TTFT(首 token 時延)。

生產級 P/D 分離編排方案

v0.5.0 版本將 StormService 升級為面向大規模異構 P/D 分離集羣的高級控制面。全新推出的 PodGroup API 使 StormService 能夠與協同調度生態系統(Coscheduling、Godel、Volcano)無縫集成,將緊耦合的工作節點作為統一調度單元進行編排。結合新設計的 PodSet API,StormService 現已能顯式管理多 Pod 工作節點與分片組, 即將其作為邏輯整體統一控制生命週期、拓撲結構與運行狀態,同時保持與現有單 Pod 架構的向後兼容性。

此外,v0.5.0 為複雜部署場景提供了更強大的滾動更新與重啓語義。新增的 FullRecreate 策略讓運維人員能夠以原子方式恢復異常 PodSet,避免產生中間狀態殘留;而角色升級序列功能支持按預設順序(例如:集羣內路由 → 預填充節點 → 解碼節點)在不同角色間進行安全有序的變更發佈,徹底取代隨機更新機制。這套組合方案使得高風險操作(如模式變更、路由調整、運行時升級)變得高度可預測。

spec:
      roles:
        - name: prefill
          replicas: 3
          podGroupSize: 2 # introduce new field to indicate the pod group size. for example DP or TP case.
          stateful: true
          recoveryPolicy: ReplaceUnhealthy # ReplaceUnhealthy or Recreate
          template:
            ...

路由層現已升級至支持這些編排原語。在副本模式和池化模式下,AIBrix 會優先選擇同一 RoleSet/PodSet 中的預填充與解碼節點進行配對,通過負載感知評分機制選取最空閒的候選節點,並將基於 Nixl 的 P/D 分離架構與正確的 kv_transfer_params 參數對齊,確保流量能夠抵達具備正確 KVCache 狀態的目標羣組。新增的防護機制可保證路由邏輯遵循 HttpRoute 狀態與故障條件,彌補了早期版本中存在的正確性缺陷。

此外,為 StormService 新增了角色級自動擴縮容功能,使預填充與解碼角色能根據各自指標獨立伸縮。通過 PodAutoscaler 中新引入的 subTargetSelector 選擇器,運維人員可為不同角色或資源池配置獨立的自動擴縮容策略(例如對預填充角色採用激進的擴縮容策略,對解碼角色則採用保守策略),這對 P/D 分離形態下的池化場景與異構場景至關重要。這些改進使得 P/D 分離架構不僅能實現,更能在規模化場景中保持運維整潔性。

# PodAutoscaler for prefill role
apiVersion: autoscaling.aibrix.ai/v1alpha1
kind: PodAutoscaler
metadata:
  name: ss-pool-prefill
  namespace: default
  annotations:
    autoscaling.aibrix.ai/storm-service-mode: "pool"
spec:
  scaleTargetRef:
    apiVersion: orchestration.aibrix.ai/v1alpha1
    kind: StormService
    name: ss-pool

# new Added: Select the prefill role within the StormService
  subTargetSelector:
    roleName: prefill

完整示例: https://github.com/vllm-project/aibrix/blob/main/samples/autoscaling/stormservice-pool.yaml


其他改進

v0.5.0 版本還強化了運行時層,使運維人員能夠在所有引擎上獲得更清晰一致的控制路徑。元數據服務器已完成從 Go 到 Python 的重構,並集成健康與存活探查,鏡像體積顯著縮減;下載器現能更穩健地處理遞歸式對象存儲佈局,使得實際使用中的模型與製品管理標準化變得更為容易。通過 Webhook 與輕量級封裝庫,AIBrixRuntime 邊車容器可自動注入到 Deployment 和 StormService 工作負載中,實現了指標收集、下載管理與運維操作的統一,無需再為每個推理引擎編寫定製化代碼。

在此基礎上,強化了面向多租户場景的 LoRA 與模型適配器的工作流。AIBrix 現支持將適配器伸縮至預期副本數,重構了適配器副本跟蹤機制,新增類型化封裝以降低集成難度,並允許通過運行時直接拉取 LoRA 製品。這些改進共同使得在單個基礎模型上跨多引擎、多集羣運行大量 LoRA 組件的實踐更健壯,更易於實現自動化。

自動擴縮容組件也進行了顯著的加強。v0.5.0 版本通過可重試的 RestMetricsFetcher、共享客户端/聚合器以及配置更新中的競態條件修復,統一了指標採集流程,讓擴縮容決策既更快速又更可靠。優化了 KPA 默認參數,增加指標標籤選擇器支持,僅在副本數實際變更時觸發事件,並將擴縮容歷史直接暴露於 PodAutoscaler 狀態中。這些改進使自動擴縮容從一個黑盒組件轉變為可觀測、可調試、策略驅動的系統模塊。

總體而言,這些在運行時、LoRA、自動注入與自動擴縮容方面的增強,共同推動 AIBrix 向開箱即用控制面的目標邁進。

user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.