Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan Amazon SageMaker Elastic Inference (EI)
Mulai 15 April 2023, tidak AWS akan memasukkan pelanggan baru ke Amazon Elastic Inference (EI), dan akan membantu pelanggan saat ini memigrasikan beban kerja mereka ke opsi yang menawarkan harga dan kinerja yang lebih baik. Setelah 15 April 2023, pelanggan baru tidak akan dapat meluncurkan instans dengan akselerator Amazon EI di Amazon, Amazon ECS, atau SageMaker Amazon EC2.
Machine learning (ML) on AWS membantu Anda berinovasi lebih cepat dengan rangkaian layanan dan infrastruktur ML terlengkap yang tersedia dalam model as-you-go penggunaan berbayar berbiaya rendah. AWS terus memberikan infrastruktur berkinerja lebih baik dan biaya lebih rendah untuk beban kerja inferensi ML. AWS meluncurkan Amazon Elastic Inference (EI) pada tahun 2018 untuk memungkinkan pelanggan melampirkan akselerasi bertenaga GPU berbiaya rendah ke Amazon EC2, SageMaker instans Amazon, atau Amazon Elastic Container Service (ECS) untuk mengurangi biaya menjalankan inferensi pembelajaran mendalam hingga 75% dibandingkan dengan instans berbasis GPU mandiri seperti Amazon EC2 P4d dan Amazon EC2 G5. Pada tahun 2019, AWS meluncurkan AWS Inferentia, silikon khusus pertama Amazon yang dirancang untuk mempercepat beban kerja pembelajaran mendalam dengan memberikan inferensi kinerja tinggi di cloud. Instans Amazon EC2 Inf1 berdasarkan chip AWS Inferentia menghasilkan throughput 2,3x lebih tinggi dan biaya per inferensi hingga 70% lebih rendah daripada instans Amazon EC2 berbasis GPU generasi saat ini yang sebanding. Dengan ketersediaan opsi komputasi baru yang dipercepat seperti instans AWS Inferentia dan Amazon EC2 G5, manfaat melampirkan GPU fraksional ke instans host CPU menggunakan Amazon EI telah berkurang. Misalnya, pelanggan yang menghosting model di Amazon EI yang pindah ke ml.inf1.xlarge
instans bisa mendapatkan penghematan biaya hingga 56% dan peningkatan kinerja 2x.
Pelanggan dapat menggunakan Amazon SageMaker Inference Recommender untuk membantu mereka memilih instans alternatif terbaik untuk Amazon EI untuk menerapkan model ML-nya.
Pertanyaan yang sering diajukan
-
Mengapa Amazon mendorong pelanggan untuk memindahkan beban kerja dari Amazon Elastic Inference (EI) ke opsi akselerasi perangkat keras yang lebih baru seperti Inferentia? AWS
Pelanggan mendapatkan kinerja yang lebih baik dengan harga yang jauh lebih baik daripada Amazon EI dengan opsi akselerator perangkat keras baru seperti AWS Inferentia untuk beban kerja inferensi
mereka. AWS Inferentia dirancang untuk memberikan inferensi kinerja tinggi di cloud, untuk menurunkan total biaya inferensi, dan untuk memudahkan pengembang mengintegrasikan pembelajaran mesin ke dalam aplikasi bisnis mereka. Untuk memungkinkan pelanggan mendapatkan keuntungan dari akselerator perangkat keras generasi baru tersebut, kami tidak akan memasukkan pelanggan baru ke Amazon EI setelah 15 April 2023. -
AWS Layanan apa yang terpengaruh oleh langkah untuk menghentikan orientasi pelanggan baru ke Amazon Elastic Inference (EI)?
Pengumuman ini akan memengaruhi akselerator Amazon EI yang melekat pada tugas Amazon EC2, instans SageMaker Amazon, atau Amazon Elastic Container Service (ECS). Di Amazon SageMaker, ini berlaku untuk titik akhir dan kernel notebook menggunakan akselerator Amazon EI.
-
Apakah saya dapat membuat akselerator Amazon Elastic Inference (EI) baru setelah 15 April 2023?
Tidak, jika Anda adalah pelanggan baru dan belum menggunakan Amazon EI dalam 30 hari terakhir, maka Anda tidak akan dapat membuat instans Amazon EI baru di AWS akun Anda setelah 15 April 2023. Namun, jika Anda telah menggunakan akselerator Amazon EI setidaknya sekali dalam 30 hari terakhir, Anda dapat memasang akselerator Amazon EI baru ke instans Anda.
-
Bagaimana cara mengevaluasi opsi instans alternatif untuk Titik Akhir SageMaker Inferensi Amazon saya saat ini?
Amazon SageMaker Inference Recommender dapat membantu Anda mengidentifikasi penerapan hemat biaya untuk memigrasikan beban kerja yang ada dari Amazon Elastic Inference (EI) ke instans ML yang sesuai yang didukung oleh. SageMaker
-
Bagaimana cara mengubah jenis instans untuk titik akhir saya yang ada di Amazon? SageMaker
Anda dapat mengubah jenis instans untuk titik akhir yang ada dengan melakukan hal berikut:
Pertama, buat baru EndpointConfig yang menggunakan tipe instance baru. Jika Anda memiliki kebijakan penskalaan otomatis, hapus kebijakan penskalaan otomatis yang ada.
Panggil UpdateEndpointsambil menentukan yang baru Anda buat EndpointConfig.
Tunggu hingga titik akhir Anda mengubah status menjadi
InService
. Ini akan memakan waktu sekitar 10-15 menit.Terakhir, jika Anda memerlukan penskalaan otomatis untuk titik akhir baru Anda, buat kebijakan penskalaan otomatis baru untuk titik akhir baru ini dan. ProductionVariant
-
Bagaimana cara mengubah jenis instans untuk Instans SageMaker Notebook Amazon yang sudah ada menggunakan Amazon Elastic Inference (EI)?
Pilih instance Notebook di SageMaker konsol, lalu pilih Instans Notebook yang ingin Anda perbarui. Pastikan Instance Notebook memiliki
Stopped
status. Terakhir, Anda dapat memilih Edit dan mengubah jenis instans Anda. Pastikan bahwa, ketika Instans Notebook Anda dimulai, Anda memilih kernel yang tepat untuk instans baru Anda. -
Apakah ada jenis instance tertentu yang merupakan alternatif yang baik untuk Amazon Elastic Inference (EI)?
Setiap beban kerja pembelajaran mesin adalah unik. Sebaiknya gunakan Amazon SageMaker Inference Recommender untuk membantu Anda mengidentifikasi jenis instans yang tepat untuk beban kerja, persyaratan kinerja, dan anggaran Anda. AWS Inferentia
, khususnya inf1.xlarge
, adalah alternatif kinerja tinggi dan biaya rendah terbaik untuk pelanggan Amazon EI.
Bermigrasi dari Amazon Elastic Inference ke instans lain
Informasi berikut dapat membantu Anda memigrasikan titik akhir yang SageMaker di-host dari instans yang menggunakan akselerator Amazon Elastic Inference ke instans lain. Saran bervariasi tergantung pada kerangka kerja Anda.
PyTorch
Jika Anda bermigrasi dari PyTorch, gunakan panduan berikut.
1. Pilih jenis instans yang tepat
Setiap beban kerja pembelajaran mesin adalah unik. Sebaiknya gunakan Amazon SageMaker Inference Recommender untuk membantu Anda mengidentifikasi jenis instans yang tepat untuk beban kerja, persyaratan kinerja, dan anggaran Anda. AWS Inferentia, khususnyainf1.xlarge
, adalah alternatif kinerja tinggi dan biaya rendah terbaik untuk pelanggan Amazon Elastic Inference.
Dalam pengujian beban kami dengan Inference Recommender, g4dn.xlarge
instans berkinerja lebih baik daripada m5.large
instance dengan lampiran. eia.2large
Dengan Amazon Elastic Inference, Anda harus membayar biaya tambahan instans ML tempat akselerator terpasang. Amazon Elastic Inference juga hanya mendukung PyTorch 1,5 dan TensorFlow 2,3. Jika Anda bermigrasi ke ml.g4dn
instance, Anda dapat menggunakan versi terbaru PyTorch 1.11 dan 2.9. TensorFlow Selain itu, ml.g4dn
dan AWS Inferensia tersedia di semua AWS
Wilayah, sedangkan Amazon Elastic Inference hanya tersedia di 6 Wilayah. Baik AWS
Inferentia dan ml.g4dn
menawarkan kinerja yang lebih baik dengan harga lebih rendah untuk sebagian besar beban kerja inferensi ML.
2. Memodifikasi inference.py
Ubah inference.py
file Anda untuk menghapus perubahan yang diperlukan khusus Inferensi Elastis dan gunakan penangan default. Berdasarkan kasus pengguna yang berbeda, Anda mungkin memiliki penangan input dan output yang berbeda, tetapi perubahan utama yang harus Anda lakukan ada dalam fungsi model_fn
handler pemuatan model dan. predict_fn
Hapus pengendali prediksi khusus Inferensi Elastis predict_fn
dan kembalikan handler pemuatan model ke format model_fn
default. Contoh berikut menunjukkan bagaimana melakukan ini, dengan bagian-bagian yang harus Anda hapus dari inference.py
komentar:
from __future__ import print_function import os import torch import torch.nn as nn import torch.nn.functional as F import numpy as np def model_fn(model_dir, context): model = {customer_model} # if torch.__version__ in VERSIONS_USE_NEW_API: # import torcheia # loaded_model = loaded_model.eval() # loaded_model = torcheia.jit.attach_eia(loaded_model, 0) with open(os.path.join(model_dir, 'model.pth'), 'rb') as f: model.load_state_dict(torch.load(f)) return model # def predict_fn(input_data, model): # logger.info( # "Performing EIA inference with Torch JIT context with input of size {}".format( # input_data.shape # ) # ) # device = torch.device("cuda" if torch.cuda.is_available() else "cpu") # input_data = input_data.to(device) # with torch.no_grad(): # if torch.__version__ in VERSIONS_USE_NEW_API: # import torcheia # # torch._C._jit_set_profiling_executor(False) # with torch.jit.optimized_execution(True): # return model.forward(input_data) # else: # with torch.jit.optimized_execution(True, {"target_device": "eia:0"}): # return model(input_data) def predict_fn(input_data, model): return model(input_data)
3. Buat model
Buat model baru yang menunjuk ke inference.py
file Anda yang dimodifikasi. Anda dapat menyimpan inference.py
file secara lokal dan mengarahkannya dengan menentukan source_dir
dan entry_point
atau memasukkan inference.py
file ke dalam model tarball. Contoh berikut menunjukkan kasus sebelumnya:
from sagemaker.pytorch import PyTorchModel pytorch = PyTorchModel( model_data={model_data_url}, role=role, entry_point="inference.py", source_dir="code", framework_version="1.5.1", py_version="py3", sagemaker_session=sagemaker_session, )
4. Terapkan model ke titik akhir dan panggil
Anda dapat menggunakan salah satu opsi berikut untuk menerapkan model Anda setelah membuat perubahan sebelumnya.
Opsi 1: Menyebarkan dari awal
Anda dapat menerapkan model ke titik akhir baru dengan instance yang direkomendasikan dari kategori Accelerated Computing, seperti G4.
predictor = pytorch.deploy( ... # instance_type = "ml.c5.xlarge", instance_type="ml.g4dn.2xlarge", ... response = predictor.predict(payload)
Opsi 2: Perbarui titik akhir yang ada
Selesaikan langkah-langkah berikut untuk memperbarui titik akhir yang ada:
-
Panggilan
CreateEndpointConfig
untuk membuat baruEndpointConfig
yang menggunakan jenis instance baru. Jika Anda memiliki kebijakan penskalaan otomatis, hapus kebijakan penskalaan otomatis yang ada.endpoint_config_response = sagemaker_client.create_endpoint_config( EndpointConfigName=endpoint_config_name, ProductionVariants=[ { "VariantName": "variant1", # The name of the production variant. "ModelName": model_name, # The name of new created model "InstanceType": instance_type, # Specify the right-sized instance type. "InitialInstanceCount": 1 # Number of instances to launch initially. } ] )
-
Panggil
UpdateEndpoint
dan tentukan yang baru Anda buatEndpointConfig
.endpoint_config_response = sagemaker_client.update_endpoint( EndpointConfigName=endpoint_config_name, # The name of the new endpoint config just created EndpointName=endpoint_name # The name of the existing endpoint you want to update )
Tunggu hingga titik akhir Anda mengubah status menjadi
InService
. Ini membutuhkan waktu sekitar 10-15 menit.Terakhir, jika Anda memerlukan penskalaan otomatis untuk titik akhir baru Anda, buat kebijakan penskalaan otomatis baru untuk titik akhir baru Anda dan.
ProductionVariant
TensorFlow
Jika Anda bermigrasi dari TensorFlow, gunakan panduan berikut.
1. Pilih jenis instans yang tepat
Lihat 1. Pilih panduan jenis instans yang tepat di PyTorch bagian ini.
2. Terapkan model ke titik akhir dan panggil
Anda dapat menggunakan salah satu opsi berikut untuk menerapkan model Anda.
Opsi 1: Menyebarkan dari awal
Anda dapat bermigrasi dari Elastic Inference dengan menerapkan ulang model ke titik akhir baru dengan menghapus accelerator_type
bidang dan menentukan jenis instance berukuran tepat dari kategori Accelerated Computing, seperti G4. Dalam contoh berikut, baris komentar menyebabkan Anda menerapkan tanpa menggunakan akselerator Elastic Inference.
predictor = tensorflow_model.deploy( ... instance_type="ml.g4dn.2xlarge" # instance_type="ml.c5.xlarge", # accelerator_type="ml.eia1.medium" ... )
Opsi 2: Perbarui titik akhir yang ada
Lihat Opsi 2. Perbarui panduan titik akhir yang ada di Langkah 4 PyTorch bagian.
MXNet
Jika Anda bermigrasi dari MxNet, gunakan panduan berikut.
1. Pilih jenis instans yang tepat
Lihat 1. Pilih panduan jenis instans yang tepat di PyTorch bagian ini.
2. Terapkan model ke titik akhir dan panggil
Anda dapat menggunakan salah satu opsi berikut untuk menerapkan model Anda.
Opsi 1: Menyebarkan dari awal
Anda dapat bermigrasi dari Elastic Inference dengan menerapkan ulang model ke titik akhir baru dengan menghapus accelerator_type
bidang dan menentukan jenis instance berukuran tepat dari kategori Accelerated Computing, seperti G4. Dalam contoh berikut, baris komentar menyebabkan Anda menerapkan tanpa menggunakan akselerator Elastic Inference.
predictor = mxnet_model.deploy( ... # instance_type="ml.c5.xlarge", instance_type="ml.g4dn.2xlarge" ... )
Opsi 2: Perbarui titik akhir yang ada
Lihat Opsi 2: Perbarui panduan titik akhir yang ada di Langkah 4 PyTorch bagian.
Topik
- Bagaimana EI Bekerja
- Pilih Jenis Akselerator EI
- Menggunakan EI dalam Instance SageMaker Notebook
- Gunakan EI pada Endpoint yang Dihosting
- Framework yang Mendukung EI
- Gunakan EI dengan Algoritma SageMaker Built-in
- Contoh Notebook EI
- Siapkan untuk Menggunakan EI
- Lampirkan EI ke Instance Notebook
- Gunakan EI di Titik Akhir yang SageMaker Dihosting Amazon
Pilih Jenis Akselerator EI
Pertimbangkan faktor-faktor berikut saat memilih jenis akselerator untuk model yang dihosting:
-
Model, tensor input, dan ukuran batch memengaruhi jumlah memori akselerator yang Anda butuhkan. Mulailah dengan jenis akselerator yang menyediakan setidaknya memori sebanyak ukuran file model terlatih Anda. Faktor bahwa model mungkin menggunakan memori secara signifikan lebih banyak daripada ukuran file saat runtime.
-
Tuntutan pada sumber daya komputasi CPU, memori sistem utama, dan akselerasi berbasis GPU dan memori akselerator bervariasi secara signifikan antara berbagai jenis model pembelajaran mendalam. Persyaratan latensi dan throughput aplikasi juga menentukan jumlah komputasi dan akselerasi yang Anda butuhkan. Uji secara menyeluruh berbagai konfigurasi tipe instans dan ukuran akselerator EI untuk memastikan Anda memilih konfigurasi yang paling sesuai dengan kebutuhan kinerja aplikasi Anda.
Untuk informasi selengkapnya tentang memilih akselerator EI, lihat:
Menggunakan EI dalam Instance SageMaker Notebook
Biasanya, Anda membuat dan menguji model pembelajaran mesin di buku SageMaker catatan sebelum Anda menerapkannya untuk produksi. Anda dapat melampirkan EI ke instance notebook saat membuat instance notebook. Anda dapat menyiapkan titik akhir yang di-host secara lokal pada instance notebook dengan menggunakan mode lokal yang didukung oleh, TensorFlow MXNet, serta PyTorch estimator serta model di Amazon SageMaker Python
Gunakan EI pada Endpoint yang Dihosting
Ketika Anda siap untuk menerapkan model Anda untuk produksi untuk memberikan kesimpulan, Anda membuat titik akhir yang SageMaker dihosting. Anda dapat melampirkan EI ke instance tempat titik akhir Anda di-host untuk meningkatkan kinerjanya dalam memberikan kesimpulan. Untuk petunjuk tentang cara melampirkan EI ke instance endpoint yang dihosting, lihatGunakan EI di Titik Akhir yang SageMaker Dihosting Amazon.
Framework yang Mendukung EI
Amazon Elastic Inference dirancang untuk digunakan dengan versi Apache MXNet TensorFlow, atau kerangka kerja pembelajaran mesin yang AWS disempurnakan. PyTorch Versi kerangka kerja yang disempurnakan ini secara otomatis dibangun ke dalam wadah saat Anda menggunakan Amazon SageMaker Python SDK, atau Anda dapat mengunduhnya sebagai file biner dan mengimpornya di wadah Docker Anda sendiri.
Anda dapat mengunduh file TensorFlow biner berkemampuan EI dari bucket Amazon S3 amazonei-tensorflow
Anda dapat mengunduh file biner MXNet berkemampuan EI dari bucket Amazon S3 amazonei-apachemxnet publik ke wadah penyajian MXNet.
Anda dapat mengunduh biner yang diaktifkan Elastic Inference
Untuk menggunakan Elastic Inference di endpoint yang di-host, Anda dapat memilih salah satu kerangka kerja berikut tergantung pada kebutuhan Anda.
Jika Anda perlu membuat wadah khusus untuk menerapkan model Anda yang kompleks dan memerlukan ekstensi ke kerangka kerja yang tidak didukung oleh kontainer SageMaker pra-bangun, gunakan AWS SDK tingkat rendah untuk Python
Gunakan EI dengan Algoritma SageMaker Built-in
Saat ini, algoritma Klasifikasi Gambar - MXNet dan Deteksi Objek - MxNet built-in mendukung EI. Untuk contoh yang menggunakan algoritma Klasifikasi Gambar dengan EI, lihat Contoh Klasifikasi Gambar Multiclass End-to-End
Contoh Notebook EI
Contoh notebook berikut memberikan contoh penggunaan EI di SageMaker:
-
Menggunakan Amazon Elastic Inference dengan MXNet di Amazon SageMaker
-
Menggunakan Amazon Elastic Inference dengan MXNet di Instans Notebook Amazon SageMaker
-
Menggunakan Amazon Elastic Inference dengan model yang dikompilasi TensorFlow NEO SageMaker
-
Menggunakan Amazon Elastic Inference dengan model Serving yang sudah terlatih TensorFlow SageMaker