是否曾在照片中看到有人穿著一件炫酷的襯衫或獨特的服裝,并想知道他們是從哪里買來的?價格是多少?也許您甚至考慮過自己買一件。
這項挑戰激發了 Snap 的 ML 工程團隊推出 Screenshop,這是 Snapchat 應用中的一項服務,該服務使用 AI 在線定位并推薦與圖像中看到的風格相匹配的時尚商品。

Screenshop 于 2021 年集成到 Snapchat 應用中。它使用開源物體檢測和圖像分類模型開發,該模型由 Snap 的 ML 工程師在內部進行了微調。該模型檢測圖像中顯示的服裝項目類型,然后將其傳遞到時尚嵌入模型,該模型使用相似度搜索在時尚目錄中找到外觀相似的項目。

Screenshop 的 AI 制作流程最初使用 TensorFlow 構建和提供,TensorFlow 是一種廣泛使用的開源框架,用于開發機器學習和人工智能應用程序。
Snap 的 ML 工程師 Ke Ma 強調了 TensorFlow 在早期開發過程中的作用。“Screenshop 的深度學習模型最初是使用 TensorFlow 開發的,”他解釋道,“因此,在選擇推理服務平臺時,我們自然選擇使用 TensorFlow 的原生服務平臺 TFServing.”
應對多框架 AI 工作流的生產挑戰
隨著 Screenshop 服務在 Snapchat 的用戶群中獲得青睞,ML 團隊開始探索改進和改進該服務的途徑。他們很快發現,通過將其時尚嵌入模型替換為基于 PyTorch 框架的替代模型,他們可以提高語義搜索結果的準確性。
這種情況凸顯了在生產環境中部署 AI 模型的企業面臨的典型挑戰:使用不同的后端框架部署 AI 模型,而無需為每個框架管理、維護和部署定制的推理服務平臺,這是一種兩難的困境。為了解決這一問題,Ke Ma 及其團隊發現了 NVIDIA Triton 推理服務器。
“我們不想為我們的 Screenshop 工作流、TensorFlow 的 TFserving 平臺和 PyTorch 的 TorchServe 平臺部署定制的推理服務平臺,”Ke Ma 解釋道,“Triton 與框架無關的設計以及對 TensorFlow、PyTorch 和 ONNX 等多個后端的支持非常引人注目。這使我們能夠使用單個推理服務平臺為端到端工作流提供服務,從而減少了我們的推理服務成本以及在生產中更新模型所需的開發者天數。”
Triton 推理服務器是一個開源的 AI 模型服務平臺,旨在簡化和加速生產中 AI 推理工作負載的部署。它幫助企業、ML 開發者和研究人員降低模型服務基礎設施的復雜性,縮短部署新 AI 模型所需的時間,并提高 AI 推理和預測能力。該平臺支持多個深度學習和機器學習框架,包括 NVIDIA TensorRT、TensorFlow、PyTorch、ONNX、OpenVINO、Python 和 RAPIDS FIL 等。
借助 NVIDIA Triton 模型集成和模型分析器縮短投產時間
Snap 團隊成功使用 NVIDIA Triton 模型集成和模型分析器功能,加快了從 TFServing 遷移到 Triton 推理服務器的過程。
通過利用 模型集成,Screenshop 是一款無代碼開發工具,可以將 AI 模型連接到單個工作流中。Screenshop 開發團隊無需編寫任何代碼,即可將使用 Python 創建的預處理和后處理工作流集成到其工作流中,從而使他們能夠使用單個推理請求觸發整個工作流。這降低了延遲,并最大限度地減少了不同步驟之間的來回網絡通信。

圖 3 展示了如何使用 NVIDIA Triton Model Ensemble 構建包含預處理和后處理步驟的工作流,而無需編寫代碼。
該團隊還利用 Triton 推理服務器的功能,快速確定運行 Screenshop 工作流的最佳配置和設置,確保在 100 毫秒的目標延遲內實現最大吞吐量。
NVIDIA Omniverse 的一個突出特征是:Triton 模型分析器 允許用戶通過調整 GPU 上加載的并發模型的數量以及在推理運行期間分批處理的請求數量來嘗試各種部署配置。然后,它會在直觀的圖表上直觀地映射這些配置,從而有助于快速識別和部署用于生產的最高效設置。

使用 NVIDIA TensorRT 將吞吐量提高 3 倍,并將成本降低 66%
繼在 Triton 推理服務器上成功推出 Screenshop 服務后,Ke Ma 及其團隊繼續致力于提高系統性能并降低總擁有成本。他們的努力促使他們采用 NVIDIA TensorRT 該 SDK,以專門優化 NVIDIA GPU 上 AI 模型的推理性能。
“借助 TensorRT,我們得以將模型的精度從 FP32 降低到 FP16,而不會影響服務的質量或準確性。”Ke Ma 解釋道,他提到 TensorRT 的量化功能有助于減少用于表示模型參數的內存位元數量。
在編譯過程中,Screenshop 團隊應用了默認的 NVIDIA TensorRT 設置,并立即見證了吞吐量激增 3 倍,估計可降低 66%的成本,考慮到依賴該服務的 Snap 用戶數量,這一數字意義重大。
將 Triton 推理服務器擴展至 1K GPU,以滿足 Snapchat 日益增長的用戶群需求
Screenshop 只是 Snapchat 中使用 Triton 推理服務器高效處理推理請求的眾多 AI 支持服務之一。Triton 推理服務器的通用性擴展到各種應用和服務,尤其是那些依賴光學字符識別 (OCR) 的應用和服務。
“文本和表情符號是我們用戶群之間的常見溝通形式,數量已超過 8 億。”Snap 的 ML 工程師 Byung Eun (Logan) Jeon 在 近期在 GTC 上的演講 中指出:“這些文本和表情符號充滿了對我們的一系列服務至關重要的上下文信息,從 Beauty Scanner 服務(允許用戶拍攝包裝產品的照片以執行視覺搜索)到我們的內容審核和違反政策檢測服務。”
鑒于 Snap 用戶對 OCR 支持的服務的需求多種多樣,選擇能夠有效擴展的推理服務平臺對于 Logan Jeon 及其團隊來說至關重要。Triton 推理服務器與行業標準 KServe 協議的兼容性及其使用 Prometheus 監控和報告 GPU 利用率指標的能力,使團隊能夠輕松擴展其 OCR 模型。他們通過將 Triton 推理服務器集成到其 Kubernetes 引擎中,在峰值時通過超過 1K 的 NVIDIA T4 和 L4 GPU 編排服務器,確保高效的服務交付,從而實現了這一點。
借助業務邏輯腳本,輕松實現從 Jupiter notebook 到生產的過渡
Snapchat 的全球采用要求 OCR ML 工程團隊同時管理多個特定語言的物體檢測和識別模型,以準確處理和解釋圖像中嵌入的不同語言的文本。
在 OCR 的研發階段,ML 團隊使用自定義 Python 邏輯來選擇要在推理期間提供的適當語言特定模型。Logan 解釋道:“我們在測試期間利用了 Jupiter notebook 中的 Python 條件語句和循環,動態選擇正確的語言特定模型進行推理, NVIDIA Triton 的 BLS 功能使我們能夠輕松將這種自定義邏輯過渡到生產環境中,從而保持 GPU 效率和吞吐量。”
我們 Business Logic Scripting(BLS) 是 Triton 推理服務器中的一個功能集合,有助于將 ML 團隊的自定義代碼從 Jupiter notebook 平穩過渡到生產環境,從而加快其支持 OCR 的新服務的上市時間。BLS 允許您創建自定義腳本,該腳本可以根據 Python 或 C++ 中定義的條件調用 Triton 推理服務器托管的任何模型。
了解詳情
NVIDIA Triton 推理服務器 和 NVIDIA TensorRT 是 GitHub 上提供的開源項目,可以自由訪問和使用。同時,這些項目也可以作為 Docker 容器提供,從 NVIDIA NGC 獲取。更重要的是,它們是 NVIDIA AI Enterprise 的組成部分,提供企業級安全性、穩定性和支持。
尋求更快的價值實現時間的企業可以使用 NVIDIA NIM,這是一套易于使用的微服務,旨在加速各種 AI 模型(包括開源社區和 NVIDIA AI Foundation 模型)的推理。
?