All Products
Search
Document Center

Platform For AI:Processor PyTorch

Last Updated:Aug 22, 2026

EAS menyediakan processor PyTorch bawaan untuk menerapkan model PyTorch dalam format TorchScript sebagai layanan inferensi online. Topik ini menjelaskan cara memilih versi processor, menerapkan layanan model, dan mengirim permintaan inferensi.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Model PyTorch yang diekspor ke format TorchScript (file .pt)

  • Klien eascmd yang telah diinstal dan dikonfigurasi

  • Bucket Alibaba Cloud Object Storage Service (OSS) untuk menyimpan file model

Pilih versi processor

EAS menyediakan varian processor CPU dan GPU untuk PyTorch versi 1.6 hingga 1.10. Pilih nama processor yang sesuai dengan versi PyTorch dan target perangkat keras Anda.

Nama processor Versi PyTorch Dukungan GPU
pytorch_cpu_1.6 PyTorch 1.6 Tidak
pytorch_cpu_1.7 PyTorch 1.7 Tidak
pytorch_cpu_1.9 PyTorch 1.9 Tidak
pytorch_cpu_1.10 PyTorch 1.10 Tidak
pytorch_gpu_1.6 PyTorch 1.6 Ya
pytorch_gpu_1.7 PyTorch 1.7 Ya
pytorch_gpu_1.9 PyTorch 1.9 Ya
pytorch_gpu_1.10 PyTorch 1.10 Ya

Nama processor mengikuti pola pytorch_{cpu|gpu}_{version}. Gunakan processor _cpu_ untuk instans hanya-CPU dan processor _gpu_ untuk instans GPU.

Langkah 1: Terapkan layanan

Pilih salah satu metode penerapan berikut:

  • eascmd (disarankan): Cocok untuk penerapan berbasis skrip atau otomatis

  • Konsol: Cocok untuk penerapan satu kali atau jika Anda lebih suka antarmuka visual

Terapkan menggunakan eascmd

Buat file konfigurasi layanan dan atur processor ke nama processor yang telah Anda pilih. Contoh berikut menerapkan model ResNet-18 menggunakan processor PyTorch 1.6 CPU.

{
  "name": "pytorch_resnet_example",
  "model_path": "http://examplebucket.oss-cn-shanghai.aliyuncs.com/models/resnet18.pt",
  "processor": "pytorch_cpu_1.6",
  "metadata": {
    "cpu": 1,
    "instance": 1,
    "memory": 1000
  }
}

Teruskan file konfigurasi ini ke eascmd untuk menerapkan layanan. Untuk referensi penerapan lengkap, lihat Penerapan layanan: EASCMD & DSW.

Terapkan menggunakan Konsol

Untuk petunjuk penerapan langkah demi langkah melalui Konsol, lihat Penerapan layanan: Konsol.

Langkah 2: Panggil layanan

Layanan PyTorch menggunakan Protocol Buffers (Protobuf) untuk input dan output. Alat debugging online di Konsol EAS hanya mendukung teks biasa dan tidak dapat digunakan dengan layanan PyTorch. Sebagai gantinya, gunakan SDK EAS atau buat permintaan Protobuf mentah.

SDK EAS menangani serialisasi permintaan dan mencakup toleransi kesalahan bawaan serta dukungan koneksi langsung. Contoh Python berikut mengirim sepuluh permintaan inferensi ke layanan PyTorch yang telah diterapkan:

#!/usr/bin/env python

from eas_prediction import PredictClient
from eas_prediction import TorchRequest

if __name__ == '__main__':
    # Ganti dengan titik akhir layanan dan nama layanan Anda
    client = PredictClient('http://182848887922****.cn-shanghai.pai-eas.aliyuncs.com', 'pytorch_gpu_wl')
    client.init()

    req = TorchRequest()
    req.add_feed(0, [1, 3, 224, 224], TorchRequest.DT_FLOAT, [1] * 150528)
    # req.add_fetch(0)
    for x in range(0, 10):
        resp = client.predict(req)
        print(resp.get_tensor_shape(0))

Metode utama SDK:

Metode Deskripsi
add_feed(index, shape, dtype, data) Menambahkan tensor input pada indeks tertentu dengan bentuk, tipe data, dan nilai yang ditentukan
add_fetch(index) Memilih tensor output tertentu untuk dikembalikan. Abaikan pemanggilan ini untuk mengembalikan semua output
get_tensor_shape(index) Mengambil bentuk tensor output pada indeks tertentu

Untuk pengaturan otentikasi dan pola permintaan lanjutan, lihat Gunakan SDK Python.

Format permintaan

Processor PyTorch EAS menggunakan format Protobuf untuk input dan output. Saat menggunakan SDK, permintaan akan diserialisasi secara otomatis—Anda hanya perlu memanggil add_feed dan add_fetch seperti yang ditunjukkan di atas.

Untuk membuat permintaan Protobuf mentah tanpa SDK, hasilkan kode klien dari definisi .proto berikut. Untuk panduan pembuatan, lihat Buat permintaan untuk layanan TensorFlow.

syntax = "proto3";

package pytorch.eas;
option cc_enable_arenas = true;

enum ArrayDataType {
  // Bukan nilai legal untuk DataType. Digunakan untuk menandakan bahwa bidang DataType
  // belum diatur
  DT_INVALID = 0;

  // Tipe data yang diharapkan didukung oleh semua perangkat komputasi
  DT_FLOAT = 1;
  DT_DOUBLE = 2;
  DT_INT32 = 3;
  DT_UINT8 = 4;
  DT_INT16 = 5;
  DT_INT8 = 6;
  DT_STRING = 7;
  DT_COMPLEX64 = 8;  // Bilangan kompleks presisi tunggal
  DT_INT64 = 9;
  DT_BOOL = 10;
  DT_QINT8 = 11;     // int8 terkuantisasi
  DT_QUINT8 = 12;    // uint8 terkuantisasi
  DT_QINT32 = 13;    // int32 terkuantisasi
  DT_BFLOAT16 = 14;  // Float32 dipotong menjadi 16 bit. Hanya untuk operasi cast
  DT_QINT16 = 15;    // int16 terkuantisasi
  DT_QUINT16 = 16;   // uint16 terkuantisasi
  DT_UINT16 = 17;
  DT_COMPLEX128 = 18;  // Bilangan kompleks presisi ganda
  DT_HALF = 19;
  DT_RESOURCE = 20;
  DT_VARIANT = 21;  // Tipe data C++ arbitrer
}

// Dimensi array
message ArrayShape {
  repeated int64 dim = 1 [packed = true];
}

// Buffer protokol yang merepresentasikan array
message ArrayProto {
  // Tipe Data
  ArrayDataType dtype = 1;

  // Bentuk array.
  ArrayShape array_shape = 2;

  // DT_FLOAT
  repeated float float_val = 3 [packed = true];

  // DT_DOUBLE
  repeated double double_val = 4 [packed = true];

  // DT_INT32, DT_INT16, DT_INT8, DT_UINT8.
  repeated int32 int_val = 5 [packed = true];

  // DT_STRING
  repeated bytes string_val = 6;

  // DT_INT64.
  repeated int64 int64_val = 7 [packed = true];

}


message PredictRequest {

  // Tensor input.
  repeated ArrayProto inputs = 1;

  // Filter output.
  repeated int32 output_filter = 2;
}

// Respons untuk PredictRequest saat berhasil dijalankan.
message PredictResponse {
  // Tensor output.
  repeated ArrayProto outputs = 1;
}

Langkah selanjutnya