☁️較早收集於 4m

利用 AWS 上的 SOCI 縮短容器冷啟動時間

利用 AWS 上的 SOCI 縮短容器冷啟動時間
PostLinkedIn
☁️閱讀原文: AWS Machine Learning Blog

💡學習如何利用 AWS SOCI 縮短大型 ML 模型的容器啟動時間,提升推論服務的擴展性。

⚡ 30-Second TL;DR

有什麼變化

實作 SOCI 以啟用容器映像檔的延遲載入 (lazy loading),無需等待完整下載。

為什麼重要

透過大幅縮短冷啟動時間,開發人員能更快速地擴展機器學習推論服務,並提升無伺服器或自動擴展環境中的整體系統回應速度。

下一步行動

將 SOCI 整合至您的深度學習容器 CI/CD 流程中,以最小化生產環境的部署延遲。

誰應關注:Developers & AI Engineers

關鍵要點

  • 實作 SOCI 以啟用容器映像檔的延遲載入 (lazy loading),無需等待完整下載。
  • 針對 AWS 上的大型深度學習容器映像檔優化啟動效能。
  • 根據特定工作負載的延遲需求,在不同的 SOCI 模式間進行選擇。

🧠 深度解析

Web-grounded analysis with 20 cited sources.

🔑 增強重點摘要

  • SOCI 透過為現有容器映像檔建立獨立的索引(SOCI 索引)來運作,該索引儲存在容器註冊表中作為 OCI Artifact,使得容器執行時無需下載整個映像檔即可提取單個檔案,從而顯著加速啟動時間。
  • 與其他延遲載入解決方案(如 eStargz)不同,SOCI 無需修改或轉換現有的容器映像檔格式,這保留了映像檔的摘要值和簽名有效性,對於維護現有 CI/CD 流程和安全要求至關重要。
  • 除了延遲載入模式,SOCI 還引入了「並行拉取/解壓縮模式」(Parallel Pull/Unpack Mode),透過多個並行連線下載分塊的映像檔層,並在多個 CPU 核心上並行解壓縮,進一步加速傳統的預先載入過程,適用於需要完整映像檔可用性的工作負載。
  • AWS Fargate 自動偵測並利用 SOCI 索引來加速容器啟動,並且自 2023 年 11 月起,它支援在多容器任務定義中選擇性地為特定大型容器映像檔啟用 SOCI,而無需為所有映像檔建立索引。
  • SOCI 對於大型容器映像檔(通常壓縮後大於 250MB)的效果最為顯著,尤其是在 AI/ML 工作負載中,可將啟動時間縮短 30-60% 甚至更多;然而,對於非常小的映像檔,由於索引和 FUSE 檔案系統設定的開銷,其效益可能不明顯甚至略有負面影響。
📊 競品分析▸ Show
特性/產品AWS SOCI (Seekable OCI)eStargz (stargz-snapshotter)
映像檔修改無需修改原始 OCI 映像檔,索引獨立儲存。需要將原始 OCI 映像檔轉換為 eStargz 格式,這會改變映像檔的摘要值。
索引儲存索引作為獨立的 OCI Artifact 儲存在註冊表中,並透過 OCI Reference Types 連結到映像檔。索引(目錄表)嵌入在映像檔內部。
應用啟動時間應用程式啟動時間與標準映像檔相似,但映像檔拉取時間大幅減少。應用程式啟動時間可能比標準映像檔長。
CI/CD 整合易於整合到現有 CI/CD 流程,因為不改變映像檔。需要額外的建置步驟來轉換映像檔。
主要優勢保持映像檔完整性與簽名有效性,減少冷啟動延遲,支援並行拉取。實現延遲載入,減少映像檔拉取時間。

🛠️ 技術深入

  • SOCI 索引 (SOCI Index):一個獨立的元數據檔案,為現有的容器映像檔生成。它包含映像檔中每個檔案的清單、它們在壓縮 tarball 中的位置,以及如何僅解壓縮應用程式所需的特定檔案的資訊。
  • OCI Artifact 儲存:SOCI 索引作為一個 OCI Artifact 儲存在容器註冊表中,與實際的容器映像檔分開。它透過 OCI Reference Types 連結回原始映像檔,確保映像檔摘要和簽名的不變性。
  • soci-snapshotter:一個由 AWS 開源的 containerd 快照器插件,它使 containerd 能夠利用 SOCI 索引實現容器映像檔的延遲載入。它充當一個本地容器層儲存,按需從遠端註冊表獲取數據。
  • 延遲載入機制:當容器啟動時,soci-snapshotter 使用 SOCI 索引來識別並僅拉取初始執行所需的映像檔部分,通常透過 FUSE 檔案系統掛載來實現按需獲取檔案塊。
  • 並行拉取/解壓縮模式:SOCI v0.11.0 引入的功能,它透過多個並行連線同時下載分塊的映像檔層(利用 HTTP 範圍請求),並在多個 CPU 核心上並行解壓縮,從而加速傳統的映像檔預先載入過程。
  • SOCI Index Manifest v2:約在 2025 年 5 月推出,此版本使用加密方法在映像檔及其清單之間建立明確連結,以確保部署階段的完整性和一致性。它已成為 AWS ECS 和 Fargate 的預設機制。
  • 最小層大小:SOCI 在生成 zTOC(zip 目錄表)時有一個可配置的最小層大小(預設為 10MB)。小於此大小的層通常會被完整下載而不是延遲載入,因為延遲載入的開銷可能超過其效益。

🔮 前景展望AI analysis grounded in cited sources

SOCI 將成為大型 AI/ML 模型部署的標準優化技術。
隨著 AI/ML 模型尺寸持續增長,SOCI 的延遲載入和並行拉取能力對於降低冷啟動延遲和提高資源利用率至關重要,將成為部署這些模型不可或缺的工具。
OCI 標準將進一步演進以更好地支援像 SOCI 這樣的外部元數據和延遲載入機制。
OCI Image Specification 和 Distribution Specification v1.1 已於 2024 年 2 月發布,增加了對關聯元數據 Artifacts 的支援,這與 SOCI 將索引作為獨立 OCI Artifacts 儲存的方式相符,預示著未來標準將更全面地納入此類優化。
SOCI 的應用將擴展到更多雲端服務和容器編排平台,成為跨平台容器啟動優化的通用解決方案。
SOCI 已在 AWS Fargate、ECS 和 SageMaker Studio 中得到整合,並被貢獻給 containerd 上游項目,表明其潛力不僅限於 AWS 生態系統,未來有望在更廣泛的 Kubernetes 和容器環境中普及。

時間線

2015-06
Open Container Initiative (OCI) 成立,旨在為容器制定開放標準。
2017-07
OCI Image Specification 1.0.0 發布,定義了容器映像檔的格式。
2022-09
AWS 開源 Seekable OCI (SOCI) 技術,旨在透過延遲載入加速容器啟動。
2023-07
AWS Fargate 宣布支援 Seekable OCI (SOCI),允許容器在未完全下載映像檔前啟動。
2023-11
AWS Fargate 支援在同一 Amazon ECS 任務中選擇性地為特定容器映像檔啟用 SOCI。
2024-02
OCI Image Specification 和 Distribution Specification 1.1.0 發布,增加對關聯元數據 Artifacts 的支援。
📰

AI 週報

閱讀本週精選 AI 大事摘要 →

👉相關動態

AI 策展新聞聚合。所有內容版權歸原始發布者所有。
原始來源: AWS Machine Learning Blog