Penyebaran kustom Elastic Algorithm Service (EAS) menawarkan lingkungan fleksibel untuk menjalankan model AI atau algoritma apa pun sebagai layanan inferensi yang dapat diskalakan. Layanan ini mendukung berbagai beban kerja, mulai dari model bahasa besar (LLM) hingga kode kustom. Panduan ini ditujukan bagi pengguna tingkat lanjut yang membutuhkan kontrol penuh atas runtime dan konfigurasi. Untuk pengaturan lebih sederhana dengan aplikasi umum seperti LLM dan ComfyUI, pertimbangkan penyebaran berbasis skenario.
Cara Kerjanya
Layanan EAS dijalankan pada satu atau lebih instans kontainer terisolasi. Penyebaran layanan didasarkan pada komponen inti berikut:
Gambar Lingkungan: Paket read-only yang mencakup sistem operasi, pustaka dasar (seperti CUDA), runtime bahasa (seperti Python), dan dependensi lainnya. Anda dapat menggunakan gambar resmi dari PAI atau membuat gambar kustom sesuai kebutuhan aplikasi.
Kode dan File Model: File ini mencakup logika bisnis dan bobot model. Praktik terbaik adalah menyimpannya di Layanan Penyimpanan Objek (OSS) atau Penyimpanan File NAS (NAS), lalu mengaksesnya melalui pemasangan. Pendekatan ini memisahkan kode dan model dari lingkungan runtime, memungkinkan iterasi independen tanpa perlu membangun ulang gambar.
Pemasangan Penyimpanan: Saat layanan dimulai, EAS memasang jalur OSS atau NAS yang ditentukan ke direktori lokal dalam kontainer. Hal ini memungkinkan kode di dalam kontainer mengakses file penyimpanan eksternal seolah-olah mereka adalah file lokal.
Perintah Jalankan: Perintah pertama yang dieksekusi setelah kontainer dimulai. Biasanya, ini adalah perintah untuk memulai server HTTP, seperti
python app.py.
Alur kerja penyebaran adalah sebagai berikut:
EAS menarik gambar yang ditentukan untuk membuat kontainer.
EAS memasang penyimpanan eksternal ke jalur yang ditentukan di dalam kontainer.
EAS mengeksekusi perintah jalankan di dalam kontainer.
Setelah perintah berhasil dieksekusi, layanan mulai mendengarkan pada port yang ditentukan dan memproses permintaan inferensi.
EAS mendukung dua metode penyebaran: berbasis gambar dan berbasis prosesor. Metode berbasis gambar direkomendasikan karena menawarkan fleksibilitas dan kemudahan pemeliharaan maksimal. Metode berbasis prosesor merupakan opsi lama dengan keterbatasan signifikan.
Catatan Penggunaan
Layanan tidak aktif (tidak berjalan selama 180 hari berturut-turut) akan dihapus secara otomatis.
Saat memanggil layanan melalui gateway, badan permintaan tidak boleh melebihi 1 MB.
Hindari menggunakan port 8080 dan 9090 karena dicadangkan oleh mesin EAS.
Prosedur
Bagian ini menunjukkan cara cepat menyebarkan layanan web sederhana menggunakan metode penyebaran berbasis gambar.
Langkah 1: Siapkan file kode
Simpan kode aplikasi Flask berikut sebagai file app.py. Layanan akan mendengarkan pada port 8000.
Langkah 2: Unggah kode ke OSS
Unggah file app.py ke Bucket OSS. Pastikan bahwa Bucket OSS dan ruang kerja EAS berada di wilayah yang sama. Sebagai contoh, unggah file ke direktori oss://examplebucket/code/.
Langkah 3: Konfigurasikan dan sebarkan layanan
Masuk ke Konsol PAI. Pilih wilayah di bagian atas halaman, pilih ruang kerja yang diinginkan, dan klik Elastic Algorithm Service (EAS).
Di tab Inference Service, klik Deploy Service. Di bagian Custom Model Deployment, klik Custom Deployment.
Di halaman konfigurasi, atur parameter utama di bagian Informasi Lingkungan dan Informasi Sumber Daya sebagai berikut:
Metode Penyebaran: Pilih Image-based Deployment. Di bidang Image Configuration, pilih Alibaba Cloud Image
python-inference:3.9-ubuntu2004.Pemasangan Penyimpanan: Klik OSS dan pasang direktori OSS yang berisi
app.pyke jalur/mnt/data/di dalam kontainer.Uri: Jalur ke direktori OSS yang berisi kode, seperti
oss://examplebucket/code/.Mount Path: Jalur di dalam kontainer ke direktori yang dipasang. Sebagai contoh,
/mnt/data/.
Command: Perintah startup adalah
python /mnt/data/app.pykarenaapp.pytelah dipasang ke direktori/mnt/data/dari kontainer.Pengaturan Pustaka Pihak Ketiga: Kode contoh bergantung pada pustaka
flask, yang tidak termasuk dalam gambar resmi. Tambahkanflaskke Third-party Libraries agar diinstal secara otomatis saat startup.Konfigurasi sumber daya: Instans CPU kecil sudah cukup untuk contoh ini.
Resource Type: Public Resources.
Resource Type:
ecs.c7.large.
Setelah menyelesaikan konfigurasi, klik Deploy. Penyebaran selesai ketika status layanan berubah menjadi Running. Lanjutkan ke memanggil layanan.
Referensi
Kelola lingkungan dan dependensi
Di bagian Environment Information, konfigurasikan lingkungan dan dependensi untuk layanan.
Parameter | Deskripsi |
Image Configuration | Gambar berfungsi sebagai lingkungan runtime dasar untuk layanan. Gunakan gambar resmi yang disediakan oleh PAI atau gambar kustom yang dibuat sendiri dengan memilih Custom Image atau memasukkan Image Address. Untuk informasi lebih lanjut, lihat Gambar Kustom. Catatan Jika gambar berisi WebUI, pilih Enable Web App, dan EAS secara otomatis memulai server web untuk memberikan akses langsung ke halaman frontend. |
Mount Storage | Memasang model, kode, atau data dari layanan penyimpanan cloud seperti OSS dan NAS ke jalur lokal di dalam kontainer memisahkan kode atau data dari lingkungan, memungkinkan pembaruan independen. Untuk informasi lebih lanjut, lihat Pemasangan Penyimpanan. |
Mount Dataset | Jika Anda ingin melakukan manajemen versi untuk model atau data Anda, gunakan Dataset untuk memasangnya. Untuk informasi lebih lanjut, lihat Buat dan kelola dataset. |
Command, Port Number | Tetapkan perintah startup gambar, seperti Penting Mesin EAS mendengarkan pada port tetap 8080 dan 9090. Hindari menggunakan kedua port tersebut. |
Third-Party Library Settings | Jika Anda hanya perlu menginstal beberapa pustaka Python tambahan, tambahkan nama pustaka secara langsung atau tentukan Path of Requirements.txt untuk menghindari pembuatan ulang gambar. |
Environment Variables | Tetapkan variabel lingkungan untuk instans layanan sebagai pasangan kunci-nilai. |
Untuk instans yang dipercepat GPU, tentukan versi Driver GPU melalui untuk memenuhi persyaratan runtime model atau framework tertentu.
Konfigurasikan sumber daya komputasi
Di bagian Resource Information, konfigurasikan sumber daya komputasi layanan.
Parameter | Deskripsi |
Resource Type | Pilih sumber daya publik, kelompok sumber daya EAS, atau kuota sumber daya. Catatan Aktifkan GPU Sharing untuk menyebarkan beberapa layanan model pada satu kartu GPU dan meningkatkan pemanfaatan sumber daya GPU dengan berbagi daya komputasi. Fitur ini cocok untuk kasus penggunaan dengan model kecil atau payload inferensi rendah. Ini hanya dapat diaktifkan saat Anda menggunakan kelompok sumber daya EAS atau kuota sumber daya. Untuk informasi lebih lanjut, lihat Berbagi GPU. |
Instances | Konfigurasikan beberapa instans untuk menghindari risiko titik kegagalan tunggal. |
Deployment Resources | Saat menggunakan sumber daya publik untuk spesifikasi yang didukung, aktifkan Bidding dan atur harga penawaran maksimum untuk merebut sumber daya idle dengan harga jauh lebih rendah daripada instans reguler. Fitur ini cocok untuk tugas inferensi yang tidak sensitif terhadap gangguan. Catatan |
Configure a System Disk |
|
Elastic Resource Pool | Fitur ini memungkinkan cloud bursting. Saat lalu lintas melebihi kapasitas sumber daya khusus Anda (kelompok sumber daya EAS atau kuota), layanan secara otomatis meledak ke sumber daya publik on-demand untuk menangani lonjakan. Selama skala-masuk, instans publik ini dilepaskan terlebih dahulu untuk meminimalkan biaya. Untuk informasi lebih lanjut, lihat Kolam sumber daya elastis. |
High-priority Resource Rescheduling | Setelah Anda mengaktifkan fitur ini, sistem secara berkala mencoba memigrasikan instans layanan dari sumber daya prioritas rendah, seperti sumber daya publik atau instans reguler, ke sumber daya prioritas tinggi, seperti kelompok sumber daya khusus atau instans spot. Ini mengoptimalkan biaya dan alokasi sumber daya. Fitur ini dapat menyelesaikan masalah berikut:
|
Pendaftaran Layanan dan Jaringan
EAS menyediakan opsi pendaftaran layanan dan konfigurasi jaringan yang fleksibel untuk memenuhi kebutuhan integrasi bisnis yang berbeda. Untuk informasi lebih lanjut, lihat Pemanggilan Layanan.
Parameter | Deskripsi |
Select Gateway | Secara default, layanan diekspos melalui Shared Gateway gratis. Untuk kemampuan lanjutan, termasuk nama domain kustom dan kontrol akses detail halus, peningkatan ke Dedicated Gateway tersedia sebagai opsi berbayar. Untuk informasi lebih lanjut, lihat Panggil melalui gateway khusus. Penting Saat Anda memanggil layanan melalui gateway, badan permintaan tidak boleh melebihi 1 MB. |
VPC Configuration | Dengan mengonfigurasi VPC, vSwitch, dan grup keamanan, aktifkan akses langsung ke layanan dalam VPC atau izinkan layanan untuk mengakses sumber daya Internet. Untuk informasi lebih lanjut, lihat Konfigurasi jaringan. |
Associate NLB | Asosiasikan layanan dengan instans Network Load Balancer (NLB) untuk mencapai penyeimbangan beban yang lebih fleksibel dan detail halus. Untuk informasi lebih lanjut, lihat Panggil layanan menggunakan instans NLB terasosiasi. |
Service Discovery Nacos | Daftarkan layanan ke Pusat Registrasi Mikroservis untuk mengaktifkan penemuan layanan otomatis dan sinkronisasi dalam model mikroservis. Untuk informasi lebih lanjut, lihat Panggil layanan menggunakan Nacos. |
Untuk mengaktifkan komunikasi RPC berkinerja tinggi, aktifkan dukungan gRPC untuk gateway layanan melalui .
Keamanan Layanan
Untuk meningkatkan keamanan layanan, konfigurasikan parameter berikut di bagian Features:
Parameter | Deskripsi |
Custom Authentication | Jika Anda tidak ingin menggunakan token yang dibuat sistem, sesuaikan token otentikasi untuk akses layanan di sini. |
Configure Secure Encryption Environment | Mengintegrasikan dengan layanan komputasi rahasia untuk menjalankan inferensi dalam enklaf aman, mengenkripsi data, model, dan kode saat digunakan. Fitur ini terutama untuk file penyimpanan yang dipasang. Anda harus memasang penyimpanan sebelum mengaktifkan fitur ini. Untuk informasi lebih lanjut, lihat Layanan Inferensi Terenkripsi Aman. |
Instance RAM Role | Dengan mengaitkan peran RAM dengan instans, kode dalam layanan dapat menggunakan kredensial STS sementara untuk mengakses sumber daya cloud lainnya. Ini menghilangkan kebutuhan untuk mengonfigurasi AccessKey tetap dan mengurangi risiko kebocoran kunci. Untuk informasi lebih lanjut, lihat Konfigurasikan Peran RAM EAS. |
Pastikan stabilitas dan ketersediaan tinggi layanan
Fitur grup di bagian Basic Information memungkinkan Anda mengelompokkan beberapa versi layanan atau layanan yang menggunakan sumber daya heterogen. Grup-grup ini kemudian dapat digunakan dengan kebijakan manajemen lalu lintas untuk menerapkan rilis bertahap. Untuk informasi lebih lanjut, lihat Rilis Bertahap.
Untuk memastikan stabilitas dan keandalan layanan di lingkungan produksi Anda, konfigurasikan parameter berikut di bagian Features:
Parameter | Deskripsi |
Service Response Timeout Period | Konfigurasikan batas waktu yang sesuai untuk setiap permintaan. Defaultnya adalah 5 detik. Ini mencegah permintaan lambat menempati sumber daya layanan untuk waktu yang lama. |
Health Check | Saat Anda mengonfigurasi Health Check untuk layanan, sistem secara berkala memeriksa status kesehatan instansnya. Jika sebuah instans menjadi abnormal, sistem secara otomatis meluncurkan instans baru untuk memungkinkan pemulihan mandiri. Untuk informasi lebih lanjut, lihat Pemeriksaan kesehatan. |
Graceful Shutdown | Konfigurasikan Graceful Shutdown Time untuk memastikan bahwa selama pembaruan layanan atau skala-masuk, instans memiliki waktu yang cukup untuk menyelesaikan permintaan yang diterima sebelum keluar. Ini mencegah pemrosesan permintaan dari terganggu. Aktifkan Send SIGTERM untuk penanganan keluar yang lebih detail pada lapisan aplikasi. Untuk informasi lebih lanjut, lihat Pembaruan bergulir dan keluar anggun. |
Rolling Update | Dengan mengonfigurasi Number of Instances Exceeding Expectation dan Maximum Number of Unavailable Instances, miliki kontrol detail atas kebijakan penggantian instans selama proses pembaruan layanan dan selesaikan peningkatan versi tanpa mengganggu layanan. Untuk informasi lebih lanjut, lihat Pembaruan bergulir dan keluar anggun. |
Optimasi Kinerja
Konfigurasi berikut penting untuk meningkatkan kinerja layanan. Ini dapat mempercepat startup, meningkatkan throughput, dan mengurangi latensi, terutama untuk aplikasi intensif sumber daya seperti model besar.
Parameter | Deskripsi | |
Akselerasi Penyimpanan | Distributed Cache Acceleration | Meng-cache model atau file data dari penyimpanan yang dipasang, seperti OSS, ke instans lokal untuk meningkatkan kecepatan baca dan mengurangi latensi I/O. Untuk informasi lebih lanjut, lihat Cache data ke direktori lokal. |
Model Weights Service (MoWS) | Secara signifikan meningkatkan efisiensi penskalaan dan kecepatan startup layanan dalam skenario penyebaran instans berskala besar melalui caching lokal dan berbagi bobot model lintas instans. Untuk informasi lebih lanjut, lihat Layanan Bobot Model. | |
Konfigurasi Sumber Daya | Shared Memory | Konfigurasikan memori bersama untuk instans. Ini memungkinkan beberapa proses dalam kontainer untuk membaca dan menulis langsung ke wilayah memori yang sama, menghindari overhead penyalinan dan transmisi data. Ini cocok untuk skenario yang memerlukan komunikasi antar-proses yang efisien. |
Distributed Inference | Instans inferensi tunggal ditempatkan di beberapa mesin untuk bersama-sama menyelesaikan tugas inferensi. Ini menyelesaikan masalah bahwa model ultra-besar tidak dapat ditempatkan di satu mesin. Untuk informasi lebih lanjut, lihat Inferensi terdistribusi multi-mesin. | |
Penjadwalan Cerdas | LLM Intelligent Router | Saat layanan LLM memiliki beberapa instans backend, LLM Intelligent Router mendistribusikan permintaan secara dinamis berdasarkan beban backend untuk menyeimbangkan daya komputasi dan penggunaan memori GPU di semua instans dan meningkatkan pemanfaatan sumber daya kluster. Untuk informasi lebih lanjut, lihat Router cerdas LLM. |
Pengamatan dan Diagnostik Layanan
Untuk mendapatkan wawasan tentang status layanan Anda dan menyelesaikan masalah dengan cepat, aktifkan fitur berikut di bagian Features:
Parameter | Deskripsi |
Save Call Records | Simpan secara permanen semua catatan permintaan dan respons layanan di MaxCompute atau Simple Log Service untuk audit, analisis, atau pemecahan masalah.
|
Tracing Analysis | Beberapa gambar resmi mencakup komponen koleksi bawaan, memungkinkan Anda mengaktifkan tracing dengan satu klik. Untuk gambar lainnya, integrasikan probe ARMS melalui konfigurasi sederhana untuk mencapai pemantauan end-to-end dari pemanggilan layanan. Untuk informasi lebih lanjut, lihat Aktifkan Tracing untuk Aplikasi Berbasis LLM di EAS. Metode konfigurasi adalah sebagai berikut:
|
Layanan Asinkron dan Elastis
Inferensi Asinkron: Untuk skenario inferensi jangka panjang, seperti AIGC dan pemrosesan video, aktifkan Asynchronous Queue. Ini memungkinkan klien menerima respons segera setelah memulai panggilan dan mendapatkan hasil akhir menggunakan polling atau callback. Untuk informasi lebih lanjut, lihat Sebarkan layanan inferensi asinkron.
Layanan Elastic Job: Di bagian Features, aktifkan Task Mode untuk menjalankan beban kerja inferensi sebagai pekerjaan serverless on-demand. Sumber daya disediakan secara otomatis untuk tugas dan dilepaskan setelah selesai untuk menghemat biaya. Untuk informasi lebih lanjut, lihat Layanan Elastic Job.
Modifikasi parameter konfigurasi dalam file JSON
Di bagian Service Configuration, lihat dan edit langsung JSON lengkap untuk konfigurasi UI saat ini.
Untuk skenario konfigurasi otomatis dan detail halus, Anda juga dapat menggunakan file JSON untuk mendefinisikan dan menyebarkan layanan secara langsung. Untuk informasi lebih lanjut, lihat Penyebaran JSON.