日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

內存緩存本地目錄

模型推理時,通過OSSNAS掛載模型文件到本地目錄,受網絡帶寬影響,存在延時問題。EAS提供本地目錄內存緩存加速功能。將模型文件緩存到內存中,提高讀取速度,減少延時。本文介紹如何配置本地目錄內存緩存及其加速效果。

背景信息

在大部分模型推理場景中,業務進程會通過OSS、NASImage將模型文件掛載到本地目錄。請參見服務存儲掛載。業務進程中模型讀取、模型切換、容器的擴縮容等操作都會受網絡帶寬影響。比較典型的如StableDiffusion場景中,推理請求會涉及到頻繁切換基礎模型和lora模型,每次切換都需從OSS/NAS回源讀取模型,導致延時增加。

為了解決這個問題,EAS提供了本地目錄內存緩存(Memory Cache)加速功能。具體的實現原理如下圖所示:

image
  • 利用空閑內存將本地目錄中的模型文件緩存到內存中。

  • 該緩存支持LRU淘汰策略和實例間共享,以文件系統目錄形式呈現。

  • 無需修改業務代碼,直接讀取緩存配置的目標本地目錄中的文件,即可享受加速效果。

  • 同一服務的不同實例會形成p2p網絡,實例擴容時可通過p2p網絡就近讀取緩存文件,加速擴容速度。

注意事項

  • 為保持數據一致性,掛載的加速目錄是只讀的,無法寫操作。

  • 如需添加模型文件,請在源目錄中新增文件,加速目錄會讀取源目錄中的文件。

  • 不建議直接更新或刪除源目錄中的模型文件,這可能導致讀取到緩存的臟數據。

配置方法

假設當前服務部署已有配置的參數如下:

  • 鏡像啟動命令:python /run.py

  • 模型文件OSS路徑:oss://path/to/models/

  • 模型文件掛載到容器中的目錄:/data-slow

那么/data-slow就是需要被加速的文件的源目錄,先將其再次掛載到加速目錄/data-fast。這樣,業務程序可以直接從加速目錄/data-fast讀取源目錄/data-slow中的加速文件,具體配置方式如下:

控制臺配置

  1. 登錄PAI控制臺,在頁面上方選擇目標地域,并在右側選擇目標工作空間,然后單擊進入EAS

  2. 單擊部署服務,然后在自定義模型部署區域,單擊自定義部署

  3. 自定義部署頁面,配置以下關鍵參數,其他參數配置說明,請參見服務部署:控制臺

    參數

    描述

    示例

    環境信息

    模型配置

    選擇OSS類型的掛載方式。

    • OSS路徑oss://path/to/models/

    • 掛載路徑/data-slow

    運行命令

    配置啟動參數-ckpt-dir,指向加速目錄。

    python /run.py -ckpt-dir /data-fast

    服務功能

    內存緩存加速

    打開開關,并配置以下參數:

    • 占用最大內存:被加速文件占用的最大內存,單位GB。被加速文件占用的最大內存,超過限制時采用LRU策略淘汰。

    • 源路徑:加速文件的源目錄,可以是OSSNAS中的加速文件掛載到容器中的掛載路徑,也可以是掛載路徑下的子目錄,或者是容器內的其他普通文件目錄。

    • 掛載路徑:加速文件的掛載目錄,業務程序需從該目錄中讀取模型。

    • 占用最大內存:20 GB

    • 源路徑/data-slow

    • 掛載路徑/data-fast

  4. 參數配置完成后,單擊部署

本地客戶端配置

步驟一:準備配置文件

在掛載配置中增加cachemount_path參數,在script參數中配置啟動參數-ckpt-dir,同時配置示例如下。其他參數配置說明,請參見服務模型所有相關參數說明

   {
    "containers": [
        {
            "image": "****",
            "port": 8000,
            "script": "python /run.py -ckpt-dir /data-fast"
        }
    ],
    "storage": [
        {
            "mount_path": "/data-slow",
            "oss": {
                "path": "oss://path/to/models/",
                "readOnly": false
            },
            "properties": {
                "resource_type": "model"
            }
        },
        {
            "cache": {
                "capacity": "20G",
                "path": "/data-slow"
            },
            "mount_path": "/data-fast"
        }
    ]
}

參數說明:

參數

描述

script

配置啟動參數-ckpt-dir,并將該參數指向加速目錄。

cache

capacity

被加速文件占用的最大內存,單位GB。被加速文件占用的最大內存,超過限制時采用LRU策略淘汰。

path

加速文件的源目錄。該目錄可以是OSSNAS中的加速文件掛載到容器中的掛載路徑,也可以是掛載路徑下的子目錄,或者是容器內的其他普通文件目錄。

mount_path

加速文件的掛載目錄,該目錄內的文件內容和源目錄保持一致,業務程序需從該目錄中讀取模型。

步驟二:部署模型服務

部署一個模型服務,使其能夠使用本地目錄內存緩存加速的功能。

通過控制臺部署模型服務

  1. 登錄PAI控制臺,在頁面上方選擇目標地域,并在右側選擇目標工作空間,然后單擊進入EAS

  2. 模型在線服務(EAS)頁面,單擊部署服務,然后在自定義模型部署區域,單擊JSON獨立部署。將步驟一準備好的配置內容粘貼到編輯框中。

  3. 單擊部署

通過EASCMD客戶端部署模型服務

  1. 下載EASCMD客戶端并進行身份認證。具體操作,請參見下載并認證客戶端

  2. 按照步驟一中的配置要求,在EASCMD客戶端所在目錄創建一個名為test.jsonJSON文件。

  3. JSON文件所在的當前目錄執行以下命令,以Windows 64版本為例。

    eascmdwin64.exe create <test.json>

加速效果

Stable Diffusion場景為例,模型切換的加速效果如下,單位:秒。您的最終的加速效果以實際情況為準。

模型

模型大小

OSS掛載

cachefs本地命中

cachefs遠端命中

anything-v4.5.safetensors

7.2G

89.88

3.845

15.18

Anything-v5.0-PRT-RE.safetensors

2.0G

16.73

2.967

5.46

cetusMix_Coda2.safetensors

3.6G

24.76

3.249

7.13

chilloutmix_NiPrunedFp32Fix.safetensors

4.0G

48.79

3.556

8.47

CounterfeitV30_v30.safetensors

4.0G

64.99

3.014

7.94

deliberate_v2.safetensors

2.0G

16.33

2.985

5.55

DreamShaper_6_NoVae.safetensors

5.6G

71.78

3.416

10.17

pastelmix-fp32.ckpt

4.0G

43.88

4.959

9.23

revAnimated_v122.safetensors

4.0G

69.38

3.165

3.20

  • 當緩存中沒有對應的模型時,Cachefs會自動回源讀取模型。如該文件通過OSS掛載,則Cachefs會從OSS拉取文件,耗時與直接通過OSS掛載進行讀取相當。

  • 服務內的多個實例會形成內存共享集群,加載相同模型時直接從遠端內存拉取,讀取時間與文件大小呈線性相關。

  • 服務擴容時,新實例會加入內存共享集群,初始化模型可直接從遠端讀取,彈性擴縮容更快,適合彈性場景。