全部產品
Search
文件中心

Function Compute:GPU執行個體模型儲存最佳實務

更新時間:Sep 27, 2025

本文介紹在使用Function Compute部署AI推理應用時,模型儲存的常用方法,並對這些方法的優缺點和適用情境進行比較分析。

背景資訊

函數的儲存類型請參見函數儲存選型。其中,適合用作GPU儲存模型的包括以下兩種。

除此之外,GPU函數使用自訂容器鏡像部署業務,因此還可以將模型檔案直接放置到容器鏡像中。

每種方法都有其獨特的應用情境和技術特點,選擇模型儲存方式時應當考慮具體需求、執行環境以及團隊的工作流程,以達到模型儲存在效率和成本上的平衡。

模型隨容器鏡像分發

將訓練好的模型和相關應用代碼一起打包在容器鏡像中,模型檔案隨容器鏡像分發,這是最直接的方法之一。

優缺點

優點:

  • 便利性:建立好鏡像後,可以直接運行它進行推理而無需額外配置。

  • 一致性:確保每個環境中的模型版本都是一致的,減少了由於不同環境中模型版本差異導致的問題。

缺點:

  • 鏡像體積:鏡像可能會非常大,特別是對於大尺寸模型。

  • 更新耗時:每次模型更新時都需要重新構建和分發鏡像,這可能是一個耗時的過程。

說明

為了提升函數執行個體的冷啟動速度,平台會對容器鏡像進行預先處理。如果鏡像尺寸過大,一方面可能會超出平台對鏡像大小的限制,另一方面也會導致鏡像加速預先處理所需時間的延長。

使用情境

  • 模型尺寸相對較小,例如百MB左右。

  • 模型變更頻率較低,可以考慮將模型打包在容器鏡像中。

如果您的模型檔案較大、迭代頻繁或隨鏡像發布時超過平台鏡像大小限制,建議模型與鏡像分離。

模型放在NAS檔案儲存體

Function Compute平台支援將NAS檔案系統掛載到函數執行個體的指定目錄,將模型儲存在NAS檔案系統,應用程式通過訪問NAS掛載點目錄實現模型檔案的載入。

優缺點

優點:

  • 相容性:相比FUSE類檔案系統,NAS提供的POSIX檔案介面較為完整和成熟,因此在應用相容性方面表現較好。

  • 容量:NAS能夠提供PiB級的儲存容量。

缺點:

  • 依賴VPC網路:一方面,需要為函數配置VPC訪問通道才能訪問NAS掛載點,在配置時涉及的雲產品許可權點相對較多;另一方面,函數執行個體冷啟動時,平台為執行個體建立VPC訪問通道會產生秒級的耗時。

  • 內容管理方式比較單一:NAS檔案系統需要掛載才能使用,相對單一,需要建立相應的商務程序將模型檔案分發到NAS執行個體上。

  • 不支援雙活和多AZ,詳情請參見NAS常見問題

說明

在大量容器同時啟動載入模型的情境下,容易觸及NAS的頻寬瓶頸,導致執行個體啟動耗時增加,甚至因逾時而失敗。例如,定時HPA大量設定GPU快照、突發流量觸發大量彈性GPU執行個體的建立。

  • 可以從控制台查看NAS效能監控(讀吞吐)。

  • 可以通過向NAS增加資料量的方式來提升NAS讀寫輸送量。

採用NAS來儲存模型檔案,建議選用通用型NAS中的“效能型”,其主要原因在於該類型NAS可以提供較高的初始讀頻寬,約600MB/s,詳情請參見通用型NAS

使用情境

在Function Compute彈性GPU執行個體時,需要快速的啟動效能。

模型放在OSSObject Storage Service

Function Compute平台支援將Object Storage Service Bucket掛載到函數執行個體的指定目錄,應用程式可以直接從OSS掛載點載入模型。

優點

  • 頻寬:OSS的頻寬上限較高,相比NAS不易出現函數執行個體間頻寬爭搶現象,詳情請見OSS使用限制及效能指標。與此同時,還可以通過開通OSS加速器獲得更高的吞吐能力。

  • 管理方法多樣:

    • 提供控制台、開放API等訪問通道。

    • 提供多種本地可用的Object Storage Service管理工具,請參見OSS常用工具

    • 可使用OSS跨地區複製功能進行模型同步與管理。

  • 配置簡單:相比NAS檔案系統,函數執行個體掛載OSS Bucket無需打通VPC,即配即用。

  • 成本:若僅比較容量和吞吐速率,相比NAS,一般來說OSS的成本更優。

說明

從實現原理上,OSS掛載使用FUSE使用者態檔案系統機制實現。應用訪問OSS掛載點上的檔案時,平台最終將其轉換為OSS API調用實現對資料的訪問。因此OSS掛載還有以下特徵:

  • 其工作在使用者態,會佔用函數執行個體的資源配額,如CPU、記憶體、臨時儲存等,因此建議在較大規格的GPU執行個體上使用。

  • 資料的訪問使用OSS API,其輸送量和時延最終受限於OSS API服務,因此更適合訪問數量較少的大檔案(如模型載入情境),不宜用於訪問大量小檔案。

  • 相比隨機讀寫,OSS掛載對順序讀寫更友好。特別地,在載入大檔案時,順序讀將能夠充分利用檔案系統的預讀機制,從而達到更優的網路吞吐速率和載入時延。

    • 以safetensors檔案為例,使用針對順序讀取最佳化過的版本將大幅縮短從OSS掛載點載入模型檔案的耗時:load_file: load tensors ordered by their offsets

    • 若無法調整應用的IO模式,則可以考慮在負載檔案前,先順序讀取一遍檔案,將內容預熱到系統PageCache,應用後續將從PageCache負載檔案。

使用情境

  • 大量執行個體並行載入模型,需要更高的儲存吞吐能力,以避免執行個體間頻寬不足的情況。

  • 需要本地冗餘,或者多地區部署的情境。

  • 訪問數量較少的大檔案(比如模型載入情境),並且IO模式為順序讀取。

總結對比

對比項

隨鏡像分發

NAS掛載

OSS掛載

模型尺寸

  • 鏡像構建和分發開銷

  • 平台對鏡像大小的約束

  • 平台對鏡像的加速預先處理耗時

吞吐

較快

  • 建議使用通用效能型 NAS,初始頻寬較高

  • 多執行個體並發載入模型時要考慮對NAS執行個體的頻寬爭搶

  • 總吞吐較高,受OSS對單個阿里雲帳號在各地區的頻寬約束

  • 可通過開啟OSS加速器獲得更高吞吐

相容性

  • 基於OSS API類比的POSIX檔案介面支援

  • 支援符號連結

IO模式適應能力

適合順序讀寫情境。隨機讀需轉化為PageCache訪問以獲得更優吞吐

管理方法

容器鏡像

VPC內掛載後使用

  • OSS控制台、API

  • OSS跨地區複製

  • 命令列、GUI工具

多AZ

支援

不支援

支援

成本

不產生額外費用

一般來說NAS比OSS略高,請以各產品當前計費規則為準

基於以上對比,根據FC GPU不同使用模式、不同容器並發啟動數量、不同模型管理需求等維度,FC GPU模型託管的最佳實務如下:

  • 如果對檔案系統API相容性有較高要求,或者應用使用隨機讀且無法轉換為對記憶體PageCache的訪問,推薦使用通用效能型NAS。

  • 在大並發GPU容器同時啟動使用情境下,為了避免NAS的單點頻寬瓶頸,推薦OSS ACCL

  • 在多地區單元化部署使用情境下,為了減少模型管理複雜度與跨域同步難度,推薦OSS和OSS ACCL

測試資料

本文介紹以下兩種方式,通過對比不同情境下不同儲存介質負載檔案的耗時,來分析其效能差異,耗時越低,代表格儲存體效能越高。

方式一:不同模型的檔案載入耗時

測量從不同儲存介質載入模型權重檔案safetensors至GPU顯存的耗時,對比不同模型下不同儲存方式的效能差異。

測試環境

  • 執行個體規格:Ada卡型,8核,64GB記憶體

  • OSS加速器容量:10T,對應最大吞吐為3000MB/s

  • NAS規格:通用效能型,容量對應最大吞吐為600MB/s

  • safetensors版本0.5.3

  • 本次測試的選取的模型和模型尺寸大小如下表:

    模型

    尺寸(GB)

    Anything-v4.5-pruned-mergedVae.safetensors

    3.97

    Anything-v5.0-PRT-RE.safetensors

    1.99

    CounterfeitV30_v30.safetensors

    3.95

    Deliberate_v2.safetensors

    1.99

    DreamShaper_6_NoVae.safetensors

    5.55

    cetusMix_Coda2.safetensors

    3.59

    chilloutmix_NiPrunedFp32Fix.safetensors

    3.97

    flux1-dev.safetensors

    22.2

    revAnimated_v122.safetensors

    5.13

    sd_xl_base_1.0.safetensors

    6.46

結果展示

如下圖所示,縱座標代表時間,橫座標代表不同的模型以及ossfs,accel、ossfs和nas三種模型儲存方式。

柱體顏色

儲存方式

技術特性

藍色

ossfs,accel

OSS加速器Endpoint

橙色

ossfs

普通OSS Endpoint

灰色

nas

NAS檔案系統掛載點

image

測試結論

  • 吞吐能力:OSS儲存相較NAS的核心優勢在於吞吐效能,測試資料顯示,普通OSS Endpoint的讀吞吐也經常可達600MB/s或以上。

  • 隨機讀影響:在個別檔案的表現上,如相對較大的flux1-dev.safetensors和較小的revAnimated_v122.safetensors,普通OSS相比OSS加速器耗時明顯增加,比NAS耗時也更長,這既源於平台針對OSS加速器所做的隨機讀取最佳化效果,也因NAS相比普通OSS在隨機讀情境下表現得更可預期。

方式二:不同並發的檔案載入耗時

使用22.2GB大模型 flux1-dev.safetensors,測試 4/8/16 並發下載入flux1-dev.safetensors檔案至GPU顯存的時延分布。

測試環境

  • 執行個體規格:Ada.3,8核,64GB記憶體

  • OSS加速器容量:80T,對應最大吞吐為24000MB/s

  • NAS規格:通用效能型,容量對應最大吞吐為600MB/s

  • safetensors版本0.5.3

結果展示

如下圖1所示,統計不同儲存方式,包括ossfs,accel,N、ossfs,N和nas,N在不同並發下的最大耗時、平均耗時和耗時中位元。N表示最小執行個體數。

儲存方式

技術特性

ossfs,accel,N

OSS加速器Endpoint

ossfs,N

普通OSS Endpoint

nas,N

NAS檔案系統掛載點

柱體顏色

代表數值

藍色

平均耗時

橙色

耗時中位元

灰色

最大耗時

image

如下圖2,統計不同儲存方式,包括ossfs,accel,N、ossfs,N和nas,N在不同並發下的標準差,N表示最小執行個體數。

image

測試結論

  • 吞吐能力:OSS儲存相較 NAS 的核心優勢在於吞吐效能,OSS加速器優勢更顯著。普通OSS的吞吐能力也經常能超過600MB/s,而OSS加速器的吞吐能力更可達到預期值(見圖1)。

  • 穩定性:在高執行個體並發情境下,普通OSS相比NAS有更低的載入時延,但是標準差更高,這種情況下,NAS比普通OSS的吞吐能力更可預期(見圖2)。

  • 需要注意的是:載入不同safetensors檔案時產生的隨機IO情況不一樣,相較於NAS,對從普通OSS掛載載入模型的耗時影響更明顯。