Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Menyebarkan model dengan TorchServe

Mode fokus
Menyebarkan model dengan TorchServe - Amazon SageMaker AI

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

TorchServe adalah server model yang direkomendasikan untuk PyTorch, sudah diinstal sebelumnya di AWS PyTorch Deep Learning Container (DLC). Alat canggih ini menawarkan pelanggan pengalaman yang konsisten dan ramah pengguna, memberikan kinerja tinggi dalam menerapkan beberapa PyTorch model di berbagai AWS instance, termasuk CPU, GPU, Neuron, dan Graviton, terlepas dari ukuran model atau distribusinya.

TorchServe mendukung beragam fitur canggih, termasuk batching dinamis, microbatching, pengujian model A/B, streaming, obor XLA, TensorRT, ONNX dan IPEX. Selain itu, ia dengan mulus mengintegrasikan PyTorch solusi model besar, PiPPy, memungkinkan penanganan model besar yang efisien. Selain itu, TorchServe memperluas dukungannya ke perpustakaan open-source populer seperti DeepSpeed, Accelerate, Fast Transformers, dan banyak lagi, memperluas kemampuannya lebih jauh. Dengan TorchServe, AWS pengguna dapat dengan percaya diri menerapkan dan melayani PyTorch model mereka, memanfaatkan keserbagunaan dan kinerja yang dioptimalkan di berbagai konfigurasi perangkat keras dan jenis model. Untuk informasi lebih rinci, Anda dapat merujuk ke PyTorchdokumentasi dan TorchServeseterusnya GitHub.

Tabel berikut mencantumkan yang AWS PyTorch DLCs didukung oleh TorchServe.

Jenis instans SageMaker Tautan AI PyTorch DLC

CPU dan GPU

SageMaker PyTorch Kontainer AI

Neuron

PyTorch Wadah neuron

Graviton

SageMaker Wadah AI PyTorch Graviton

Bagian berikut menjelaskan pengaturan untuk membangun dan menguji PyTorch DLCs di Amazon SageMaker AI.

Memulai

Untuk memulai, pastikan Anda memiliki prasyarat berikut:

  1. Pastikan Anda memiliki akses ke AWS akun. Siapkan lingkungan Anda sehingga AWS CLI dapat mengakses akun Anda melalui pengguna AWS IAM atau peran IAM. Kami merekomendasikan menggunakan peran IAM. Untuk tujuan pengujian di akun pribadi Anda, Anda dapat melampirkan kebijakan izin terkelola berikut ke peran IAM:

  2. Konfigurasikan dependensi Anda secara lokal, seperti yang ditunjukkan pada contoh berikut:

    from datetime import datetime import os import json import logging import time # External Dependencies: import boto3 from botocore.exceptions import ClientError import sagemaker sess = boto3.Session() sm = sess.client("sagemaker") region = sess.region_name account = boto3.client("sts").get_caller_identity().get("Account") smsess = sagemaker.Session(boto_session=sess) role = sagemaker.get_execution_role() # Configuration: bucket_name = smsess.default_bucket() prefix = "torchserve" output_path = f"s3://{bucket_name}/{prefix}/models" print(f"account={account}, region={region}, role={role}")
  3. Ambil gambar PyTorch DLC, seperti yang ditunjukkan pada contoh berikut.

    SageMaker Gambar AI PyTorch DLC tersedia di semua AWS wilayah. Untuk informasi selengkapnya, lihat daftar gambar kontainer DLC.

    baseimage = sagemaker.image_uris.retrieve( framework="pytorch", region="<region>", py_version="py310", image_scope="inference", version="2.0.1", instance_type="ml.g4dn.16xlarge", )
  4. Buat ruang kerja lokal.

    mkdir -p workspace/

Menambahkan paket

Bagian berikut menjelaskan cara menambahkan dan menginstal paket ke gambar PyTorch DLC Anda.

Kasus penggunaan BYOC

Langkah-langkah berikut menguraikan cara menambahkan paket ke gambar PyTorch DLC Anda. Untuk informasi selengkapnya tentang menyesuaikan kontainer, lihat Membangun Gambar Kustom AWS Deep Learning Containers.

  1. Misalkan Anda ingin menambahkan paket ke image PyTorch docker DLC. Buat Dockerfile di bawah docker direktori, seperti yang ditunjukkan pada contoh berikut:

    mkdir -p workspace/docker cat workspace/docker/Dockerfile ARG BASE_IMAGE FROM $BASE_IMAGE #Install any additional libraries RUN pip install transformers==4.28.1
  2. Buat dan publikasikan image docker yang disesuaikan dengan menggunakan skrip build_and_push.sh berikut.

    # Download script build_and_push.sh to workspace/docker ls workspace/docker build_and_push.sh Dockerfile # Build and publish your docker image reponame = "torchserve" versiontag = "demo-0.1" ./build_and_push.sh {reponame} {versiontag} {baseimage} {region} {account}

SageMaker Kasus penggunaan prainstal AI

Contoh berikut menunjukkan cara menginstal paket ke wadah PyTorch DLC Anda. Anda harus membuat requirements.txt file secara lokal di bawah direktoriworkspace/code.

mkdir -p workspace/code cat workspace/code/requirements.txt transformers==4.28.1

Buat artefak TorchServe model

Dalam contoh berikut, kami menggunakan model MNIST yang telah dilatih sebelumnya. Kami membuat direktoriworkspace/mnist, menerapkan mnist_handler.py dengan mengikuti instruksi layanan TorchServe khusus, dan mengkonfigurasi parameter model (seperti ukuran batch dan pekerja) di model-config.yaml. Kemudian, kami menggunakan TorchServe alat torch-model-archiver untuk membangun artefak model dan mengunggah ke Amazon S3.

  1. Konfigurasikan parameter model dimodel-config.yaml.

    ls -al workspace/mnist-dev mnist.py mnist_handler.py mnist_cnn.pt model-config.yaml # config the model cat workspace/mnist-dev/model-config.yaml minWorkers: 1 maxWorkers: 1 batchSize: 4 maxBatchDelay: 200 responseTimeout: 300
  2. Bangun artefak model dengan menggunakan torch-model-archiver .

    torch-model-archiver --model-name mnist --version 1.0 --model-file workspace/mnist-dev/mnist.py --serialized-file workspace/mnist-dev/mnist_cnn.pt --handler workspace/mnist-dev/mnist_handler.py --config-file workspace/mnist-dev/model-config.yaml --archive-format tgz

    Jika Anda ingin menginstal paket, Anda harus menyertakan code direktori dalam tar.gz file.

    cd workspace torch-model-archiver --model-name mnist --version 1.0 --model-file mnist-dev/mnist.py --serialized-file mnist-dev/mnist_cnn.pt --handler mnist-dev/mnist_handler.py --config-file mnist-dev/model-config.yaml --archive-format no-archive cd mnist mv ../code . tar cvzf mnist.tar.gz .
  3. Unggah mnist.tar.gz ke Amazon S3.

    # upload mnist.tar.gz to S3 output_path = f"s3://{bucket_name}/{prefix}/models" aws s3 cp mnist.tar.gz {output_path}/mnist.tar.gz

Menggunakan titik akhir model tunggal untuk diterapkan dengan TorchServe

Contoh berikut menunjukkan cara membuat titik akhir inferensi real-time model tunggal, menerapkan model ke titik akhir, dan menguji titik akhir dengan menggunakan Amazon Python SDK. SageMaker

from sagemaker.model import Model from sagemaker.predictor import Predictor # create the single model endpoint and deploy it on SageMaker AI model = Model(model_data = f'{output_path}/mnist.tar.gz', image_uri = baseimage, role = role, predictor_cls = Predictor, name = "mnist", sagemaker_session = smsess) endpoint_name = 'torchserve-endpoint-' + time.strftime("%Y-%m-%d-%H-%M-%S", time.gmtime()) predictor = model.deploy(instance_type='ml.g4dn.xlarge', initial_instance_count=1, endpoint_name = endpoint_name, serializer=JSONSerializer(), deserializer=JSONDeserializer()) # test the endpoint import random import numpy as np dummy_data = {"inputs": np.random.rand(16, 1, 28, 28).tolist()} res = predictor.predict(dummy_data)

Menggunakan titik akhir multi-model untuk diterapkan TorchServe

Titik akhir multi-model adalah solusi yang dapat diskalakan dan hemat biaya untuk menampung sejumlah besar model di belakang satu titik akhir. Mereka meningkatkan pemanfaatan titik akhir dengan berbagi armada sumber daya yang sama dan melayani wadah untuk menampung semua model Anda. Mereka juga mengurangi overhead penerapan karena SageMaker AI mengelola model bongkar muat secara dinamis, serta penskalaan sumber daya berdasarkan pola lalu lintas. Titik akhir multi-model sangat berguna untuk pembelajaran mendalam dan model AI generatif yang membutuhkan daya komputasi yang dipercepat.

Dengan menggunakan TorchServe titik akhir multi-model SageMaker AI, Anda dapat mempercepat pengembangan Anda dengan menggunakan tumpukan penyajian yang Anda kenal sambil memanfaatkan pembagian sumber daya dan manajemen model yang disederhanakan yang disediakan oleh titik akhir multi-model SageMaker AI.

Contoh berikut menunjukkan cara membuat endpoint multi-model, menerapkan model ke endpoint, dan menguji endpoint dengan menggunakan Amazon Python SDK. SageMaker Rincian tambahan dapat ditemukan dalam contoh notebook ini.

from sagemaker.multidatamodel import MultiDataModel from sagemaker.model import Model from sagemaker.predictor import Predictor # create the single model endpoint and deploy it on SageMaker AI model = Model(model_data = f'{output_path}/mnist.tar.gz', image_uri = baseimage, role = role, sagemaker_session = smsess) endpoint_name = 'torchserve-endpoint-' + time.strftime("%Y-%m-%d-%H-%M-%S", time.gmtime()) mme = MultiDataModel( name = endpoint_name, model_data_prefix = output_path, model = model, sagemaker_session = smsess) mme.deploy( initial_instance_count = 1, instance_type = "ml.g4dn.xlarge", serializer=sagemaker.serializers.JSONSerializer(), deserializer=sagemaker.deserializers.JSONDeserializer()) # list models list(mme.list_models()) # create mnist v2 model artifacts cp mnist.tar.gz mnistv2.tar.gz # add mnistv2 mme.add_model(mnistv2.tar.gz) # list models list(mme.list_models()) predictor = Predictor(endpoint_name=mme.endpoint_name, sagemaker_session=smsess) # test the endpoint import random import numpy as np dummy_data = {"inputs": np.random.rand(16, 1, 28, 28).tolist()} res = predictor.predict(date=dummy_data, target_model="mnist.tar.gz")

Metrik

TorchServe mendukung metrik tingkat sistem dan tingkat model. Anda dapat mengaktifkan metrik dalam mode format log atau mode Prometheus melalui variabel lingkungan. TS_METRICS_MODE Anda dapat menggunakan file konfigurasi metrik TorchServe pusat metrics.yaml untuk menentukan jenis metrik yang akan dilacak, seperti jumlah permintaan, latensi, penggunaan memori, pemanfaatan GPU, dan banyak lagi. Dengan mengacu pada file ini, Anda dapat memperoleh wawasan tentang kinerja dan kesehatan model yang diterapkan dan secara efektif memantau perilaku TorchServe server secara real-time. Untuk informasi lebih rinci, lihat dokumentasi TorchServe metrik.

Anda dapat mengakses log TorchServe metrik yang mirip dengan format StatSD melalui filter log CloudWatch Amazon. Berikut ini adalah contoh log TorchServe metrik:

CPUUtilization.Percent:0.0|#Level:Host|#hostname:my_machine_name,timestamp:1682098185 DiskAvailable.Gigabytes:318.0416717529297|#Level:Host|#hostname:my_machine_name,timestamp:1682098185
PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.