Topik ini menjelaskan metode umum untuk menyimpan model saat Anda menerapkan aplikasi inferensi AI di Function Compute, serta membandingkan kelebihan, kekurangan, dan skenario penerapan masing-masing metode.
Informasi latar belakang
Untuk informasi mengenai jenis penyimpanan untuk fungsi, lihat Pilih jenis penyimpanan untuk fungsi. Dua jenis berikut cocok untuk menyimpan model pada instans yang dipercepat GPU:
Anda juga dapat menempatkan file model langsung ke dalam citra kontainer karena fungsi yang dipercepat GPU menggunakan citra kontainer kustom untuk menerapkan layanan.
Setiap metode memiliki skenario dan fitur teknis yang unik. Saat memilih metode penyimpanan, pertimbangkan kebutuhan spesifik Anda, lingkungan eksekusi, dan alur kerja tim untuk menyeimbangkan efisiensi dan biaya.
Mendistribusikan model dengan citra kontainer
Salah satu metode paling sederhana adalah mengemas model yang telah dilatih beserta kode aplikasi terkait ke dalam citra kontainer. File model kemudian didistribusikan bersama citra tersebut.
Kelebihan dan kekurangan
Kelebihan:
Kemudahan: Setelah membuat citra, Anda dapat langsung menjalankannya untuk inferensi tanpa konfigurasi tambahan.
Konsistensi: Metode ini memastikan versi model konsisten di semua lingkungan, sehingga mencegah masalah akibat ketidakkonsistenan versi antar lingkungan.
Kekurangan:
Ukuran citra: Citra bisa menjadi sangat besar, terutama untuk model besar.
Pembaruan memakan waktu: Setiap pembaruan model mengharuskan Anda membangun ulang dan mendistribusikan citra, yang merupakan proses yang memakan waktu.
Deskripsi
Untuk meningkatkan kecepatan cold start instans fungsi, platform melakukan pra-pemrosesan citra kontainer. Jika citra terlalu besar, citra tersebut mungkin melebihi batas ukuran citra platform, yang juga dapat meningkatkan waktu yang diperlukan untuk akselerasi dan pra-pemrosesan citra.
Untuk informasi mengenai batas ukuran citra platform, lihat Berapa batas ukuran untuk citra GPU?
Untuk informasi mengenai pra-pemrosesan citra dan status fungsi, lihat Status fungsi dan pemanggilan untuk citra kustom.
Skenario
Ukuran model relatif kecil, misalnya beberapa ratus megabyte.
Model jarang berubah. Dalam kasus ini, Anda dapat mengemas model dalam citra kontainer.
Jika file model Anda besar, sering diperbarui, atau menyebabkan citra kontainer melebihi batas ukuran platform, sebaiknya pisahkan model dari citra.
Menyimpan model di File Storage NAS
Function Compute memungkinkan Anda memasang sistem file NAS ke direktori tertentu dalam instans fungsi. Aplikasi kemudian dapat memuat file model dengan mengakses direktori titik pemasangan NAS.
Kelebihan dan kekurangan
Kelebihan:
NAS menawarkan kompatibilitas aplikasi yang lebih baik daripada sistem file
FUSEkarena menyediakan antarmuka filePOSIXyang lebih lengkap dan matang.Kapasitas: NAS dapat menyediakan kapasitas penyimpanan berskala petabyte.
Kekurangan:
Ketergantungan VPC: Anda harus mengonfigurasi akses VPC agar fungsi dapat mengakses titik pemasangan NAS. Hal ini memerlukan konfigurasi izin lintas berbagai produk cloud. Selain itu, saat instans fungsi mengalami cold start, platform memerlukan beberapa detik untuk menyiapkan akses VPC bagi instans tersebut.
Manajemen konten terbatas: Sistem file NAS harus dipasang sebelum digunakan. Metode ini mengharuskan Anda membuat alur kerja bisnis untuk mendistribusikan file model ke instans NAS.
Tidak mendukung penerapan aktif-aktif atau multi-zona ketersediaan (AZ). Untuk informasi selengkapnya, lihat FAQ NAS.
Deskripsi
Dalam skenario di mana banyak kontainer dimulai dan memuat model secara bersamaan, bottleneck bandwidth NAS mudah tercapai. Hal ini meningkatkan waktu startup instans dan bahkan dapat menyebabkan kegagalan startup akibat timeout. Misalnya, Horizontal Pod Autoscaler (HPA) terjadwal membuat snapshot GPU secara batch, atau lonjakan lalu lintas memicu pembuatan banyak instans elastis yang dipercepat GPU.
Anda dapat melihat pemantauan kinerja NAS (throughput baca) di Konsol.
Anda dapat meningkatkan throughput baca dan tulis sistem file NAS tertentu dengan menambah kapasitasnya.
Jika Anda menggunakan NAS untuk menyimpan file model, kami merekomendasikan penggunaan sistem file NAS performa standar karena jenis NAS ini menyediakan bandwidth baca awal yang tinggi sekitar 600 MB/s. Untuk informasi selengkapnya, lihat Sistem file NAS tujuan umum.
Skenario
Diperlukan kinerja startup cepat saat Anda menggunakan instans elastis yang dipercepat GPU di Function Compute.
Menyimpan model di Object Storage Service (OSS)
Function Compute memungkinkan Anda memasang bucket OSS ke direktori tertentu dalam instans fungsi. Aplikasi kemudian dapat memuat model langsung dari titik pemasangan OSS.
Kelebihan
Bandwidth: OSS memiliki batas bandwidth yang lebih tinggi daripada NAS, sehingga persaingan bandwidth antar instans fungsi lebih kecil kemungkinannya. Untuk informasi selengkapnya, lihat Batasan. Anda juga dapat mengaktifkan Akselerator OSS untuk mendapatkan throughput yang lebih tinggi.
Berbagai metode manajemen:
Menyediakan saluran akses seperti konsol dan API.
Menyediakan berbagai alat manajemen penyimpanan objek yang tersedia secara lokal. Untuk informasi selengkapnya, lihat Alat Pengembang.
Anda dapat menggunakan fitur replikasi lintas wilayah OSS untuk sinkronisasi dan manajemen model.
Konfigurasi sederhana: Dibandingkan dengan sistem file NAS, pemasangan bucket OSS ke instans fungsi tidak memerlukan konektivitas VPC. Bucket siap digunakan segera setelah dikonfigurasi.
Biaya: Jika hanya membandingkan kapasitas dan throughput, OSS umumnya lebih hemat biaya daripada NAS.
Deskripsi
Pemasangan OSS menggunakan mekanisme sistem file mode pengguna Filesystem in Userspace (FUSE). Saat aplikasi mengakses file pada titik pemasangan OSS, platform mengonversi permintaan akses tersebut menjadi panggilan API OSS untuk mengakses data. Oleh karena itu, pemasangan OSS memiliki karakteristik berikut:
Berjalan dalam mode pengguna dan mengonsumsi kuota sumber daya instans fungsi, seperti CPU, memori, dan penyimpanan sementara. Oleh karena itu, metode ini paling cocok untuk instans yang dipercepat GPU dengan spesifikasi besar.
Akses data menggunakan API OSS. Throughput dan latensinya dibatasi oleh layanan API OSS, sehingga lebih cocok untuk mengakses sejumlah kecil file besar—seperti yang umum terjadi dalam skenario pemuatan model—dan tidak cocok untuk mengakses banyak file kecil.
Pemasangan OSS lebih cocok untuk operasi baca-tulis berurutan daripada baca-tulis acak. Saat Anda memuat file besar, pembacaan berurutan dapat memanfaatkan sepenuhnya mekanisme pra-ambil sistem file untuk mencapai throughput jaringan yang lebih baik dan latensi pemuatan yang lebih rendah.
Sebagai contoh, dengan file safetensors, penggunaan versi yang dioptimalkan untuk pembacaan berurutan secara signifikan mengurangi waktu pemuatan file model dari titik pemasangan OSS. Untuk informasi selengkapnya, lihat load_file: muat tensor yang diurutkan berdasarkan offset-nya.
Jika Anda tidak dapat menyesuaikan pola I/O aplikasi, Anda dapat membaca file tersebut secara berurutan sekali sebelum memuatnya. Hal ini akan memuat konten ke PageCache sistem, sehingga aplikasi kemudian memuat file dari PageCache.
Skenario
Banyak instans memuat model secara paralel, sehingga memerlukan throughput penyimpanan yang lebih tinggi untuk menghindari persaingan bandwidth antar instans.
Diperlukan penyimpanan redundansi lokal atau penerapan multi-wilayah.
Mengakses sejumlah kecil file besar dengan pola I/O baca berurutan, seperti yang umum terjadi dalam skenario pemuatan model.
Rangkuman perbandingan
Item perbandingan | Distribusi dengan citra | Pasang NAS | Mount OSS |
Ukuran model |
| Tidak ada | Tidak ada |
Throughput | Lebih cepat |
|
|
Kompatibilitas | Baik | Baik |
|
Adaptabilitas pola I/O | Baik | Baik | Cocok untuk skenario baca-tulis berurutan. Pembacaan acak harus dikonversi ke akses PageCache untuk throughput yang lebih baik. |
Metode manajemen | Gambar kontainer | Pasang dalam VPC lalu gunakan. |
|
Multi-AZ | Didukung | Tidak didukung | Didukung |
Biaya | Tidak ada biaya tambahan | NAS umumnya sedikit lebih mahal daripada OSS. Rujuk aturan penagihan terkini untuk masing-masing Produk.
| |
Berdasarkan perbandingan ini, berikut adalah praktik yang direkomendasikan untuk menyimpan model pada instans GPU-accelerated Function Compute (FC), dengan mempertimbangkan pola penggunaan berbeda, volume startup kontainer konkuren, dan kebutuhan manajemen model:
Jika Anda memerlukan kompatibilitas tinggi dengan API sistem file, atau jika aplikasi Anda menggunakan pembacaan acak dan tidak dapat dimodifikasi untuk mengakses PageCache memori, gunakan sistem file NAS performa standar.
Dalam skenario di mana banyak kontainer GPU dimulai secara bersamaan, gunakan Akselerator OSS untuk menghindari bottleneck bandwidth titik tunggal pada NAS.
Dalam skenario penerapan multi-wilayah, gunakan OSS dan Akselerator OSS untuk mengurangi kompleksitas manajemen model dan sinkronisasi lintas wilayah.
Data uji
Dua uji berikut menganalisis perbedaan kinerja antara berbagai media penyimpanan dengan membandingkan waktu yang diperlukan untuk memuat file dalam skenario berbeda. Waktu pemuatan yang lebih singkat menunjukkan kinerja penyimpanan yang lebih baik.
Metode 1: Waktu pemuatan file untuk model berbeda
Uji ini mengukur waktu yang diperlukan untuk memuat file bobot model `safetensors` dari berbagai media penyimpanan ke Memori GPU. Hasilnya digunakan untuk membandingkan kinerja metode penyimpanan berbeda untuk berbagai model.
Lingkungan uji
Jenis instans: Tipe kartu Ada, 8-core, memori 64 GB
Kapasitas Akselerator OSS: 10 TB, dengan throughput maksimum 3.000 MB/s
Spesifikasi NAS: Sistem file NAS performa standar, dengan kapasitas yang sesuai dengan throughput maksimum 600 MB/s
Versi safetensors
0.5.3Tabel berikut mencantumkan model dan ukurannya yang digunakan dalam uji ini.
Model
Ukuran (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
Hasil
Pada gambar berikut, sumbu vertikal mewakili waktu pemuatan, dan sumbu horizontal mewakili model berbeda serta tiga metode penyimpanan: `ossfs,accel`, `ossfs`, dan `nas`.
Warna batang | Metode penyimpanan | Fitur teknis |
Biru | ossfs,accel | Endpoint Akselerator OSS |
Oranye | ossfs | Endpoint OSS Standar |
Abu-abu | nas | Titik pemasangan sistem file NAS |

Kesimpulan uji
Throughput: Keunggulan utama OSS dibandingkan NAS adalah kinerja throughput-nya. Data uji menunjukkan bahwa throughput baca Endpoint OSS standar sering kali dapat mencapai 600 MB/s atau lebih tinggi.
Dampak pembacaan acak: Untuk beberapa file, seperti flux1-dev.safetensors yang relatif besar dan revAnimated_v122.safetensors yang lebih kecil, waktu pemuatan untuk OSS standar jauh lebih lama dibandingkan Akselerator OSS dan NAS. Hal ini karena platform mengoptimalkan pembacaan acak untuk Akselerator OSS, dan NAS berkinerja lebih dapat diprediksi daripada OSS standar dalam skenario pembacaan acak.
Metode 2: Waktu pemuatan file pada tingkat konkurensi berbeda
Uji ini menggunakan model besar berukuran 22,2 GB flux1-dev.safetensors untuk menguji distribusi latensi saat memuat file ke Memori GPU pada tingkat konkurensi 4, 8, dan 16.
Lingkungan uji
Jenis instans: Ada.3, 8-core, memori 64 GB
Kapasitas Akselerator OSS: 80 TB, dengan throughput maksimum 24.000 MB/s
Spesifikasi NAS: Sistem file NAS performa standar, dengan kapasitas yang sesuai dengan throughput maksimum 600 MB/s
Versi safetensors
0.5.3
Hasil
Gambar 1 menunjukkan waktu pemuatan maksimum, rata-rata, dan median untuk metode penyimpanan berbeda, termasuk `ossfs,accel,N`, `ossfs,N`, dan `nas,N`, pada tingkat konkurensi berbeda. N menunjukkan jumlah minimum instans.
Metode penyimpanan | Fitur teknis |
ossfs,accel,N | Endpoint Akselerator OSS |
ossfs,N | Endpoint OSS Standar |
nas,N | Titik pemasangan sistem file NAS |
Warna batang | Nilai yang diwakili |
Biru | Waktu rata-rata |
Oranye | Waktu median |
Abu-abu | Waktu maksimum |

Gambar 2 menunjukkan deviasi standar untuk metode penyimpanan berbeda, termasuk `ossfs,accel,N`, `ossfs,N`, dan `nas,N`, pada tingkat konkurensi berbeda. N menunjukkan jumlah minimum instans.

Kesimpulan uji
Throughput: Keunggulan utama OSS dibandingkan NAS adalah kinerja throughput, dan keunggulan Akselerator OSS bahkan lebih signifikan. Throughput OSS standar sering kali dapat melebihi 600 MB/s, dan throughput Akselerator OSS dapat mencapai nilai yang diharapkan (lihat Gambar 1).
Stabilitas: Dalam skenario konkurensi tinggi, OSS standar memberikan latensi pemuatan rata-rata yang lebih rendah daripada NAS, tetapi kinerjanya kurang konsisten, sebagaimana ditunjukkan oleh deviasi standar yang lebih tinggi. Dalam hal ini, throughput NAS lebih dapat diprediksi daripada OSS standar (lihat Gambar 2).
Catatan: I/O acak yang dihasilkan saat memuat file safetensors berbeda bervariasi. Hal ini berdampak lebih signifikan terhadap waktu pemuatan model dari titik pemasangan OSS standar dibandingkan dari titik pemasangan NAS.