AI News HubLIVE
站內改寫2 分鐘閱讀

在 AWS Inferentia2 上經濟高效地部署視覺語言模型進行寵物行為檢測

Tomofun 公司利用 AWS Inferentia2 晶片將其 Furbo 寵物相機的推理成本降低了 83%,同時保持高精度和低延遲。本文詳細介紹了從 GPU 遷移到 Inferentia2 的過程,包括 BLIP 模型適配、架構設計、壓力測試結果等。

來源AWS Machine Learning Blog作者: Ray Wang

Tomofun 是一家總部位於臺灣的寵物科技初創公司,其產品 Furbo 寵物相機透過智慧攝像頭與 AI 技術相結合,能夠即時檢測寵物的吠叫、奔跑或其他異常行為,並及時向主人傳送警報。該系統的核心是計算機視覺和視覺語言模型,它們從影片流中解讀寵物的動作。

最初,Furbo 的推理工作負載執行在基於 GPU 的 Amazon EC2 例項上。雖然 GPU 提供了高吞吐量,但由於需要持續進行即時推理以支援大規模寵物活動檢測,成本高昂。為了降低成本並保持準確性,Tomofun 轉向了由 AWS 自研 AI 晶片 Inferentia2 驅動的 EC2 Inf2 例項。

挑戰:降低即時視覺語言模型的大規模 GPU 推理成本

執行先進的視覺語言模型(如 BLIP)在 GPU 例項上對於始終線上、即時推理的工作負載而言成本效益較低。Tomofun 面臨雙重挑戰:需要為數十萬臺裝置提供近乎連續的寵物行為監控,同時保持模型保真度和吞吐量,並且無需重寫已針對 PyTorch 最佳化的大部分 BLIP 程式碼。

解決方案概述

系統採用兩層架構。第一層透過 Elastic Load Balancing (ELB) 和 Auto Scaling 組託管 API 伺服器,處理來自 Furbo 相機的影像流。第二層執行推理例項,將影像送入 BLIP 模型。BLIP 模型被分解為三個元件:影像編碼器、文本編碼器和文本解碼器。每個元件透過輕量級封裝器與 torch_neuronx 結合,獨立編譯為 Neuron 最佳化的 TorchScript 工件,然後整合到推理流水線中。這種模組化方法未改變 BLIP 的原始架構。

在早期實現中,Furbo 的 API 僅將推理呼叫路由到 GPU 容器,但現在也可以將請求定向到基於 Inf2 的容器,而無需更改上游 API 或下游警報邏輯。這使得 Tomofun 能夠即時地在 GPU 和 Inferentia2 後端之間切換推理請求,從而保持高可用性並靈活擴充套件成本高效的推理能力。

Amazon CloudWatch 監控推理叢集的關鍵運營指標,包括延遲、吞吐量和錯誤率。ELB 根據 CloudWatch 指標中的請求數量自動調整例項池大小,因為每種例項型別的吞吐量基準已透過壓力測試確定,因此擴充套件決策可以直接由影像請求量驅動。

在 Inferentia2 上最佳化 BLIP

BLIP 由三個元件組成——影像編碼器、文本編碼器和文本解碼器。為了在 Inferentia2 上支援,Tomofun 將模型分解為元件並建立了輕量級封裝器,以適配輸入和輸出形狀。每個元件使用 torch_neuronx 獨立編譯,然後組合到推理流水線中。

在編譯階段,原始模型元件直接傳遞給 torch_neuronx.trace() 並編譯為 Neuron 最佳化的 TorchScript 工件。在部署階段,編譯後的子模組透過封裝器類載入,以組裝最終的 BLIP 推理流水線。封裝器僅在部署時用於載入編譯模型和格式化 I/O,從而保持原始程式碼不變。

壓力測試

Tomofun 進行了模擬真實 Furbo 相機工作負載的壓力測試。每個影片流觸發了諸如“狗在叫嗎?”、“狗在玩嗎?”或“狗在咬傢俱嗎?”等動作檢測查詢。測試證實,Inf2 例項(一個 Inferentia2 晶片,32 GB 記憶體)能夠維持所需的吞吐量並保持低延遲。與按需 GPU 例項相比,遷移到 Inf2.xlarge 例項後成本降低了 83%,且效能未受影響。

結論

透過將 BLIP 推理遷移到基於 AWS Inferentia 的 EC2 Inf2 例項,Tomofun 將 Furbo 應用的部署成本降低了 83%。遷移過程無縫,僅需輕量級包裝類,未改動 BLIP 核心邏輯。測試確認,使用 Inferentia2 不僅降低了部署成本,還保持了大規模即時推理的高吞吐量。Tomofun 計劃將更多工作負載遷移到 Inferentia2,並計劃採用 AWS 深度學習容器簡化依賴管理。