All Products
Search
Document Center

Platform For AI:Optimalkan dan terapkan model dengan Blade EAS Plugin

Last Updated:Mar 12, 2026

Blade EAS Plugin secara otomatis mengoptimalkan model selama penerapan layanan EAS melalui pengaturan file konfigurasi.

Prasyarat dan batasan

Prosesor TensorFlow dan PyTorch di EAS telah mengintegrasikan Blade runtime SDK. Konfigurasikan file konfigurasi layanan EAS untuk mengoptimalkan model yang diterapkan menggunakan prosesor tersebut.

Catatan

Blade EAS Plugin mengoptimalkan model sebelum penerapan EAS. Proses optimasi memakan waktu 3 hingga 10 menit, tergantung pada kompleksitas model. Plugin ini dijalankan sekali selama penerapan layanan EAS awal. Operasi skala keluar (scale-out) dan skala-masuk (scale-in) berikutnya menggunakan model yang telah dioptimalkan.

Aktifkan Blade EAS Plugin hanya saat membuat layanan menggunakan klien eascmd. Untuk konfigurasi klien eascmd, lihat Unduh dan autentikasi klien dan Referensi perintah.

Tambahkan bidang plugins ke file konfigurasi layanan EAS untuk mengaktifkan Blade EAS Plugin. Untuk detailnya, lihat bidang plugins. Contoh berikut menunjukkan konfigurasi Blade EAS Plugin:

bidang plugins

Tambahkan bidang plugins ke file konfigurasi layanan EAS untuk mengaktifkan Blade EAS Plugin. Bidang ini berisi daftar satu atau beberapa elemen dictionary. Untuk detail bidang, lihat Buat layanan.

Setiap elemen dictionary berisi kunci-kunci berikut:

Tabel 1. Bidang dalam plugins

Kunci

Wajib

Deskripsi

command

Ya

Perintah optimasi yang akan dijalankan. Untuk nilai-nilainya, lihat Pemetaan antara prosesor dan citra runtime plugin.

image

Ya

Alamat registri citra runtime Blade EAS Plugin. Blade EAS Plugin mendukung framework TensorFlow dan PyTorch pada perangkat CPU dan GPU (CUDA 10.0). Lihat Pemetaan antara prosesor dan citra runtime plugin untuk nama prosesor dan alamat registri plugin.

resource

Tidak

Kelompok sumber daya untuk menjalankan optimasi. Ini berbeda dari bidang resource tingkat atas dalam file deskripsi layanan, yang menentukan kelompok sumber daya untuk layanan EAS.

Wajib untuk optimasi GPU. Di wilayah China (Hangzhou) dan China (Shanghai), gunakan kelompok sumber daya T4_8CORE. Di China (Shanghai), kelompok sumber daya V100_8CORE atau P4_8CORE juga didukung.

Catatan

Untuk GPU, kelompok sumber daya yang menjalankan Blade EAS Plugin harus menggunakan jenis kartu yang sama dengan kelompok sumber daya untuk layanan EAS.

gpu

Tidak

Jumlah GPU untuk optimasi. Biasanya 1.

config

Tidak

Item konfigurasi optimasi lanjutan. Saat ini hanya mendukung subkunci model_info untuk mengonfigurasi satu model.

Kuncinya adalah nama file model. Nilainya mendukung beberapa item optimasi yang sesuai dengan parameter antarmuka blade.optimize dalam paket PAI-Blade Wheel. Untuk item optimasi yang didukung, lihat Daftar item optimasi.

Tabel 2. Pemetaan antara prosesor dan citra runtime plugin

Jenis perangkat

Kunci

Nilai

CPU

image (Alamat Registri Blade EAS Plugin)

registry.cn-shanghai.aliyuncs.com/eas/pai-blade-deploy:cpu_latest

command (Perintah optimasi plugin)

blade --mode eas_plugin --optimize_for cpu

processor

  • Untuk prosesor TensorFlow: tensorflow_cpu_1.15.

  • Untuk prosesor PyTorch: pytorch_cpu_1.6.

GPU

image (Alamat Registri Blade EAS Plugin)

  • CUDA 10.0: registry.cn-shanghai.aliyuncs.com/eas/pai-blade-deploy:gpu_latest

  • CUDA 11.0: registry.cn-shanghai.aliyuncs.com/eas/pai-blade-deploy:cu110_latest

command (Perintah optimasi plugin)

blade --mode eas_plugin --optimize_for gpu

processor

  • Untuk TensorFlow 1.15 (CUDA 10.0): tensorflow_gpu_1.15.

  • Untuk Tensorflow 2.4 (CUDA 11.0): tensorflow_gpu_2.4.

  • Untuk PyTorch 1.6 (CUDA 10.0): pytorch_gpu_1.6.

  • Untuk PyTorch 1.7 (CUDA 11.0): pytorch_gpu_1.7.

Tabel 3. Daftar item optimasi

Item optimasi

Deskripsi

optimization_level

Tingkat optimasi. Tersedia dua tingkat:

  • o1: Default. Optimasi presisi tanpa kehilangan (lossless). Mencoba optimasi FP32 atau FP16 berdasarkan perangkat keras. Menjaga kehilangan presisi dalam ambang batas minimal.

  • o2: Mengaktifkan kuantisasi INT8. Gunakan untuk perangkat keras yang mendukung INT8.

test_data

File data uji. Opsional. File data uji harus disertakan dalam path atau paket terkompresi yang ditentukan oleh model_path. Sediakan data uji untuk inferensi model normal, terutama untuk optimasi model PyTorch. Untuk pembuatan file data uji, lihat Data tambahan untuk optimasi.

calibration_dataset

File data kalibrasi kuantisasi. Opsional. File data kalibrasi kuantisasi harus disertakan dalam path atau paket terkompresi yang ditentukan oleh model_path.

Jika tidak ditentukan, Blade melakukan kuantisasi INT8 online. Jika ditentukan, Blade melakukan kuantisasi INT8 offline.

Sediakan lebih dari 100 data kalibrasi. Untuk pembuatan file data kalibrasi, lihat Data tambahan untuk optimasi.

inputs

Daftar string. Opsional. Menentukan nama node input model. Jika tidak ditentukan, Blade menggunakan node tanpa node hulu sebagai node input.

Tidak diperlukan untuk model PyTorch.

outputs

Daftar string. Opsional. Menentukan nama node output model. Jika tidak ditentukan, Blade menggunakan node tanpa node hilir sebagai node output.

Tidak diperlukan untuk model PyTorch.

input_shapes

Bentuk-bentuk tensor input yang mungkin. Digunakan untuk meningkatkan optimasi dalam skenario tertentu. Jumlah elemen dalam daftar dalam harus sama dengan jumlah tensor input. Setiap elemen adalah string yang merepresentasikan bentuk input, seperti '1*512'.

Untuk beberapa set bentuk yang mungkin, tambahkan elemen ke daftar luar. Misalnya, model dengan dua input mungkin memiliki contoh nilai berikut:

  • [['1*512', '3*256']]

  • [              
        ['1*512', '3*256'],
        ['5*512', '9*256'],     
        ['10*512', '27*256']      
    ]

input_ranges

Rentang nilai untuk elemen-elemen setiap tensor input. Jumlah elemen dalam daftar dalam harus sama dengan jumlah tensor input. Setiap elemen adalah string yang merepresentasikan rentang nilai.

Rentang nilai menggunakan tanda kurung siku dengan bilangan real atau karakter, seperti '[1,2]', '[0.3,0.9]', atau '[a,f]'.

Untuk beberapa set rentang nilai yang mungkin, tambahkan elemen ke daftar luar. Misalnya, model dengan dua input mungkin memiliki contoh nilai berikut:

  • [['[0.1,0.4]', '[a,f]']]

  • [           
        ['[0.1,0.4]', '[a,f]'],
        ['[1.1,1.4]', '[h,l]'],     
        ['[2.1,2.4]', '[n,z]']      
    ]

quantization

Dictionary JSON. Saat ini hanya mendukung kunci weight_adjustment. Kunci ini menunjukkan apakah akan menyesuaikan parameter model untuk mengurangi kehilangan presisi akibat kuantisasi. Nilai yang didukung:

  • "true": Mengaktifkan opsi ini.

  • "false": Menonaktifkan opsi ini.

Data tambahan untuk optimasi

Pada tingkat optimasi O1, penyediaan test_data membuat optimasi lebih terarah. Pada tingkat optimasi O2, penyediaan calibration_dataset memandu Blade untuk melakukan optimasi INT8 offline. Kedua parameter tersebut harus sesuai dengan format data tambahan Blade. Format data tambahan untuk TensorFlow dan PyTorch:

  • Data tambahan TensorFlow berupa daftar dalam format feed dict. Kunci feed dict berupa string, dan nilainya berupa numpy ndarray. Simpan file data tambahan sebagai file .npy.

  • Data tambahan PyTorch berupa daftar dalam format tuple tensor. Simpan sebagai file .pth.

Kode contoh berikut menghasilkan file data tambahan untuk TensorFlow:

import numpy as np

calib_data = list()
for i in range(10):
    feed_dict = {
        'image_placeholder:0': np.ones((8, 3, 224, 224), dtype=np.float32),
        'threshold_placeholder:0': np.float32(0.5),
    }
    calib_data.append(feed_dict)
np.save("calib_data.npy", calib_data)

Kode contoh berikut menghasilkan file data tambahan untuk PyTorch:

import numpy as np
import torch

calib_data = list()
for i in range(10):
    image = torch.ones(8, 3, 224, 224)
    threshold = torch.tensor(0.5)
    feed_tuple = (image, threshold)
    calib_data.append(feed_tuple)
torch.save(calib_data, 'calib_data.pth')

Tanpa Blade EAS Plugin

Berikut ini adalah contoh sederhana file konfigurasi layanan EAS tanpa Blade EAS Plugin:

{
  "name": "blade_eas_plugin_test",
  "model_path": "oss://<yourBucket>/<pathToYourModel>/",
  "processor": "tensorflow_cpu_1.15",
  "metadata": {
    "instance": 1,
    "memory": 4000
  },
  "resource": "<yourEASResource>"
}

Untuk detail bidang dalam file konfigurasi layanan EAS, lihat Buat layanan.

Simpan file konfigurasi layanan sebagai service.json. Jalankan perintah berikut untuk membuat layanan TensorFlow 1.15 yang diterapkan pada CPU:

eascmd create service.json

Contoh output:

+-------------------+-------------------------------------------------------------------------------------------------+
| Internet Endpoint | http://123456789012****.cn-shanghai.pai-eas.aliyuncs.com/api/predict/blade_eas_plugin_test       |
| Intranet Endpoint | http://123456789012****.vpc.cn-shanghai.pai-eas.aliyuncs.com/api/predict/blade_eas_plugin_test   |
|             Token | owic823JI3kRmMDZlOTQzMTA3ODhmOWIzMmVkZmZmZGQyNmQ1N2M5****                                        |
+-------------------+-------------------------------------------------------------------------------------------------+
[OK] Service is now creating
[OK] Schedule process to node cn-shanghai.i-uf6hv6kfua25q1k8****
[OK] Fetching processor from [http://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/3.18.0/py3.6.8_cpu_tf1.15.0_torch1.6.0_abiprecxx11/TENSORFLOW_SDK_CPU.d12d3dc-91024d0-1.15.0-Linux.tar.gz]
[OK] Successfully downloaded all artifacts
[OK] Building image registry-vpc.cn-shanghai.aliyuncs.com/eas/blade_eas_plugin_test_cn-shanghai:v0.0.1-20211117170541
[OK] Pushing image registry-vpc.cn-shanghai.aliyuncs.com/eas/blade_eas_plugin_test_cn-shanghai:v0.0.1-20211117170541
[OK] Successfully pushed image registry-vpc.cn-shanghai.aliyuncs.com/eas/blade_eas_plugin_test_cn-shanghai:v0.0.1-20211117170541
[OK] Successfully created ingress
[OK] Successfully synchronized resources
[OK] Waiting [Total: 1, Pending: 1, Running: 0]
[OK] Running [Total: 1, Pending: 0, Running: 1]
[OK] Service is running

Konfigurasi dasar

Untuk mengaktifkan Blade EAS Plugin, tambahkan bidang plugins ke file konfigurasi layanan EAS. Bidang ini berupa daftar. Pada contoh berikut, daftar berisi satu elemen dictionary untuk plugin optimasi Blade:

{
  "name": "blade_eas_plugin_test",
  "model_path": "oss://<yourBucket>/<pathToYourModel>/",
  "processor": "tensorflow_cpu_1.15",
  "metadata": {
    "instance": 1,
    "memory": 4000
  },
  "plugins": [
      {
          "command": "blade --mode eas_plugin --optimize_for cpu",
          "image": "registry.cn-shanghai.aliyuncs.com/eas/pai-blade-deploy:cpu_latest"
      }
  ],
  "resource": "<yourEASResource>"
}

Pada contoh ini, bidang selain plugins mengikuti format file konfigurasi layanan PAI-EAS. Untuk detailnya, lihat Buat layanan. Elemen dictionary dalam daftar plugins berisi dua kunci:

  • command: Perintah optimasi yang akan dijalankan. --mode eas_plugin menunjukkan pola optimasi plugin EAS. --optimize_for cpu menunjukkan optimasi inferensi CPU.

  • image: Alamat registri citra runtime Blade EAS Plugin. Semua optimasi CPU menggunakan citra runtime registry.cn-shanghai.aliyuncs.com/eas/pai-blade-deploy:cpu_latest.

Contoh ini menyelesaikan konfigurasi optimasi pada perangkat CPU tanpa data uji. Simpan file konfigurasi layanan sebagai service1.json. Buat layanan menggunakan perintah create dalam alat klien eascmd:

eascmd create service1.json

Contoh output:

+-------------------+-------------------------------------------------------------------------------------------------+
| Internet Endpoint | http://123456789012****.cn-shanghai.pai-eas.aliyuncs.com/api/predict/blade_eas_plugin_test       |
| Intranet Endpoint | http://123456789012****.vpc.cn-shanghai.pai-eas.aliyuncs.com/api/predict/blade_eas_plugin_test   |
|             Token | owic823JI3kRmMDZlOTQzMTA3ODhmOWIzMmVkZmZmZGQyNmQ1N2M5****                                       |
+-------------------+-------------------------------------------------------------------------------------------------+
[OK] Service is now creating
[OK] Fetching processor from [http://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/3.18.0/py3.6.8_cpu_tf1.15.0_torch1.6.0_abiprecxx11/TENSORFLOW_SDK_CPU.d12d3dc-91024d0-1.15.0-Linux.tar.gz]
[OK] Successfully downloaded all artifacts
[OK] Executing plugin eas-plugin-73d70d54: registry.cn-shanghai.aliyuncs.com/eas/pai-blade-deploy:cpu_latest
[OK] Building image registry-vpc.cn-shanghai.aliyuncs.com/eas/blade_eas_plugin_test_cn-shanghai:v0.0.1-20211117172259
[OK] Pushing image registry-vpc.cn-shanghai.aliyuncs.com/eas/blade_eas_plugin_test_cn-shanghai:v0.0.1-20211117172259
[OK] Successfully pushed image registry-vpc.cn-shanghai.aliyuncs.com/eas/blade_eas_plugin_test_cn-shanghai:v0.0.1-20211117172259
[OK] Successfully created ingress
[OK] Successfully patch resources
[OK] Waiting [Total: 1, Pending: 1, Running: 0]
[OK] Running [Total: 1, Pending: 0, Running: 1]
[OK] Service is running

Dibandingkan dengan konfigurasi tanpa Blade EAS Plugin, log berisi baris tambahan yang menunjukkan eksekusi optimasi Blade berhasil:

[OK] Executing plugin eas-plugin-73d70d54: registry.cn-shanghai.aliyuncs.com/eas/pai-blade-deploy:cpu_latest

Konfigurasi lanjutan

Menyediakan informasi model yang lebih lengkap meningkatkan akurasi optimasi dan rasio akselerasi. Contoh berikut menunjukkan file deskripsi layanan GPU dengan parameter optimasi tambahan:

{
    "name": "blade_eas_plugin_test",
    "metadata": {
        "cpu": 4,
        "gpu": 1,
        "instance": 1,
        "memory": 4096,
        "cuda": "10.0"
    },
    "model_path": "oss://<yourBucket>/<pathToYourModel>/",
    "plugins": [
        {
            "command": "blade --mode eas_plugin --optimize_for gpu",
            "image": "registry.cn-shanghai.aliyuncs.com/eas/pai-blade-deploy:gpu_latest",
            "resource": "T4_8CORE",
            "gpu": 1,
            "config": {
                "model_info": {
                    "frozen.pb": {
                        "optimization_level": "o1",
                        "inputs": [
                            "input_ids_a_1"
                        ],
                        "outputs": [
                            "l2_normalize"
                        ],
                        "test_data": "test_len9240_bc1.npy"
                    }
                }
            }
        }
    ],
    "processor": "tensorflow_gpu_1.15",
    "resource": "<yourEASResource>"
}

Pada contoh ini, bidang selain plugins mengikuti format file konfigurasi layanan EAS. Untuk detailnya, lihat Buat layanan dan Bidang dalam plugins. frozen.pb adalah nama file model. Ini menunjukkan optimasi model TensorFlow dalam file frozen.pb.

Simpan file konfigurasi layanan sebagai service2.json. Buat layanan menggunakan perintah create dalam alat klien eascmd:

eascmd create service2.json

Contoh output:

+-------------------+-------------------------------------------------------------------------------------------------+
| Internet Endpoint | http://123456789012****cn-shanghai.pai-eas.aliyuncs.com/api/predict/blade_eas_plugin_test      |
| Intranet Endpoint | http://123456789012****.vpc.cn-shanghai.pai-eas.aliyuncs.com/api/predict/blade_eas_plugin_test  |
|             Token | owic823JI3kRmMDZlOTQzMTA3ODhmOWIzMmVkZmZmZGQyNmQ1N2M5****                                        |
+-------------------+-------------------------------------------------------------------------------------------------+
[OK] Service is now creating
[OK] Schedule process to node cn-shanghai.i-uf642ocg20xinsme****
[OK] Downloading oss file: oss://blade-qa/test_assets/tf_security_textcnn/
[OK] Fetching processor from [http://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/3.18.0/py3.6.8_cu100_tf1.15.0_torch1.6.0_abiprecxx11/TENSORFLOW_SDK_GPU.d12d3dc-91024d0-1.15.0-Linux.tar.gz]
[OK] Successfully downloaded all artifacts
[OK] Executing plugin eas-plugin-7126ee68: registry.cn-shanghai.aliyuncs.com/eas/pai-blade-deploy:gpu_latest
[OK] Building image registry-vpc.cn-shanghai.aliyuncs.com/eas/blade_eas_plugin_test_cn-shanghai:v0.0.1-20211117191732
[OK] Pushing image registry-vpc.cn-shanghai.aliyuncs.com/eas/blade_eas_plugin_test_cn-shanghai:v0.0.1-20211117191732
[OK] Successfully pushed image registry-vpc.cn-shanghai.aliyuncs.com/eas/blade_eas_plugin_test_cn-shanghai:v0.0.1-20211117191732
[OK] Successfully created ingress
[OK] Successfully synchronized resources
[OK] Waiting [Total: 1, Pending: 1, Running: 0]
[OK] Running [Total: 1, Pending: 0, Running: 1]
[OK] Service is running

Log berisi entri tambahan dibandingkan dengan konfigurasi tanpa Blade EAS Plugin. Entri ini menunjukkan eksekusi optimasi Blade berhasil:

[OK] Executing plugin eas-plugin-7126ee68: registry.cn-shanghai.aliyuncs.com/eas/pai-blade-deploy:gpu_latest