بهترین روش ها برای آزمایش بارگذاری نقاط پایانی استنتاج بیدرنگ Amazon SageMaker

بهترین روش ها برای آزمایش بارگذاری نقاط پایانی استنتاج بیدرنگ Amazon SageMaker

گره منبع: 1889926

آمازون SageMaker یک سرویس یادگیری ماشینی (ML) کاملاً مدیریت شده است. با SageMaker، دانشمندان و توسعه دهندگان داده می توانند به سرعت و به راحتی مدل های ML را بسازند و آموزش دهند و سپس مستقیماً آنها را در یک محیط میزبان آماده تولید مستقر کنند. این یک نمونه یک نوت بوک نویسندگی Jupyter را برای دسترسی آسان به منابع داده شما برای کاوش و تجزیه و تحلیل فراهم می کند، بنابراین نیازی به مدیریت سرورها ندارید. مشترک را نیز فراهم می کند الگوریتم های ML که برای اجرای کارآمد در برابر داده های بسیار بزرگ در یک محیط توزیع شده بهینه شده اند.

استنتاج بلادرنگ SageMaker برای بارهای کاری که نیازمندی های زمان واقعی، تعاملی و با تأخیر کم هستند، ایده آل است. با استنتاج بلادرنگ SageMaker، می توانید نقاط پایانی REST را که توسط یک نوع نمونه خاص با مقدار مشخصی محاسبات و حافظه پشتیبانی می شوند، مستقر کنید. استقرار یک نقطه پایان بلادرنگ SageMaker تنها اولین قدم در مسیر تولید برای بسیاری از مشتریان است. ما می‌خواهیم بتوانیم عملکرد نقطه پایانی را برای دستیابی به تراکنش‌های هدف در ثانیه (TPS) در عین رعایت الزامات تاخیر، به حداکثر برسانیم. بخش بزرگی از بهینه‌سازی عملکرد برای استنباط، اطمینان از انتخاب نوع نمونه مناسب و شمارش برای پشتوانه یک نقطه پایانی است.

این پست بهترین روش‌ها را برای آزمایش بارگذاری یک نقطه پایانی SageMaker برای یافتن پیکربندی مناسب برای تعداد نمونه‌ها و اندازه توصیف می‌کند. این می‌تواند به ما در درک حداقل الزامات نمونه ارائه‌شده برای برآوردن الزامات تأخیر و TPS کمک کند. از آنجا به این موضوع می پردازیم که چگونه می توانید معیارها و عملکرد نقطه پایانی SageMaker را که از آن استفاده می کند، ردیابی و درک کنید. CloudWatch آمازون معیارهای.

ما ابتدا عملکرد مدل خود را در یک نمونه محک می زنیم تا TPS را که می تواند بر اساس الزامات تأخیر قابل قبول ما انجام دهد، شناسایی کنیم. سپس یافته ها را برون یابی می کنیم تا در مورد تعداد نمونه هایی که برای مدیریت ترافیک تولید خود نیاز داریم تصمیم گیری کنیم. در نهایت، ما ترافیک سطح تولید را شبیه‌سازی می‌کنیم و آزمایش‌های بار را برای یک نقطه پایانی SageMaker در زمان واقعی تنظیم می‌کنیم تا تأیید کنیم نقطه پایانی ما می‌تواند بار سطح تولید را مدیریت کند. کل مجموعه کد برای مثال در زیر موجود است مخزن GitHub.

بررسی اجمالی راه حل

برای این پست، ما از قبل آموزش دیده است صورت بغل کردن مدل DistilBERT از هاب صورت در آغوش. این مدل می تواند تعدادی کار را انجام دهد، اما ما یک بار به طور خاص برای تجزیه و تحلیل احساسات و طبقه بندی متن ارسال می کنیم. با این محموله نمونه، ما در تلاش برای دستیابی به 1000 TPS هستیم.

یک نقطه پایانی بلادرنگ مستقر کنید

این پست فرض می کند که شما با نحوه استقرار یک مدل آشنا هستید. رجوع شود به نقطه پایانی خود را ایجاد کنید و مدل خود را مستقر کنید برای درک عوامل داخلی پشت میزبانی یک نقطه پایانی. در حال حاضر، می توانیم به سرعت به این مدل در Hugging Face Hub اشاره کنیم و یک نقطه پایانی بلادرنگ را با قطعه کد زیر مستقر کنیم:

# Hub Model configuration. https://huggingface.co/models
hub = { 'HF_MODEL_ID':'distilbert-base-uncased', 'HF_TASK':'text-classification'
} # create Hugging Face Model Class
huggingface_model = HuggingFaceModel(
transformers_version='4.17.0',
pytorch_version='1.10.2',
py_version='py38',
env=hub,
role=role,
) # deploy model to SageMaker Inference
predictor = huggingface_model.deploy(
initial_instance_count=1, # number of instances
instance_type='ml.m5.12xlarge' # ec2 instance type
)

بیایید نقطه پایانی خود را به سرعت با بار نمونه ای که می خواهیم برای آزمایش بار استفاده کنیم آزمایش کنیم:


import boto3
import json
client = boto3.client('sagemaker-runtime')
content_type = "application/json"
request_body = {'inputs': "I am super happy right now."}
data = json.loads(json.dumps(request_body))
payload = json.dumps(data)
response = client.invoke_endpoint(
EndpointName=predictor.endpoint_name,
ContentType=content_type,
Body=payload)
result = response['Body'].read()
result

توجه داشته باشید که ما از نقطه پایانی با استفاده از یک تک پشتیبانی می کنیم ابر محاسبه الاستیک آمازون نمونه (Amazon EC2) از نوع ml.m5.12xlarge که دارای 48 vCPU و 192 گیگابایت حافظه است. تعداد vCPU ها نشانه خوبی از همزمانی است که نمونه می تواند انجام دهد. به طور کلی، توصیه می شود انواع نمونه های مختلف را آزمایش کنید تا مطمئن شوید نمونه ای داریم که منابعی دارد که به درستی استفاده شده است. برای مشاهده لیست کامل نمونه های SageMaker و قدرت محاسباتی مربوط به آنها برای استنتاج بلادرنگ، به قیمت گذاری آمازون SageMaker.

معیارهایی برای ردیابی

قبل از اینکه بخواهیم وارد تست بارگذاری شویم، ضروری است بدانیم چه معیارهایی را باید ردیابی کنیم تا بتوانیم عملکرد نقطه پایانی SageMaker خود را درک کنیم. CloudWatch ابزار ثبت اولیه است که SageMaker از آن برای کمک به درک معیارهای مختلف که عملکرد نقطه پایانی شما را توصیف می کند استفاده می کند. می‌توانید از گزارش‌های CloudWatch برای رفع اشکال فراخوان‌های نقطه پایانی خود استفاده کنید. تمام عبارات ثبت و چاپی که در کد استنتاج خود دارید در اینجا ثبت می شوند. برای اطلاعات بیشتر مراجعه کنید نحوه عملکرد آمازون CloudWatch.

دو نوع معیار مختلف برای پوشش‌های CloudWatch برای SageMaker وجود دارد: معیارهای سطح نمونه و معیارهای فراخوانی.

معیارهای سطح نمونه

اولین مجموعه از پارامترهایی که باید در نظر گرفته شود، معیارهای سطح نمونه است: CPUUtilization و MemoryUtilization (برای نمونه های مبتنی بر GPU، GPUUtilization) برای CPUUtilization، ممکن است در ابتدا درصدهای بالای 100٪ را در CloudWatch ببینید. مهم است که متوجه شوید CPUUtilization، مجموع تمام هسته های CPU نمایش داده می شود. به عنوان مثال، اگر نمونه پشت نقطه پایانی شما دارای 4 vCPU باشد، این بدان معناست که محدوده استفاده تا 400٪ است. MemoryUtilizationاز سوی دیگر، در محدوده 0-100٪ است.

به طور خاص، شما می توانید استفاده کنید CPUUtilization برای دریافت درک عمیق تر از اینکه آیا مقدار سخت افزار کافی یا حتی بیش از حد دارید. اگر یک نمونه کم استفاده دارید (کمتر از 30٪)، به طور بالقوه می توانید نوع نمونه خود را کاهش دهید. برعکس، اگر حدود 80 تا 90 درصد استفاده دارید، انتخاب نمونه ای با محاسبات/حافظه بیشتر مفید خواهد بود. از آزمایش‌های ما، استفاده حدود 60 تا 70 درصد از سخت‌افزار شما را پیشنهاد می‌کنیم.

معیارهای فراخوانی

همانطور که از نام نشان می‌دهد، معیارهای فراخوان جایی است که می‌توانیم تأخیر سرتاسر هر فراخوانی به نقطه پایانی شما را ردیابی کنیم. می‌توانید از معیارهای فراخوانی برای ثبت تعداد خطاها و نوع خطاهایی (5xx، 4xx و غیره) که ممکن است نقطه پایانی شما با آن مواجه شود، استفاده کنید. مهمتر از آن، می‌توانید تفکیک تأخیر تماس‌های نقطه پایانی خود را درک کنید. بسیاری از این را می توان با ModelLatency و OverheadLatency معیارها، همانطور که در نمودار زیر نشان داده شده است.

وقایع

La ModelLatency متریک زمان استنتاج را در ظرف مدل پشت نقطه پایانی SageMaker ثبت می کند. توجه داشته باشید که ظرف مدل همچنین شامل هر کد استنتاج سفارشی یا اسکریپت هایی است که برای استنتاج ارسال کرده اید. این واحد در میکروثانیه به عنوان یک متریک فراخوانی ثبت می شود، و به طور کلی می توانید یک صدک در سراسر CloudWatch (p99، p90، و غیره) ترسیم کنید تا ببینید آیا به تأخیر هدف خود رسیده اید یا خیر. توجه داشته باشید که عوامل متعددی می توانند بر تأخیر مدل و ظرف تأثیر بگذارند، مانند موارد زیر:

  • اسکریپت استنتاج سفارشی – چه کانتینر خود را پیاده‌سازی کرده باشید یا از یک کانتینر مبتنی بر SageMaker با کنترل‌کننده‌های استنتاج سفارشی استفاده کرده باشید، بهترین کار این است که اسکریپت خود را نمایه کنید تا عملیات‌هایی را که به طور خاص به تأخیر شما زمان زیادی اضافه می‌کنند، مشاهده کنید.
  • پروتکل ارتباطی – اتصالات REST در مقابل gRPC به سرور مدل در ظرف مدل را در نظر بگیرید.
  • بهینه سازی چارچوب مدل - این چارچوب خاص است، برای مثال با TensorFlow، تعدادی متغیر محیطی وجود دارد که می توانید آنها را تنظیم کنید که مختص سرویس TF هستند. مطمئن شوید که از چه کانتینری استفاده می‌کنید و آیا بهینه‌سازی‌های خاص چارچوبی وجود دارد که می‌توانید در اسکریپت یا به عنوان متغیرهای محیطی برای تزریق در ظرف اضافه کنید.

OverheadLatency از زمانی که SageMaker درخواست را دریافت می‌کند تا زمانی که پاسخی را به مشتری برمی‌گرداند، منهای تأخیر مدل اندازه‌گیری می‌شود. این بخش تا حد زیادی خارج از کنترل شما است و تحت زمان هزینه های سربار SageMaker قرار می گیرد.

تأخیر انتها به انتها به طور کلی به عوامل مختلفی بستگی دارد و لزوماً مجموع ModelLatency به علاوه OverheadLatency. به عنوان مثال، اگر مشتری شما در حال ساخت آن است InvokeEndpoint تماس API از طریق اینترنت، از دیدگاه مشتری، تأخیر انتها به انتها اینترنت + خواهد بود ModelLatency + OverheadLatency. به این ترتیب، هنگام بارگیری آزمایش نقطه پایانی خود به منظور محک زدن دقیق خود نقطه پایانی، توصیه می‌شود روی معیارهای نقطه پایانی تمرکز کنید (ModelLatency, OverheadLatencyو InvocationsPerInstance) برای بررسی دقیق نقطه پایانی SageMaker. هر گونه مشکل مربوط به تأخیر انتها به انتها می تواند به طور جداگانه جدا شود.

چند سوال برای تأخیر انتها به انتها:

  • مشتری که نقطه پایانی شما را فراخوانی می کند کجاست؟
  • آیا لایه های واسطه ای بین کلاینت شما و زمان اجرا SageMaker وجود دارد؟

مقیاس بندی خودکار

ما مقیاس خودکار را در این پست به طور خاص پوشش نمی‌دهیم، اما برای ارائه تعداد صحیح نمونه‌ها بر اساس حجم کار، توجه مهمی است. بسته به الگوهای ترافیکی خود، می توانید یک ضمیمه کنید سیاست مقیاس بندی خودکار به نقطه پایانی SageMaker شما. گزینه های مختلف مقیاس بندی وجود دارد، مانند TargetTrackingScaling, SimpleScalingو StepScaling. این به نقطه پایانی شما اجازه می‌دهد تا بر اساس الگوی ترافیک شما به‌طور خودکار داخل و خارج شود.

یک گزینه رایج، ردیابی هدف است، که در آن می توانید یک متریک CloudWatch یا متریک سفارشی که تعریف کرده اید را مشخص کنید و بر اساس آن مقیاس را کاهش دهید. استفاده مکرر از مقیاس خودکار ردیابی است InvocationsPerInstance متریک پس از شناسایی یک گلوگاه در یک TPS خاص، اغلب می توانید از آن به عنوان معیاری برای اندازه گیری تعداد بیشتری از نمونه ها استفاده کنید تا بتوانید بارهای اوج ترافیک را مدیریت کنید. برای دریافت تفکیک عمیق تر از مقیاس خودکار نقاط پایانی SageMaker، به پیکربندی نقاط پایانی استنتاج مقیاس‌پذیری خودکار در Amazon SageMaker.

تست بار

اگرچه ما از Locust برای نمایش نحوه بارگیری تست در مقیاس استفاده می کنیم، اگر سعی می کنید نمونه پشت نقطه پایانی خود را درست اندازه بگیرید، SageMaker Inference Recommender گزینه کارآمدتری است با ابزارهای تست بار شخص ثالث، شما باید به صورت دستی نقاط پایانی را در نمونه های مختلف مستقر کنید. با Inference Recommender، می‌توانید به سادگی آرایه‌ای از انواع نمونه‌هایی را که می‌خواهید تست بارگیری کنید، پاس کنید، و SageMaker به چرخش در می‌آید. شغل ها برای هر یک از این موارد

ملخ

برای این مثال استفاده می کنیم ملخ، یک ابزار تست بار منبع باز است که می توانید با استفاده از پایتون پیاده سازی کنید. Locust شبیه بسیاری دیگر از ابزارهای تست بار منبع باز است، اما دارای چند مزیت خاص است:

  • آسان برای راه اندازی – همانطور که در این پست نشان دادیم، یک اسکریپت ساده پایتون را ارسال می‌کنیم که به راحتی می‌تواند برای نقطه پایانی و بارگذاری خاص شما بازسازی شود.
  • توزیع شده و مقیاس پذیر - Locust مبتنی بر رویداد است و از آن استفاده می کند gevent در زیر کاپوت. این برای آزمایش بارهای کاری بسیار همزمان و شبیه سازی هزاران کاربر همزمان بسیار مفید است. شما می توانید با اجرای یک فرآیند Locust به TPS بالا دست یابید، اما این یک نیز دارد تولید بار توزیع شده همانطور که در این پست به بررسی آن خواهیم پرداخت، ویژگی‌ای که شما را قادر می‌سازد تا به چندین فرآیند و ماشین‌های کلاینت برسید.
  • معیارهای Locust و UI - Locust همچنین تأخیر انتها به انتها را به عنوان یک معیار اندازه گیری می کند. این می‌تواند به تکمیل معیارهای CloudWatch شما کمک کند تا تصویری کامل از آزمایش‌های شما ترسیم کند. همه اینها در رابط کاربری Locust ثبت شده است، جایی که می توانید کاربران، کارگران و موارد دیگر را همزمان ردیابی کنید.

برای درک بیشتر Locust، آنها را بررسی کنید مستندات.

راه اندازی آمازون EC2

می توانید Locust را در هر محیطی که برای شما سازگار است راه اندازی کنید. برای این پست، یک نمونه EC2 راه اندازی کردیم و Locust را در آنجا نصب کردیم تا آزمایشات خود را انجام دهیم. ما از یک نمونه c5.18xlarge EC2 استفاده می کنیم. قدرت محاسباتی سمت مشتری نیز چیزی است که باید در نظر گرفته شود. در مواقعی که قدرت محاسباتی شما در سمت کلاینت تمام می شود، اغلب این مورد ثبت نمی شود و به عنوان یک خطای نقطه پایانی SageMaker اشتباه می شود. مهم است که کلاینت خود را در مکانی با قدرت محاسباتی کافی قرار دهید که بتواند باری را که در آن آزمایش می کنید، تحمل کند. برای مثال EC2 ما از AMI یادگیری عمیق اوبونتو استفاده می کنیم، اما تا زمانی که بتوانید Locust را به درستی روی دستگاه تنظیم کنید، می توانید از هر AMI استفاده کنید. برای درک نحوه راه اندازی و اتصال به نمونه EC2 خود، به آموزش مراجعه کنید با نمونه های لینوکس آمازون EC2 شروع کنید.

رابط کاربری Locust از طریق پورت 8089 قابل دسترسی است. ما می‌توانیم این را با تنظیم قوانین گروه امنیتی ورودی خود برای نمونه EC2 باز کنیم. همچنین پورت 22 را باز می کنیم تا بتوانیم به نمونه EC2 SSH کنیم. محدوده منبع را تا آدرس IP خاصی که از آن به نمونه EC2 دسترسی دارید، در نظر بگیرید.

گروههای امنیتی

پس از اینکه به نمونه EC2 خود متصل شدید، یک محیط مجازی پایتون راه اندازی کرده و API منبع باز Locust را از طریق CLI نصب می کنیم:

virtualenv venv #venv is the virtual environment name, you can change as you desire
source venv/bin/activate #activate virtual environment
pip install locust

ما اکنون آماده کار با Locust برای آزمایش بارگذاری نقطه پایانی خود هستیم.

تست ملخ

تمام تست های بار ملخ بر اساس الف انجام می شود فایل ملخ که ارائه می کنید. این فایل Locust وظیفه ای را برای تست بارگذاری تعریف می کند. اینجاست که ما Boto3 خود را تعریف می کنیم تماس API invoke_endpoint. کد زیر را ببینید:

config = Config(
retries = { 'max_attempts': 0, 'mode': 'standard'
}
) self.sagemaker_client = boto3.client('sagemaker-runtime',config=config)
self.endpoint_name = host.split('/')[-1]
self.region = region
self.content_type = content_type
self.payload = payload

در کد قبلی، پارامترهای فراخوانی نقطه پایانی فراخوانی را متناسب با فراخوانی مدل خاص خود تنظیم کنید. ما استفاده می کنیم InvokeEndpoint API با استفاده از کد زیر در فایل Locust؛ این نقطه اجرای آزمایش بار ما است. فایل Locust ما استفاده می کنیم locust_script.py.

def send(self): request_meta = { "request_type": "InvokeEndpoint", "name": "SageMaker", "start_time": time.time(), "response_length": 0, "response": None, "context": {}, "exception": None,
}
start_perf_counter = time.perf_counter() try:
response = self.sagemaker_client.invoke_endpoint(
EndpointName=self.endpoint_name,
Body=self.payload,
ContentType=self.content_type
)
response_body = response["Body"].read()

اکنون که اسکریپت Locust خود را آماده کرده‌ایم، می‌خواهیم تست‌های Locust توزیع‌شده را برای تست استرس تک نمونه خود اجرا کنیم تا بفهمیم نمونه ما چقدر ترافیک را تحمل می‌کند.

حالت توزیع شده Locust نسبت به تست Locust تک فرآیندی کمی متفاوت تر است. در حالت توزیع شده، یک کارگر اولیه و چند کارگر داریم. کارگر اولیه به کارگران آموزش می دهد که چگونه کاربران همزمانی را که درخواست ارسال می کنند، ایجاد کنند و کنترل کنند. در ما توزیع شده.ش اسکریپت، به طور پیش فرض می بینیم که 240 کاربر در بین 60 کارگر توزیع می شوند. توجه داشته باشید که --headless پرچم در Locust CLI ویژگی رابط کاربری Locust را حذف می کند.

#replace with your endpoint name in format https://<<endpoint-name>>
export ENDPOINT_NAME=https://$1 export REGION=us-east-1
export CONTENT_TYPE=application/json
export PAYLOAD='{"inputs": "I am super happy right now."}'
export USERS=240
export WORKERS=60
export RUN_TIME=1m
export LOCUST_UI=false # Use Locust UI .
.
. locust -f $SCRIPT -H $ENDPOINT_NAME --master --expect-workers $WORKERS -u $USERS -t $RUN_TIME --csv results &
.
.
. for (( c=1; c<=$WORKERS; c++ ))
do
locust -f $SCRIPT -H $ENDPOINT_NAME --worker --master-host=localhost &
done

./distributed.sh huggingface-pytorch-inference-2022-10-04-02-46-44-677 #to execute Distributed Locust test

ابتدا تست توزیع شده را بر روی یک نمونه واحد که پشتوانه نقطه پایانی است اجرا می کنیم. ایده در اینجا این است که ما می‌خواهیم یک نمونه واحد را به طور کامل به حداکثر برسانیم تا تعداد نمونه‌هایی را که برای رسیدن به TPS هدف خود نیاز داریم و در عین حال در الزامات تأخیر خود باقی بمانیم، درک کنیم. توجه داشته باشید که اگر می خواهید به UI دسترسی داشته باشید، آن را تغییر دهید Locust_UI متغیر محیطی را به True تبدیل کنید و IP عمومی نمونه EC2 خود را بگیرید و پورت 8089 را به URL نقشه بردارید.

تصویر زیر معیارهای CloudWatch ما را نشان می دهد.

متریک CloudWatch

در نهایت، متوجه می‌شویم که اگرچه در ابتدا به TPS 200 می‌رسیم، همانطور که در تصویر زیر نشان داده شده است، متوجه خطاهای 5xx در لاگ‌های سمت مشتری EC2 می‌شویم.

ما همچنین می‌توانیم این را با نگاه کردن به معیارهای سطح نمونه خود تأیید کنیم CPUUtilization.

متریک CloudWatchدر اینجا متوجه می شویم CPUUtilization نزدیک به 4,800 درصد. نمونه ml.m5.12x.large ما دارای 48 vCPU (48 * 100 = 4800~) است. این کل نمونه را اشباع می کند، که به توضیح خطاهای 5xx ما نیز کمک می کند. همچنین شاهد افزایش در ModelLatency.

به نظر می رسد که نمونه واحد ما در حال سقوط است و محاسباتی برای حفظ بار بیش از 200 TPS که مشاهده می کنیم ندارد. TPS هدف ما 1000 است، بنابراین بیایید سعی کنیم تعداد نمونه های خود را به 5 افزایش دهیم. این ممکن است در یک تنظیم تولید حتی بیشتر باشد، زیرا ما خطاهایی را در 200 TPS بعد از یک نقطه خاص مشاهده می کردیم.

تنظیمات نقطه پایانی

در لاگ های Locust UI و CloudWatch می بینیم که TPS نزدیک به 1000 با پنج نمونه پشتیبان نقطه پایانی داریم.

ملخ

متریک CloudWatchاگر حتی با این تنظیمات سخت افزاری شروع به تجربه خطا کردید، حتماً نظارت کنید CPUUtilization برای درک تصویر کامل پشت میزبانی نقطه پایانی خود. بسیار مهم است که میزان استفاده از سخت افزار خود را درک کنید تا ببینید که آیا نیاز به افزایش یا حتی کاهش دارید. گاهی اوقات مشکلات در سطح ظرف منجر به خطاهای 5xx می شود، اما اگر CPUUtilization پایین است، نشان می دهد که سخت افزار شما نیست، بلکه چیزی در سطح ظرف یا مدل است که ممکن است منجر به این مشکلات شود (مثلاً متغیر محیطی مناسب برای تعداد کارگران تنظیم نشده است). از طرف دیگر، اگر متوجه شدید که نمونه شما کاملاً اشباع شده است، نشانه آن است که باید ناوگان نمونه فعلی را افزایش دهید یا نمونه بزرگتر را با ناوگان کوچکتر امتحان کنید.

اگرچه ما تعداد نمونه ها را به 5 افزایش دادیم تا 100 TPS را کنترل کنیم، اما می توانیم ببینیم که ModelLatency متریک هنوز بالاست این به دلیل اشباع بودن نمونه ها است. به طور کلی، ما پیشنهاد می کنیم که از منابع نمونه بین 60 تا 70 درصد استفاده کنیم.

پاک کردن

پس از تست بارگذاری، مطمئن شوید که منابعی را که استفاده نمی کنید از طریق کنسول SageMaker یا از طریق delete_endpoint تماس API Boto3. علاوه بر این، مطمئن شوید که نمونه EC2 یا هر راه‌اندازی کلاینت خود را متوقف کنید تا هزینه دیگری در آنجا متحمل نشوید.

خلاصه

در این پست توضیح دادیم که چگونه می‌توانید آزمایش SageMaker را در زمان واقعی بارگذاری کنید. ما همچنین در مورد معیارهایی که باید هنگام بارگذاری نقطه پایانی خود برای درک عملکرد خود ارزیابی کنید، بحث کردیم. حتما چک کنید SageMaker Inference Recommender برای درک بیشتر روش‌های اندازه‌گیری درست و بهینه‌سازی عملکرد بیشتر.


درباره نویسنده

مارک کارپ یک معمار ML با تیم خدمات SageMaker است. او بر کمک به مشتریان در طراحی، استقرار و مدیریت حجم کاری ML در مقیاس تمرکز دارد. او در اوقات فراغت خود از سفر و کاوش در مکان های جدید لذت می برد.

رام وجیراجو یک معمار ML با تیم خدمات SageMaker است. او بر کمک به مشتریان در ساخت و بهینه سازی راه حل های AI/ML خود در Amazon SageMaker تمرکز می کند. او در اوقات فراغت خود عاشق سفر و نوشتن است.

تمبر زمان:

بیشتر از آموزش ماشین AWS