Gunakan layanan Scalable Job untuk inferensi Portret AI guna mencegah pemanfaatan resource yang tidak optimal dan gangguan permintaan selama skala-masuk.
Prasyarat
Virtual private cloud (VPC) telah dibuat dan akses Internet diaktifkan untuk VPC tersebut.
VPC, vSwitch, dan security group telah dibuat. Untuk informasi selengkapnya, lihat VPC dan vSwitch dan Gunakan security group.
Gateway NAT Internet telah dibuat di dalam VPC. Alamat IP elastis (EIP) dikaitkan dengan gateway tersebut dan entri SNAT telah dikonfigurasi pada gateway. Untuk informasi selengkapnya, lihat Gateway NAT Internet.
Untuk pelatihan model dan pembuatan potret, siapkan 5 hingga 20 gambar pelatihan dan 1 gambar templat. Format gambar berikut didukung:
.jpg,.jpeg, dan.png. Pastikan ukuran setiap gambar lebih besar dari 512 x 512 piksel.Potret satu orang: Gambar templat harus memuat wajah seseorang. Wajah dalam beberapa gambar pelatihan harus milik orang yang sama.
Potret multi-orang: Gambar templat harus memuat beberapa wajah, dan jumlah wajah tersebut harus sama dengan nilai parameter model_id yang ditentukan untuk pelatihan model.
Bucket OSS telah dibuat. Untuk informasi selengkapnya, lihat Buat bucket.
Batasan
Solusi potret AI hanya tersedia di wilayah China (Beijing) dan Singapura.
Terapkan layanan pekerjaan yang dapat diskalakan untuk inferensi
Terapkan layanan verifikasi
Masuk ke Konsol PAI. Pilih wilayah di bagian atas halaman. Lalu, pilih ruang kerja yang diinginkan dan klik Elastic Algorithm Service (EAS).
-
Klik Deploy Service. Di bagian Custom Model Deployment, klik Custom Deployment.
Pada halaman Custom Deployment, konfigurasikan parameter berikut. Gunakan nilai default untuk parameter lainnya. Untuk informasi selengkapnya, lihat Custom Deployment.
Pada bagian Basic Information, atur nama layanan. Contoh:
photog_check.Pada bagian Environment Information, konfigurasikan parameter berikut:
Parameter
Deskripsi
Deployment Method
Pilih Image-based Deployment, lalu pilih Asynchronous Queue.
Image Configuration
Pilih Image Address dan masukkan alamat gambar:
China (Beijing):
registry.cn-beijing.aliyuncs.com/mybigpai/photog_pub:check.1.0.0.pub.Singapura:
registry.ap-southeast-1.aliyuncs.com/mybigpai/photog_pub:check.1.0.0.pub.
Code Build
Pilih OSS sebagai tipe mount dan atur parameter berikut:
Uri: Jalur bucket OSS Anda. Contoh:
oss://examplebucket/.Mount Path: Atur ke
/photog_oss.
Command to Run
Atur ke
python app.py.Port Number
Atur ke 7860.
Pada bagian Resource Information, atur parameter berikut:
Parameter
Deskripsi
Resource Type
Pilih Public Resources.
Deployment
Pilih tipe instans seri GU30 pada tab GPU. Direkomendasikan:
ml.gu7i.c32m188.1-gu30.Configure a system disk
Atur ke 120 GiB.
Pada bagian Asynchronous Queue, atur parameter berikut:
Parameter
Deskripsi
Resource Type
Pilih Public Resources.
Deployment
Jumlah replika: 1
CPU (core): 8
Memori (GB): 64
Maximum Data for A Single Input Request
Atur ke 20480 KB untuk memastikan penyimpanan yang cukup bagi setiap permintaan dalam antrian.
Maximum Data for A Single Output
Pada bagian Service Access, pilih VPC, vSwitch, dan security group yang telah Anda buat.
Pada bagian Service Configurations, tambahkan konfigurasi berikut. Lihat contoh konfigurasi lengkap di bawah ini untuk parameter baru.
Field
Parameter baru
metadata
Tambahkan parameter berikut:
{ "metadata": { "name": "photog_check", "instance": 1, "rpc": { "keepalive": 3600000, "worker_threads": 1 }, "type": "Async" }, "cloud": { "computing": { "instance_type": "ml.gu7i.c32m188.1-gu30", "instances": null }, "networking": { "vswitch_id": "vsw-2ze4o9kww55051tf2****", "security_group_id": "sg-2ze0kgiee55d0fn4****", "vpc_id": "vpc-2ze5hl4ozjl4fo7q3****" } }, "features": { "eas.aliyun.com/extra-ephemeral-storage": "100Gi" }, "queue": { "cpu": 8, "max_delivery": 1, "min_replica": 1, "memory": 64000, "resource": "", "source": { "max_payload_size_kb": 20480 }, "sink": { "max_payload_size_kb": 20480 } }, "storage": [ { "oss": { "path": "oss://examplebucket/", "readOnly": false }, "properties": { "resource_type": "code" }, "mount_path": "/photog_oss" } ], "containers": [ { "image": "registry.cn-beijing.aliyuncs.com/mybigpai/photog_pub:check.1.0.0.pub", "script": "python app.py", "port": 7860 } ] }keepalive: Waktu pemrosesan maksimum untuk satu permintaan, dalam milidetik. Atur ke 3600000.
worker_threads: Jumlah thread pemrosesan konkuren per instans Elastic Algorithm Service (EAS).
Nilai default: 5, artinya lima tugas pertama dalam antrian diberikan ke instans yang sama. Atur ke 1 untuk memproses permintaan secara berurutan.
queue
Tambahkan
"max_delivery": 1untuk mencegah pengiriman ulang berulang setelah terjadi kegagalan.
Klik Deploy.
Terapkan layanan pelatihan
Masuk ke Konsol PAI. Pilih wilayah di bagian atas halaman. Lalu, pilih ruang kerja yang diinginkan dan klik Elastic Algorithm Service (EAS).
-
Klik Deploy Service. Di bagian Custom Model Deployment, klik Custom Deployment.
Pada halaman Custom Deployment, konfigurasikan parameter berikut. Gunakan nilai default untuk parameter lainnya. Untuk informasi selengkapnya, lihat Custom Deployment.
Pada bagian Basic Information, atur nama layanan. Contoh:
photog_train_pmml.Pada bagian Environment Information, atur parameter berikut:
Parameter
Deskripsi
Deployment Method
Pilih Image-based Deployment, lalu pilih Asynchronous Queue.
Image Configuration
Pilih Image Address dan masukkan alamat gambar:
China (Beijing):
registry.cn-beijing.aliyuncs.com/mybigpai/photog_pub:train.1.0.0.pub.Singapura:
registry.ap-southeast-1.aliyuncs.com/mybigpai/photog_pub:train.1.0.0.pub.
Code configuration
Pilih OSS sebagai tipe mount dan atur parameter berikut:
Uri: Jalur bucket OSS Anda. Harus sesuai dengan jalur yang ditentukan untuk layanan verifikasi. Contoh:
oss://examplebucket/.Mount Path: Atur ke
/photog_oss.
Command to Run
Atur ke
python app.py.Port Number
Atur ke 7860.
Pada bagian Resource Information, atur parameter berikut:
Parameter
Deskripsi
Resource Type
Pilih Public Resources.
Deployment
Pilih tipe instans seri GU30 pada tab GPU. Direkomendasikan:
ml.gu7i.c32m188.1-gu30.Configure a system disk
Atur ke 120 GiB.
Pada bagian Asynchronous Queue, atur parameter berikut:
Parameter
Deskripsi
Resource Type
Pilih Public Resources.
Deployment
Jumlah replika: 1
CPU (core): 8
Memori (GB): 64
Maximum Data for A Single Input Request
Atur ke 20480 KB untuk memastikan penyimpanan yang cukup bagi setiap permintaan dalam antrian.
Maximum Data for A Single Output
Pada bagian Service Access, pilih VPC, vSwitch, dan security group yang telah Anda buat.
Pada bagian Service Configurations, tambahkan konfigurasi berikut. Lihat contoh konfigurasi lengkap di bawah ini untuk parameter baru.
Field
Parameter baru
autoscaler
(Opsional) Konfigurasi auto scaling horizontal. Untuk informasi selengkapnya, lihat Horizontal auto scaling.
{ "autoscaler": { "behavior": { "scaleDown": { "stabilizationWindowSeconds": 60 } }, "max": 5, "min": 1, "strategies": { "queue[backlog]": 1 } }, "metadata": { "name": "photog_train_pmml", "instance": 1, "rpc": { "keepalive": 3600000, "worker_threads": 1 }, "type": "Async" }, "cloud": { "computing": { "instance_type": "ml.gu7i.c32m188.1-gu30", "instances": null }, "networking": { "vswitch_id": "vsw-2ze4o9kww55051tf2****", "security_group_id": "sg-2ze0kgiee55d0fn4****", "vpc_id": "vpc-2ze5hl4ozjl4fo7q3****" } }, "features": { "eas.aliyun.com/extra-ephemeral-storage": "120Gi" }, "queue": { "cpu": 8, "max_delivery": 1, "min_replica": 1, "memory": 64000, "resource": "", "source": { "max_payload_size_kb": 20480 }, "sink": { "max_payload_size_kb": 20480 } }, "storage": [ { "oss": { "path": "oss://examplebucket/", "readOnly": false }, "properties": { "resource_type": "code" }, "mount_path": "/photog_oss" } ], "containers": [ { "image": "registry.cn-beijing.aliyuncs.com/mybigpai/photog_pub:train.1.0.0.pub", "script": "python app.py", "port": 7860 } ] }metadata
Tambahkan parameter berikut:
{ "metadata": { "name": "photog_check", "instance": 1, "rpc": { "keepalive": 3600000, "worker_threads": 1 }, "type": "Async" }, "cloud": { "computing": { "instance_type": "ml.gu7i.c32m188.1-gu30", "instances": null }, "networking": { "vswitch_id": "vsw-2ze4o9kww55051tf2****", "security_group_id": "sg-2ze0kgiee55d0fn4****", "vpc_id": "vpc-2ze5hl4ozjl4fo7q3****" } }, "features": { "eas.aliyun.com/extra-ephemeral-storage": "100Gi" }, "queue": { "cpu": 8, "max_delivery": 1, "min_replica": 1, "memory": 64000, "resource": "", "source": { "max_payload_size_kb": 20480 }, "sink": { "max_payload_size_kb": 20480 } }, "storage": [ { "oss": { "path": "oss://examplebucket/", "readOnly": false }, "properties": { "resource_type": "code" }, "mount_path": "/photog_oss" } ], "containers": [ { "image": "registry.cn-beijing.aliyuncs.com/mybigpai/photog_pub:check.1.0.0.pub", "script": "python app.py", "port": 7860 } ] }keepalive: Waktu pemrosesan maksimum untuk satu permintaan, dalam milidetik. Atur ke 3600000.
worker_threads: Jumlah thread pemrosesan konkuren per instans EAS.
Nilai default: 5, artinya lima tugas pertama dalam antrian diberikan ke instans yang sama. Atur ke 1 untuk memproses permintaan secara berurutan.
queue
Tambahkan
"max_delivery": 1untuk mencegah pengiriman ulang berulang setelah terjadi kegagalan.
Klik Deploy.
Terapkan layanan prediksi
Layanan prediksi diterapkan sebagai layanan Scalable Job.
Klik Deploy Service. Di bagian Custom Model Deployment, klik JSON Deployment.
Masukkan konfigurasi dalam editor JSON.
{ "metadata": { "name": "photog_pre_pmml", "instance": 1, "rpc": { "keepalive": 3600000, "worker_threads": 1 }, "type": "ScalableJob" }, "cloud": { "computing": { "instance_type": "ecs.gn6v-c8g1.2xlarge", "instances": null }, "networking": { "vswitch_id": "vsw-2ze4o9kww55051tf2****", "security_group_id": "sg-2ze0kgiee55d0fn4****", "vpc_id": "vpc-2ze5hl4ozjl4fo7q3****" } }, "features": { "eas.aliyun.com/extra-ephemeral-storage": "120Gi" }, "queue": { "cpu": 8, "max_delivery": 1, "min_replica": 1, "memory": 64000, "resource": "", "source": { "max_payload_size_kb": 20480 }, "sink": { "max_payload_size_kb": 20480 } }, "storage": [ { "oss": { "path": "oss://examplebucket/", "readOnly": false }, "properties": { "resource_type": "code" }, "mount_path": "/photog_oss" } ], "containers": [ { "image": "registry.cn-beijing.aliyuncs.com/mybigpai/photog_pub:infer.1.0.0.pub", "env": [ { "name": "URL", "value": "http://127.0.0.1:8000" }, { "name": "AUTHORIZATION", "value": "=" } ], "script": "python app.py", "port": 7861 }, { "image": "eas-registry-vpc.cn-beijing.cr.aliyuncs.com/pai-eas/stable-diffusion-webui:3.2", "port": 8000, "script": "./webui.sh --listen --port 8000 --skip-version-check --no-hashing --no-download-sd-model --skip-install --api --filebrowser --sd-dynamic-cache --data-dir /photog_oss/webui/" } ] }Tabel berikut menjelaskan parameter utama. Untuk detail parameter lainnya, lihat JSON Deployment.
Parameter
Deskripsi
metadata
Name
Nama layanan. Harus unik dalam wilayah tersebut.
Type
Atur ke ScalableJob untuk menerapkan layanan inferensi asinkron sebagai layanan Scalable Job.
containers
Image
Alamat gambar untuk layanan prediksi potret AI dan layanan prediksi WebUI. Daftar berikut menyediakan gambar yang didukung. Solusi ini menggunakan gambar untuk wilayah China (Beijing).
Alamat gambar untuk China (Beijing):
Layanan prediksi potret AI:
registry.cn-beijing.aliyuncs.com/mybigpai/photog_pub:infer.1.0.0.pub.Layanan prediksi WebUI:
eas-registry-vpc.cn-beijing.cr.aliyuncs.com/pai-eas/stable-diffusion-webui:3.2.
Alamat gambar untuk Singapura:
Layanan prediksi potret AI:
registry.ap-southeast-1.aliyuncs.com/mybigpai/photog_pub:infer.1.0.0.pub.Layanan prediksi WebUI:
eas-registry-vpc.ap-southeast-1.cr.aliyuncs.com/pai-eas/stable-diffusion-webui:3.2.
storage
Path
Jalur mount OSS. Gunakan jalur bucket OSS yang sama seperti layanan verifikasi. Contoh:
oss://examplebucket/.Unduh dan ekstrak file model yang diperlukan oleh WebUI, lalu simpan di bucket OSS Anda pada
oss://examplebucket/photog_oss/webuidengan struktur direktori seperti di bawah ini. Untuk informasi lebih lanjut tentang mengunggah file ke OSS, lihat Alat baris perintah ossutil 1.0. Untuk informasi lebih lanjut tentang mengunggah file ke NAS, lihat Panduan cepat (Linux) dan Gunakan Workbench untuk mengelola file pada Instance ECS.
Mount path
Atur ke
/photog_oss.Klik Deploy.
Saat Anda menerapkan layanan Scalable Job, layanan antrian akan dibuat secara otomatis dengan auto scaling horizontal yang diaktifkan secara default.
Panggil layanan
Setelah layanan diterapkan, panggil layanan tersebut untuk menghasilkan potret AI.
Saat memanggil layanan, atur taskType ke query untuk permintaan inferensi, sebagaimana dijelaskan dalam Panggil layanan. gunakan kode contoh berikut:
import json
from eas_prediction import QueueClient
# Buat klien antrian input untuk menulis data masukan.
input_queue = QueueClient('182848887922****.cn-shanghai.pai-eas.aliyuncs.com', 'photog_check')
input_queue.set_token('<token>')
input_queue.init()
datas = json.dumps(
{
'request_id' : 12345,
'images' : ["xx.jpg", "xx.jpg"], # url, berupa daftar
'configure' : {
'face_reconize' : True, # Memeriksa apakah semua gambar adalah orang yang sama.
}
}
)
# Tentukan taskType sebagai query.
tags = {"taskType": "query"}
index, request_id = input_queue.put(f'{datas}', tags)
print(index, request_id)
# Lihat detail antrian input.
attrs = input_queue.attributes()
print(attrs)Dokumentasi terkait
Untuk informasi tentang cara menggunakan layanan Scalable Job untuk pelatihan, lihat Terapkan layanan pelatihan Kohya yang dapat diskalakan.
Untuk informasi tentang layanan Scalable Job, lihat Ikhtisar layanan Scalable Job.