Superhuman與Databricks攜手打造200K QPS推理平臺
Superhuman從自建vLLM堆疊遷移到Databricks FMAPI Provisioned Throughput,現以200K+ QPS和亞秒級P99延遲服務自定義LLM。聯合最佳化實現了每GPU吞吐量提升60%(每H100 pod從750 QPS提升至1,200 QPS),透過FP8量化、消除CPU端開銷和最佳化Hopper架構注意力核心達成,且無質量回歸。Databricks FMAPI透過生產級負載均衡、自動縮放和快速容器啟動,可靠擴充套件至250+ GPU。
Superhuman,這家提供包括Superhuman、Coda、Superhuman Mail和Superhuman Go在內的生產力平臺,每天為超過4000萬使用者提供服務,覆蓋數十種語言。其AI通訊助理能在使用者書寫時即時提供正確性、清晰度、語氣和風格方面的建議。這些即時建議背後是一個高度複雜的自定義AI模型,以巨大規模提供服務:峰值流量超過每秒20萬次查詢,P99端到端延遲低於1秒,且需保證4個9的可靠性。
為了支撐這一規模,Superhuman此前使用基於vLLM的自建推理堆疊,並輔以內部訓練和模型管理工具。然而,隨著模型迭代,維護成本日益增加:每次模型更新需數月手動效能調優,運營負擔(容量規劃、效能調優、自動縮放)佔用了本應聚焦模型質量和產品創新的團隊精力。Superhuman需要一位平臺合作伙伴,能夠為推理堆疊的效能和延遲SLA做出承諾,並共同投入工程資源以滿足要求。
Databricks模型服務平臺(FMAPI Provisioned Throughput)成為最終選擇。雙方團隊首先定義了嚴格的即時延遲SLO:P99延遲低於1秒,且在Superhuman內部評估集上無質量退化。為實現這一目標,雙方在多個層面展開合作。
在負載均衡方面,預設的Kubernetes輪詢在低QPS下表現良好,但在高QPS下會導致請求分佈不均,引發熱點和尾延遲飆升。Databricks團隊採用了基於“二選一”冪次選擇演算法的自定義負載均衡器:端點發現服務(EDS)持續監控Kubernetes API,為每個請求取樣兩個候選Pod,並路由到活躍請求更少的那個,從而避免熱點。
自動縮放策略同樣關鍵:系統跟蹤所有Pod的平均請求併發數,並透過基準測試得出每個Pod的最大可持續RPS,設定併發目標。縮放策略不對稱——快速擴容、保守縮容——以避免抖動導致的延遲尖峰。雙方透過聯合影子測試發現了引數調優中的邊緣情況並修復了問題。
容器啟動速度最佳化方面,Databricks採用了映象加速技術,將標準gzip格式映象轉換為適合延遲載入的塊裝置格式。容器執行時僅拉取後設資料即可啟動應用,檔案讀取時按需從遠端映象倉庫獲取實際塊內容並快取。這使容器啟動時間從數分鐘降至數秒。
執行時最佳化是提升每Pod吞吐量的核心。透過FP8量化——對注意力投影和MLP投影使用每通道縮放——獲得了高達30%的吞吐量提升。雙方迭代確定了量化層組:MLP投影從一開始就量化,注意力層經測試無質量退化後也啟用量化。此外,消除CPU端瓶頸貢獻了額外20%吞吐量:引入多程序RPC伺服器,多個CPU程序並行準備和分發工作到GPU;用C++呼叫替換Python級張量操作;實現非同步排程使CPU後處理與下一GPU前向傳播並行。這些最佳化使每H100 Pod的吞吐量從750 QPS提升至1,200 QPS,增幅60%。
目前,Superhuman正將更多模型遷移至Databricks,涵蓋不同規模、任務型別和延遲要求,並更廣泛地採用AI平臺用於訓練、實驗跟蹤、評估、模型註冊和代理追蹤。這一大規模平臺的建設是雙方公司的共同努力,也是一次非凡的學習體驗。