Penerapan kustom Elastic Algorithm Service (EAS) menyediakan cara yang fleksibel dan komprehensif untuk meng-host layanan inferensi AI, memungkinkan Anda mengemas algoritma atau model apa pun menjadi layanan online.
Kami menyarankan Anda mencoba terlebih dahulu penerapan berbasis skenario untuk kasus penggunaan seperti LLM dan ComfyUI. Jika pendekatan tersebut tidak memenuhi kebutuhan Anda, gunakan penerapan kustom.
Memulai dengan cepat: Terapkan layanan web sederhana
Bagian ini menjelaskan cara menerapkan layanan web sederhana menggunakan penerapan berbasis image.
Langkah 1: Siapkan file kode
Simpan kode aplikasi Flask berikut sebagai file app.py. Perhatikan bahwa layanan mendengarkan pada port 8000.
Langkah 2: Unggah kode ke OSS
Unggah file app.py ke Bucket OSS. Pastikan bucket OSS dan ruang kerja EAS berada dalam wilayah yang sama. Misalnya, unggah file ke direktori oss://examplebucket/code/.
Langkah 3: Konfigurasikan dan terapkan layanan
-
Masuk ke Konsol PAI. Pilih wilayah di bagian atas halaman, lalu pilih ruang kerja yang diinginkan dan klik Elastic Algorithm Service (EAS).
Pada tab Inference Service, klik Deploy Service. Di bagian Custom Model Deployment, klik Custom Deployment.
Pada halaman konfigurasi, atur parameter utama di bagian Environment Information dan Resource Information sebagai berikut:
Deployment Method: Pilih Image-based Deployment.
Image Configuration: Pilih Alibaba Cloud Image
python-inference:3.9-ubuntu2004.Storage Mounting: Pasang direktori OSS yang berisi file
app.pyke path/mnt/data/di dalam kontainer.URI: Pilih direktori OSS tempat kode Anda berada. Dalam contoh ini, direktorinya adalah
oss://examplebucket/code/.Mount Path: Tentukan path lokal di dalam kontainer untuk direktori tersebut. Dalam contoh ini, path-nya adalah
/mnt/data/.
Command: Karena
app.pytelah dipasang ke direktori/mnt/data/di dalam kontainer, perintah startup-nya adalah:python /mnt/data/app.py.Third-party Library Settings: Kode contoh ini bergantung pada library
flask, yang tidak termasuk dalam image resmi yang dipilih. Anda dapat menambahkanflaskke Third-party Libraries. EAS akan secara otomatis menginstal library tersebut saat layanan dimulai.Resource Configuration: Alokasikan sumber daya komputasi yang sesuai untuk layanan. Untuk contoh sederhana ini, instans CPU kecil sudah cukup.
Resource Type: Public resources.
Resource Specification: Pilih
ecs.c7.large.
Setelah selesai mengonfigurasi, klik Deploy. Saat status layanan berubah menjadi Running, Anda dapat memanggil layanan.
Konfigurasi tambahan
Lingkungan runtime
Di bagian Environment Information, konfigurasikan lingkungan runtime dan dependensi untuk layanan Anda.
Parameter | Deskripsi |
Image Configuration | Lingkungan runtime dasar untuk layanan. Anda dapat menggunakan image resmi yang disediakan oleh PAI, atau menggunakan image Anda sendiri dengan memilih Custom Image atau memasukkan Image Address. Untuk informasi lebih lanjut, lihat Custom images. Catatan Jika image mencakup Web UI, pilih Enable Web App. EAS akan secara otomatis menjalankan server web, sehingga Anda dapat langsung mengakses halaman front-end. |
Mount storage | Pasang model, kode, atau data dari layanan penyimpanan cloud seperti OSS dan NAS ke path lokal di dalam kontainer. Praktik ini memisahkan kode dan data dari lingkungan serta menyederhanakan pembaruan independen. Untuk informasi lebih lanjut, lihat storage mounting. |
Mount dataset | Untuk mengelola versi model atau data Anda, Anda dapat menggunakan fitur Dataset untuk pemasangan. Untuk informasi lebih lanjut, lihat Create and manage datasets. |
Command | Tentukan perintah startup untuk image, seperti |
Port Number | Tentukan port pendengaran layanan. Ini bersifat opsional dalam beberapa skenario. Misalnya, jika layanan Anda berlangganan antrian pesan alih-alih bergantung pada traffic dari gerbang EAS, penentuan port bersifat opsional. Penting Mesin EAS menyisihkan port 8080 dan 9090. Untuk menghindari konflik startup, jangan gunakan port-port tersebut saat menerapkan layanan baru. |
Third-party Library Settings | Jika Anda hanya perlu menginstal beberapa library Python tambahan, Anda dapat langsung menambahkan nama library tersebut atau menentukan Path of requirements.txt untuk menghindari pembuatan ulang image. |
Environment Variables | Tentukan variabel lingkungan untuk instans layanan sebagai pasangan kunci-nilai. |
Sumber daya komputasi
Di bagian Resource Information, Anda dapat mengonfigurasi sumber daya komputasi untuk layanan Anda, termasuk memilih jenis sumber daya dan spesifikasi instans, mengonfigurasi disk sistem, serta menetapkan jumlah replika dan kebijakan penjadwalan. Untuk informasi lebih lanjut, lihat resource configuration.
Jaringan layanan
VPC: Konfigurasikan VPC jika layanan Anda perlu mengakses sumber daya jaringan publik, mengakses database atau antrian pesan di dalam VPC, atau jika Anda ingin klien memanggil layanan secara langsung melalui VPC. Untuk informasi lebih lanjut, lihat Accessing public or internal network resources.
Service invocation: Setelah penerapan, pilih metode pemanggilan yang sesuai berdasarkan skenario bisnis Anda, seperti gateway, NLB, Nacos, atau gRPC. Untuk informasi lebih lanjut, lihat service invocation.
Keamanan layanan
Di bagian Features, konfigurasikan otentikasi dan keamanan data untuk layanan Anda.
Parameter | Deskripsi |
Custom Authentication | Jika Anda tidak ingin menggunakan token yang dihasilkan sistem, Anda dapat menyesuaikan token otentikasi untuk akses layanan. |
Configure Secure Encryption Environment | Integrasikan dengan layanan manajemen kepercayaan sistem untuk mengenkripsi data, model, dan kode secara aman selama penerapan dan pemanggilan, sehingga memungkinkan inferensi tepercaya. Fitur ini terutama berlaku untuk file penyimpanan yang dipasang. Aktifkan fitur ini setelah Anda mengonfigurasi storage mounting. Untuk informasi lebih lanjut, lihat Secure encrypted inference service. |
Instance RAM Role | Mengaitkan Instance RAM Role dengan instans memungkinkan kode layanan menggunakan kredensial sementara Security Token Service (STS) untuk mengakses sumber daya cloud lainnya. Metode ini menghilangkan kebutuhan akan AccessKey tetap, sehingga mengurangi risiko kebocoran kunci. Untuk informasi lebih lanjut, lihat Configure an EAS RAM role. |
AI Safety Guardrail | Fitur ini melakukan pemeriksaan keamanan konten pada input dan output layanan inferensi LLM untuk mencegat konten berbahaya. Fitur ini mendukung API OpenAI Completions (teks-ke-teks), Chat Completions (teks-ke-teks), dan Image Generation (teks-ke-gambar).. Catatan Fitur ini hanya tersedia di wilayah China (Shanghai). |
Visibility | Mengontrol visibilitas layanan dalam daftar layanan:
|
Stabilitas layanan
Di bagian Features, Anda dapat mengonfigurasi pengaturan berikut yang terkait stabilitas:
Service Response Timeout Period: Konfigurasikan periode timeout untuk setiap permintaan. Nilai default-nya adalah 5 detik. Untuk skenario yang memakan waktu seperti inferensi model besar atau keluaran streaming, tingkatkan nilai ini untuk mencegah permintaan terpotong.
Health Check: Sistem secara berkala memeriksa ketersediaan instans, secara otomatis mengganti instans abnormal untuk memungkinkan self-healing gangguan. Untuk informasi lebih lanjut, lihat health check.
Compute monitoring & fault tolerance: Memantau status kesehatan sumber daya komputasi untuk layanan inferensi terdistribusi secara real time, memungkinkan deteksi gangguan otomatis dan self-healing cerdas. Untuk informasi lebih lanjut, lihat Compute power monitoring and fault tolerance.
Deployment and update strategies: Gunakan fitur seperti rilis canary, pembaruan rolling, shutdown yang mulus, dan jadwal pembaruan untuk memastikan layanan tidak terganggu selama peningkatan versi layanan. Untuk informasi lebih lanjut, lihat Release management.
Kinerja layanan
Gunakan akselerasi penyimpanan dan penjadwalan cerdas untuk meningkatkan kinerja layanan, mempercepat kecepatan startup, meningkatkan throughput, dan mengurangi latensi.
Distributed cache acceleration: Menyimpan cache file model atau data dari penyimpanan yang dipasang, seperti OSS, ke penyimpanan lokal instans untuk mengurangi latensi I/O. Untuk informasi lebih lanjut, lihat Model cache acceleration.
Model Weight Service (MoWS): Secara signifikan meningkatkan efisiensi penskalaan dan kecepatan startup layanan untuk penerapan instans berskala besar dengan menyimpan cache bobot model secara lokal dan membagikannya di antara instans. Untuk informasi lebih lanjut, lihat Model Weight Service.
LLM Intelligent Router: Untuk layanan LLM dengan beberapa instans backend, fitur ini mendistribusikan permintaan secara dinamis berdasarkan beban backend. Hal ini menyeimbangkan daya komputasi dan penggunaan memori GPU di seluruh instans serta meningkatkan pemanfaatan sumber daya kluster. Untuk informasi lebih lanjut, lihat LLM intelligent router deployment.
Observabilitas layanan
Di bagian Features, aktifkan fitur observabilitas berikut untuk mendapatkan wawasan tentang status layanan dan troubleshooting masalah:
Parameter | Deskripsi |
Save Call Records | Simpan semua catatan permintaan dan tanggapan layanan secara persisten di MaxCompute atau Simple Log Service untuk audit, analisis, atau troubleshooting.
|
Tracing Analysis | Beberapa image resmi memiliki komponen koleksi bawaan yang memungkinkan Anda mengaktifkan tracing dengan satu klik. Untuk image lainnya, Anda dapat mengintegrasikan agen ARMS melalui konfigurasi sederhana untuk pemantauan end-to-end rantai panggilan layanan. Untuk informasi lebih lanjut, lihat Enable tracing for LLM applications in EAS. Untuk mengonfigurasi tracing:
|
Layanan asinkron dan elastis
Asynchronous inference: Untuk skenario inferensi berdurasi panjang seperti AIGC dan pemrosesan video, kami menyarankan Anda mengaktifkan Asynchronous Queue. Klien menerima respons langsung dan dapat mengambil hasil akhir dengan polling atau menggunakan callback. Untuk informasi lebih lanjut, lihat Deploy an asynchronous inference service.
Elastic Job Service: Di bagian Features, aktifkan Task Mode untuk menerapkan layanan inferensi sebagai layanan pekerjaan on-demand. Ini cocok untuk pemrosesan data batch dan tugas terjadwal. Sumber daya secara otomatis dilepas setelah tugas selesai untuk menghemat biaya. Untuk informasi lebih lanjut, lihat Elastic Job Service.
Konfigurasi JSON
Di bagian Service Configuration, Anda dapat melihat dan langsung mengedit konfigurasi JSON lengkap untuk pengaturan UI saat ini.
Untuk otomatisasi dan konfigurasi detail halus, Anda juga dapat mendefinisikan dan menerapkan layanan secara langsung menggunakan file JSON. Untuk informasi lebih lanjut, lihat Deploy services by using JSON.