全部产品
Search
文档中心

Platform For AI:Aktifkan caching memori untuk direktori lokal

更新时间:Jul 09, 2025

Selama inferensi model, file model yang disimpan di Object Storage Service (OSS) atau Apsara File Storage NAS (NAS) dipasang ke direktori lokal. Akses ke file model dipengaruhi oleh lebar pita jaringan dan latensi. Untuk mengatasi masalah ini, Elastic Algorithm Service (EAS) menyediakan caching memori untuk direktori lokal. EAS menyimpan file model dari disk ke memori guna mempercepat pembacaan data dan mengurangi latensi. Topik ini menjelaskan cara mengonfigurasi caching memori untuk direktori lokal serta menunjukkan performa akselerasi.

Informasi latar belakang

Dalam sebagian besar skenario inferensi model, layanan EAS memasang file model ke direktori lokal menggunakan OSS, NAS, atau Docker image. Untuk informasi lebih lanjut, lihat Pasang penyimpanan ke layanan. Saat Anda melakukan operasi seperti membaca model, beralih model, atau penskalaan kontainer, operasi tersebut dapat dipengaruhi oleh lebar pita jaringan. Dalam skenario umum seperti penggunaan Stable Diffusion, permintaan inferensi melibatkan pergantian sering antara model dasar dan model Adaptasi Peringkat Rendah (LoRA). Setiap pergantian memerlukan pembacaan model dari OSS atau NAS, yang meningkatkan latensi jaringan.

Untuk mengatasi masalah ini, EAS menyediakan caching memori untuk direktori lokal. Gambar berikut menunjukkan prinsipnya.

image
  • Anda dapat menyimpan file model dalam direktori lokal ke memori.

  • Caching mendukung kebijakan least recently used (LRU) dan memungkinkan Anda berbagi file di antara instance. File yang disimpan ditampilkan sebagai direktori sistem file.

  • Layanan langsung membaca file yang disimpan dalam memori. Anda dapat mempercepat operasi tanpa perlu memodifikasi kode bisnis.

  • Instance dari suatu layanan berbagi jaringan P2P. Saat Anda menambahkan kluster layanan, instance tambahan dapat membaca file yang disimpan dari instance terdekat melalui jaringan P2P untuk mempercepat penambahan kluster.

Tindakan pencegahan

  • Untuk memastikan konsistensi data, direktori cache bersifat hanya-baca.

  • Jika Anda ingin menambahkan file model, Anda dapat menambahkan file model ke direktori sumber. File model dapat langsung dibaca dari direktori cache.

  • Kami menyarankan agar Anda tidak langsung memodifikasi atau menghapus file model dalam direktori sumber. Jika tidak, data kotor mungkin tersimpan dalam cache.

Prosedur

Dalam contoh ini, Stable Diffusion digunakan. Parameter berikut dikonfigurasi untuk penyebaran layanan:

  • Perintah startup gambar: ./webui.sh --listen --port 8000 --skip-version-check --no-hashing --no-download-sd-model --skip-prepare-environment --api --filebrowser

  • Direktori OSS tempat file model disimpan: oss://path/to/models/

  • Direktori tempat file model disimpan dalam kontainer: /code/stable-diffusion-webui/data-slow

Direktori /code/stable-diffusion-webui/data-slow adalah direktori sumber tempat file model disimpan. Kemudian, file model dipasang ke direktori cache /code/stable-diffusion-webui/data-fast. Dengan cara ini, layanan dapat langsung membaca file model yang disimpan dalam direktori sumber /code/stable-diffusion-webui/data-slow dari direktori cache /code/stable-diffusion-webui/data-fast.

Konfigurasikan caching memori di konsol PAI

  1. Masuk ke konsol PAI. Pilih wilayah di bilah navigasi atas. Lalu, pilih ruang kerja yang diinginkan dan klik Enter Elastic Algorithm Service (EAS).

  2. Klik Deploy Service dan pilih Custom Deployment di bagian Custom Model Deployment.

  3. Di halaman Custom Deployment, konfigurasikan parameter yang dijelaskan dalam tabel berikut. Untuk informasi tentang parameter lainnya, lihat Parameter untuk penyebaran kustom di konsol.

    Parameter

    Deskripsi

    Contoh

    Environment Information

    Model Settings

    Pilih mode pemasangan OSS.

    • Uri: oss://path/to/models/

    • Path Pemasangan: /code/stable-diffusion-webui/data-slow

    Command

    Konfigurasikan parameter startup berdasarkan gambar yang Anda gunakan atau kode yang Anda tulis.

    Untuk layanan Stable Diffusion, Anda harus menambahkan parameter --ckpt-dir ke perintah startup dan atur ke direktori cache.

    ./webui.sh --listen --port 8000 --skip-version-check --no-hashing --no-download-sd-model --skip-prepare-environment --api --filebrowser --ckpt-dir /code/stable-diffusion-webui/data-fast

    Features

    Memory Caching

    Aktifkan Memory Caching dan konfigurasikan parameter berikut:

    • Maximum Memory Usage: memori maksimum yang digunakan oleh file yang disimpan. Unit: GB. Saat penggunaan memori maksimum terlampaui, kebijakan LRU digunakan untuk menghapus file tertentu yang disimpan.

    • Source Path: Direktori dapat berupa salah satu direktori berikut: direktori sumber tempat file yang disimpan disimpan, direktori cache dalam kontainer tempat file yang disimpan di OSS atau NAS dipasang, subdirektori dari direktori cache, dan direktori file umum dalam kontainer.

    • Mount Path: direktori cache tempat file yang disimpan dipasang. Layanan harus membaca file dari direktori cache.

    • Maximum Memory Usage: 20 GB

    • Source Path: /code/stable-diffusion-webui/data-slow

    • Mount Path: /code/stable-diffusion-webui/data-fast

  4. Setelah Anda mengonfigurasi parameter, klik Deploy.

Konfigurasikan caching memori pada klien lokal

  1. Siapkan file konfigurasi. Contoh kode:

   {
    "cloud": {
        "computing": {
            "instances": [
                {
                    "type": "ml.gu7i.c16m60.1-gu30"
                }
            ]
        }
    },
    "containers": [
        {
            "image": "eas-registry-vpc.cn-hangzhou.cr.aliyuncs.com/pai-eas/stable-diffusion-webui:4.2",
            "port": 8000,
            "script": "./webui.sh --listen --port 8000 --skip-version-check --no-hashing --no-download-sd-model --skip-prepare-environment --api --filebrowser --ckpt-dir /code/stable-diffusion-webui/data-fast"
        }
    ],
    "metadata": {
        "cpu": 16,
        "enable_webservice": true,
        "gpu": 1,
        "instance": 1,
        "memory": 60000,
        "name": "sdwebui_test"
    },
    "options": {
        "enable_cache": true
    },
    "storage": [
        {
            "cache": {
                "capacity": "20G",
                "path": "/code/stable-diffusion-webui/data-slow"
            },
            "mount_path": "/code/stable-diffusion-webui/data-fast"
        },
        {
            "mount_path": "/code/stable-diffusion-webui/data-slow",
            "oss": {
                "path": "oss://path/to/models/",
                "readOnly": false
            },
            "properties": {
                "resource_type": "model"
            }
        }
    ]
}

Tabel berikut menjelaskan parameter. Untuk informasi tentang parameter lainnya, lihat Parameter layanan model.

Parameter

Deskripsi

script

Konfigurasikan parameter startup berdasarkan gambar yang Anda gunakan atau kode yang Anda tulis. Untuk layanan Stable Diffusion, Anda harus menambahkan parameter --ckpt-dir ke perintah startup dan atur ke direktori cache.

cache

capacity

Memori maksimum yang digunakan oleh file yang disimpan. Unit: GB. Saat penggunaan memori maksimum terlampaui, kebijakan LRU digunakan untuk menghapus file tertentu yang disimpan.

path

Direktori sumber file yang disimpan. Direktori dapat berupa salah satu direktori berikut: direktori cache dalam kontainer tempat file yang disimpan di OSS atau NAS dipasang, subdirektori dari direktori cache, dan direktori file umum dalam kontainer.

mount_path

Direktori cache tempat file yang disimpan dipasang. File dalam direktori ini sama dengan file dalam direktori sumber. Layanan harus membaca file dari direktori ini.

Langkah 2: Sebarkan layanan model

Sebarkan layanan model dan aktifkan caching memori untuk layanan model.

Sebarkan layanan model di konsol PAI

  1. Masuk ke konsol PAI. Pilih wilayah di bilah navigasi atas. Lalu, pilih ruang kerja yang diinginkan dan klik Enter Elastic Algorithm Service (EAS).

  2. Di halaman Elastic Algorithm Service (EAS), klik Deploy Service. Di halaman Sebarkan Layanan, klik JSON Deployment di bagian Custom Model Deployment. Di bidang editor, masukkan kode konfigurasi yang telah Anda siapkan di Langkah 1.

  3. Klik Deploy.

Sebarkan layanan model dengan menggunakan klien EASCMD

  1. Unduh klien EASCMD dan lakukan autentikasi identitas. Untuk informasi lebih lanjut, lihat Unduh klien EASCMD dan lengkapi autentikasi identitas.

  2. Buat file JSON bernama test.json di direktori tempat klien EASCMD disimpan dengan mengikuti petunjuk di Langkah 1.

  3. Jalankan perintah berikut di direktori tempat file JSON disimpan. Dalam contoh ini, Windows 64 digunakan.

    eascmdwin64.exe create <test.json>

Efek akselerasi

Tabel berikut menjelaskan efek akselerasi dalam skenario pemodelan sampel di mana Stable Diffusion digunakan. Unit: detik. Efek akselerasi bervariasi berdasarkan situasi aktual.

Model

Ukuran model

Path pemasangan OSS

Pencapaian memori instans lokal

Pencapaian memori instans jarak jauh

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

  • Jika tidak ada file model dalam cache memori, CacheFS secara otomatis membaca file model dari direktori sumber. Misalnya, jika sebuah file dipasang ke Bucket OSS, CacheFS membaca file dari Bucket OSS.

  • Jika layanan memiliki beberapa instance, kluster instance berbagi memori. Saat sebuah instance memuat model, instance tersebut dapat langsung membaca file model dari memori instance lain dalam kluster. Jumlah waktu yang diperlukan untuk membaca file bervariasi berdasarkan ukuran file.

  • Saat Anda menambahkan kluster layanan, instance tambahan dapat secara otomatis membaca file model dari memori instance lain dalam kluster selama inisialisasi. Dengan cara ini, layanan diperluas dengan lebih cepat dan fleksibel.