Các phương pháp hay nhất để kiểm tra tải Điểm cuối suy luận thời gian thực của Amazon SageMaker

Các phương pháp hay nhất để kiểm tra tải Điểm cuối suy luận thời gian thực của Amazon SageMaker

Nút nguồn: 1889926

Amazon SageMaker là một dịch vụ máy học (ML) được quản lý hoàn toàn. Với SageMaker, các nhà khoa học và nhà phát triển dữ liệu có thể xây dựng và đào tạo các mô hình ML một cách nhanh chóng và dễ dàng, sau đó trực tiếp triển khai chúng vào môi trường lưu trữ sẵn sàng sản xuất. Nó cung cấp một phiên bản sổ ghi chép tác giả Jupyter tích hợp để dễ dàng truy cập vào các nguồn dữ liệu của bạn để khám phá và phân tích, vì vậy bạn không phải quản lý máy chủ. Nó cũng cung cấp chung Thuật toán ML được tối ưu hóa để chạy hiệu quả với dữ liệu cực lớn trong môi trường phân tán.

SageMaker suy luận thời gian thực lý tưởng cho khối lượng công việc có yêu cầu thời gian thực, tương tác, độ trễ thấp. Với khả năng suy luận thời gian thực của SageMaker, bạn có thể triển khai các điểm cuối REST được hỗ trợ bởi một loại phiên bản cụ thể với một lượng điện toán và bộ nhớ nhất định. Triển khai điểm cuối thời gian thực SageMaker chỉ là bước đầu tiên trong lộ trình sản xuất cho nhiều khách hàng. Chúng tôi muốn có thể tối đa hóa hiệu suất của điểm cuối để đạt được số giao dịch mục tiêu mỗi giây (TPS) trong khi vẫn tuân thủ các yêu cầu về độ trễ. Một phần quan trọng của việc tối ưu hóa hiệu suất cho suy luận là đảm bảo bạn chọn loại phiên bản phù hợp và đếm ngược điểm cuối.

Bài đăng này mô tả các phương pháp hay nhất để kiểm tra tải điểm cuối SageMaker để tìm cấu hình phù hợp cho số lượng phiên bản và kích thước. Điều này có thể giúp chúng tôi hiểu các yêu cầu đối với phiên bản được cung cấp tối thiểu để đáp ứng các yêu cầu về độ trễ và TPS của chúng tôi. Từ đó, chúng tôi đi sâu vào cách bạn có thể theo dõi và hiểu các số liệu cũng như hiệu suất của điểm cuối SageMaker bằng cách sử dụng amazoncloudwatch số liệu.

Trước tiên, chúng tôi đánh giá hiệu suất của mô hình trên một phiên bản duy nhất để xác định TPS mà nó có thể xử lý theo các yêu cầu về độ trễ có thể chấp nhận được của chúng tôi. Sau đó, chúng tôi ngoại suy các phát hiện để quyết định số lượng phiên bản chúng tôi cần để xử lý lưu lượng sản xuất của mình. Cuối cùng, chúng tôi mô phỏng lưu lượng ở cấp độ sản xuất và thiết lập các thử nghiệm tải cho điểm cuối SageMaker thời gian thực để xác nhận rằng điểm cuối của chúng tôi có thể xử lý tải ở cấp độ sản xuất. Toàn bộ mã cho ví dụ có sẵn trong phần sau Kho GitHub.

Tổng quan về giải pháp

Đối với bài đăng này, chúng tôi triển khai một đào tạo trước Mô hình Ôm mặt DitilBERT từ Trung tâm khuôn mặt ôm. Mô hình này có thể thực hiện một số tác vụ, nhưng chúng tôi gửi một tải trọng cụ thể để phân tích cảm tính và phân loại văn bản. Với tải trọng mẫu này, chúng tôi cố gắng đạt được 1000 TPS.

Triển khai một điểm cuối thời gian thực

Bài đăng này giả định rằng bạn đã quen với cách triển khai một mô hình. tham khảo Tạo điểm cuối và triển khai mô hình của bạn để hiểu nội bộ đằng sau việc lưu trữ một điểm cuối. Hiện tại, chúng ta có thể nhanh chóng trỏ đến mô hình này trong Hugging Face Hub và triển khai điểm cuối thời gian thực với đoạn mã sau:

# 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
)

Hãy nhanh chóng kiểm tra điểm cuối của chúng tôi với tải trọng mẫu mà chúng tôi muốn sử dụng để kiểm tra tải:


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

Lưu ý rằng chúng tôi đang sao lưu điểm cuối bằng cách sử dụng một Đám mây điện toán đàn hồi Amazon (Amazon EC2) phiên bản loại ml.m5.12xlarge, chứa 48 vCPU và 192 GiB bộ nhớ. Số lượng vCPU là một dấu hiệu tốt về tính đồng thời mà phiên bản có thể xử lý. Nói chung, bạn nên thử nghiệm các loại phiên bản khác nhau để đảm bảo rằng chúng tôi có một phiên bản có tài nguyên được sử dụng hợp lý. Để xem danh sách đầy đủ các phiên bản SageMaker và sức mạnh tính toán tương ứng của chúng cho Suy luận thời gian thực, hãy tham khảo Amazon SageMaker Giá.

Số liệu để theo dõi

Trước khi chúng tôi có thể bắt đầu thử nghiệm tải, điều cần thiết là phải hiểu số liệu nào cần theo dõi để hiểu phân tích hiệu suất của điểm cuối SageMaker của bạn. CloudWatch là công cụ ghi nhật ký chính mà SageMaker sử dụng để giúp bạn hiểu các chỉ số khác nhau mô tả hiệu suất điểm cuối của bạn. Bạn có thể sử dụng nhật ký CloudWatch để gỡ lỗi các lệnh gọi điểm cuối của mình; tất cả các câu lệnh ghi và in mà bạn có trong mã suy luận đều được ghi lại ở đây. Để biết thêm thông tin, hãy tham khảo Cách thức hoạt động của Amazon CloudWatch.

Có hai loại chỉ số khác nhau mà CloudWatch dành cho SageMaker: chỉ số cấp phiên bản và yêu cầu.

Chỉ số cấp phiên bản

Tập hợp tham số đầu tiên cần xem xét là chỉ số cấp phiên bản: CPUUtilizationMemoryUtilization (đối với các phiên bản dựa trên GPU, GPUUtilization). Dành cho CPUUtilization, ban đầu bạn có thể thấy tỷ lệ phần trăm trên 100% trong CloudWatch. Điều quan trọng là phải nhận ra cho CPUUtilization, tổng của tất cả các lõi CPU đang được hiển thị. Ví dụ: nếu phiên bản đằng sau điểm cuối của bạn chứa 4 vCPU, điều này có nghĩa là phạm vi sử dụng lên tới 400%. MemoryUtilizationmặt khác, nằm trong khoảng 0–100%.

Cụ thể, bạn có thể sử dụng CPUUtilization để hiểu sâu hơn về việc liệu bạn có đủ hoặc thậm chí thừa số lượng phần cứng hay không. Nếu bạn có một phiên bản chưa được sử dụng hết (dưới 30%), bạn có thể thu nhỏ loại phiên bản của mình. Ngược lại, nếu mức sử dụng của bạn là khoảng 80–90%, bạn nên chọn một phiên bản có bộ nhớ/điện toán lớn hơn. Từ các thử nghiệm của mình, chúng tôi khuyên bạn nên sử dụng khoảng 60–70% phần cứng của mình.

số liệu gọi

Như tên gợi ý, chỉ số lệnh gọi là nơi chúng tôi có thể theo dõi độ trễ từ đầu đến cuối của bất kỳ lệnh gọi nào đến điểm cuối của bạn. Bạn có thể sử dụng các số liệu lệnh gọi để nắm bắt số lượng lỗi và loại lỗi (5xx, 4xx, v.v.) mà điểm cuối của bạn có thể đang gặp phải. Quan trọng hơn, bạn có thể hiểu phân tích độ trễ của cuộc gọi điểm cuối của mình. Rất nhiều trong số này có thể được chụp với ModelLatencyOverheadLatency số liệu, như được minh họa trong sơ đồ sau.

Độ trễ

Sản phẩm ModelLatency số liệu nắm bắt thời gian suy luận trong vùng chứa mô hình phía sau điểm cuối SageMaker. Lưu ý rằng bộ chứa mô hình cũng bao gồm bất kỳ mã hoặc tập lệnh suy luận tùy chỉnh nào mà bạn đã chuyển để suy luận. Đơn vị này được ghi lại bằng micro giây dưới dạng số liệu yêu cầu và nói chung, bạn có thể vẽ biểu đồ phần trăm trên CloudWatch (p99, p90, v.v.) để xem liệu bạn có đáp ứng độ trễ mục tiêu của mình hay không. Lưu ý rằng một số yếu tố có thể ảnh hưởng đến độ trễ của mô hình và vùng chứa, chẳng hạn như các yếu tố sau:

  • Tập lệnh suy luận tùy chỉnh – Cho dù bạn đã triển khai vùng chứa của riêng mình hay sử dụng vùng chứa dựa trên SageMaker với trình xử lý suy luận tùy chỉnh, thì cách tốt nhất là lập hồ sơ tập lệnh của bạn để nắm bắt bất kỳ hoạt động nào đặc biệt làm tăng thêm nhiều thời gian cho độ trễ của bạn.
  • Giao thức truyền thông – Xem xét các kết nối REST so với gRPC với máy chủ mô hình trong vùng chứa mô hình.
  • Tối ưu hóa khung mô hình – Đây là khung cụ thể, ví dụ với TensorFlow, bạn có thể điều chỉnh một số biến môi trường dành riêng cho Phục vụ TF. Đảm bảo kiểm tra xem bạn đang sử dụng vùng chứa nào và nếu có bất kỳ tối ưu hóa dành riêng cho khung nào mà bạn có thể thêm vào trong tập lệnh hoặc dưới dạng các biến môi trường để thêm vào vùng chứa.

OverheadLatency được đo từ thời điểm SageMaker nhận được yêu cầu cho đến khi nó trả về phản hồi cho máy khách, trừ đi độ trễ của mô hình. Phần này phần lớn nằm ngoài tầm kiểm soát của bạn và nằm trong khoảng thời gian do SageMaker quản lý.

Độ trễ từ đầu đến cuối nói chung phụ thuộc vào nhiều yếu tố khác nhau và không nhất thiết phải là tổng của ModelLatency thêm OverheadLatency. Ví dụ: nếu khách hàng của bạn đang thực hiện InvokeEndpoint Lệnh gọi API qua internet, theo quan điểm của khách hàng, độ trễ từ đầu đến cuối sẽ là internet + ModelLatency + OverheadLatency. Do đó, khi kiểm tra tải điểm cuối của bạn để đánh giá chính xác điểm cuối, bạn nên tập trung vào các chỉ số điểm cuối (ModelLatency, OverheadLatencyInvocationsPerInstance) để định chuẩn chính xác điểm cuối SageMaker. Sau đó, mọi vấn đề liên quan đến độ trễ từ đầu đến cuối có thể được tách riêng.

Một số câu hỏi cần cân nhắc đối với độ trễ từ đầu đến cuối:

  • Khách hàng đang gọi điểm cuối của bạn ở đâu?
  • Có bất kỳ lớp trung gian nào giữa máy khách của bạn và thời gian chạy SageMaker không?

Tự động chia tỷ lệ

Chúng tôi không đề cập cụ thể đến tính năng tự động thay đổi quy mô trong bài đăng này, nhưng đây là một cân nhắc quan trọng để cung cấp số lượng phiên bản chính xác dựa trên khối lượng công việc. Tùy thuộc vào mẫu lưu lượng truy cập của bạn, bạn có thể đính kèm một chính sách mở rộng tự động đến điểm cuối SageMaker của bạn. Có các tùy chọn mở rộng khác nhau, chẳng hạn như TargetTrackingScaling, SimpleScalingStepScaling. Điều này cho phép điểm cuối của bạn tự động mở rộng quy mô dựa trên mẫu lưu lượng truy cập của bạn.

Một tùy chọn phổ biến là theo dõi mục tiêu, trong đó bạn có thể chỉ định chỉ số CloudWatch hoặc chỉ số tùy chỉnh mà bạn đã xác định và mở rộng quy mô dựa trên đó. Việc sử dụng thường xuyên tự động chia tỷ lệ là theo dõi InvocationsPerInstance Hệ mét. Sau khi bạn đã xác định được nút cổ chai ở một TPS nhất định, bạn thường có thể sử dụng nút cổ chai đó làm thước đo để mở rộng quy mô cho số lượng phiên bản lớn hơn để có thể xử lý tải lưu lượng cao nhất. Để có được phân tích sâu hơn về các điểm cuối SageMaker tự động thay đổi quy mô, hãy tham khảo Định cấu hình điểm cuối suy luận tự động thay đổi quy mô trong Amazon SageMaker.

Kiểm tra tải

Mặc dù chúng tôi sử dụng Locust để hiển thị cách chúng tôi có thể tải thử nghiệm theo quy mô, nhưng nếu bạn đang cố gắng điều chỉnh kích thước phù hợp của phiên bản phía sau điểm cuối của mình, Đề xuất suy luận của SageMaker là một lựa chọn hiệu quả hơn. Với các công cụ kiểm tra tải của bên thứ ba, bạn phải triển khai các điểm cuối theo cách thủ công trên các phiên bản khác nhau. Với Trình đề xuất suy luận, bạn có thể chỉ cần chuyển một mảng gồm các loại phiên bản mà bạn muốn tải kiểm tra và SageMaker sẽ khởi động việc làm cho mỗi trường hợp này.

giống châu chấu

Đối với ví dụ này, chúng tôi sử dụng giống châu chấu, một công cụ kiểm tra tải mã nguồn mở mà bạn có thể triển khai bằng Python. Locust tương tự như nhiều công cụ kiểm tra tải nguồn mở khác, nhưng có một vài lợi ích cụ thể:

  • Dễ dàng cài đặt – Như chúng tôi trình bày trong bài đăng này, chúng tôi sẽ chuyển một tập lệnh Python đơn giản có thể dễ dàng tái cấu trúc cho điểm cuối và tải trọng cụ thể của bạn.
  • Phân phối và có thể mở rộng – Locust dựa trên sự kiện và sử dụng sự kiện dưới mui xe. Điều này rất hữu ích để thử nghiệm khối lượng công việc đồng thời cao và mô phỏng hàng nghìn người dùng đồng thời. Bạn có thể đạt được TPS cao với một quy trình chạy Locust, nhưng nó cũng có một tạo tải phân tán tính năng cho phép bạn mở rộng quy mô cho nhiều quy trình và máy khách, như chúng ta sẽ khám phá trong bài đăng này.
  • Số liệu và giao diện người dùng Locus – Locust cũng nắm bắt độ trễ từ đầu đến cuối dưới dạng số liệu. Điều này có thể giúp bổ sung cho các số liệu CloudWatch của bạn để vẽ nên bức tranh đầy đủ về các thử nghiệm của bạn. Tất cả điều này được ghi lại trong Giao diện người dùng Locust, nơi bạn có thể theo dõi người dùng đồng thời, nhân viên, v.v.

Để hiểu rõ hơn về Locust, hãy xem tài liệu hướng dẫn.

Thiết lập Amazon EC2

Bạn có thể thiết lập Locust trong bất kỳ môi trường nào tương thích với bạn. Đối với bài đăng này, chúng tôi đã thiết lập một phiên bản EC2 và cài đặt Locust ở đó để tiến hành các thử nghiệm của mình. Chúng tôi sử dụng phiên bản c5.18xlarge EC2. Sức mạnh tính toán phía máy khách cũng là điều cần xem xét. Vào những thời điểm bạn hết năng lượng tính toán ở phía máy khách, điều này thường không được ghi lại và bị nhầm là lỗi điểm cuối SageMaker. Điều quan trọng là phải đặt máy khách của bạn ở vị trí có đủ sức mạnh tính toán để có thể xử lý tải mà bạn đang thử nghiệm. Đối với phiên bản EC2 của chúng tôi, chúng tôi sử dụng AMI Deep Learning của Ubuntu, nhưng bạn có thể sử dụng bất kỳ AMI nào miễn là bạn có thể thiết lập Locust đúng cách trên máy. Để hiểu cách khởi chạy và kết nối với phiên bản EC2 của bạn, hãy tham khảo hướng dẫn Bắt đầu với các phiên bản Amazon EC2 Linux.

Giao diện người dùng Locust có thể truy cập qua cổng 8089. Chúng tôi có thể mở giao diện này bằng cách điều chỉnh các quy tắc nhóm bảo mật gửi đến cho Phiên bản EC2. Chúng tôi cũng mở cổng 22 để có thể SSH vào phiên bản EC2. Cân nhắc xác định phạm vi nguồn xuống địa chỉ IP cụ thể mà từ đó bạn đang truy cập vào phiên bản EC2.

Nhóm bảo mật

Sau khi bạn kết nối với phiên bản EC2 của mình, chúng tôi sẽ thiết lập môi trường ảo Python và cài đặt API Locust nguồn mở thông qua 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

Bây giờ chúng tôi đã sẵn sàng làm việc với Locust để kiểm tra tải điểm cuối của chúng tôi.

kiểm tra châu chấu

Tất cả các bài kiểm tra tải Locust được tiến hành dựa trên một tập tin châu chấu mà bạn cung cấp. Tệp Locust này xác định một tác vụ cho kiểm tra tải; đây là nơi chúng tôi xác định Boto3 của mình gọi API gọi_endpoint. Xem mã sau đây:

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

Trong đoạn mã trước, hãy điều chỉnh các tham số lệnh gọi điểm cuối gọi cho phù hợp với lệnh gọi mô hình cụ thể của bạn. chúng tôi sử dụng InvokeEndpoint API bằng cách sử dụng đoạn mã sau trong tệp Locust; đây là điểm chạy thử tải của chúng tôi. Tệp Locust chúng tôi đang sử dụng là châu chấu_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()

Bây giờ chúng tôi đã sẵn sàng tập lệnh Locust của mình, chúng tôi muốn chạy thử nghiệm Locust được phân phối để kiểm tra căng thẳng phiên bản đơn lẻ của chúng tôi nhằm tìm hiểu xem phiên bản của chúng tôi có thể xử lý bao nhiêu lưu lượng truy cập.

Chế độ phân tán Locust có nhiều sắc thái hơn một chút so với thử nghiệm Locust một quy trình. Trong chế độ phân tán, chúng tôi có một công nhân chính và nhiều công nhân. Công nhân chính hướng dẫn công nhân cách sinh ra và kiểm soát những người dùng đồng thời đang gửi yêu cầu. trong chúng tôi phân phối.sh theo mặc định, chúng tôi thấy rằng 240 người dùng sẽ được phân phối trên 60 công nhân. Lưu ý rằng --headless cờ trong Locust CLI xóa tính năng giao diện người dùng của 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

Trước tiên, chúng tôi chạy thử nghiệm phân tán trên một phiên bản duy nhất sao lưu điểm cuối. Ý tưởng ở đây là chúng tôi muốn tối đa hóa hoàn toàn một phiên bản duy nhất để hiểu số lượng phiên bản mà chúng tôi cần để đạt được TPS mục tiêu trong khi vẫn đáp ứng các yêu cầu về độ trễ của chúng tôi. Lưu ý rằng nếu bạn muốn truy cập giao diện người dùng, hãy thay đổi Locust_UI biến môi trường thành True và lấy IP công khai của phiên bản EC2 và ánh xạ cổng 8089 tới URL.

Ảnh chụp màn hình sau đây hiển thị các chỉ số CloudWatch của chúng tôi.

Số liệu CloudWatch

Cuối cùng, chúng tôi nhận thấy rằng mặc dù ban đầu chúng tôi đạt được TPS là 200, nhưng chúng tôi bắt đầu nhận thấy lỗi 5xx trong nhật ký phía máy khách EC2 của mình, như minh họa trong ảnh chụp màn hình sau.

Chúng tôi cũng có thể xác minh điều này bằng cách xem xét các chỉ số cấp phiên bản của mình, cụ thể là CPUUtilization.

Số liệu CloudWatchỞ đây chúng tôi nhận thấy CPUUtilization ở mức gần 4,800%. Phiên bản ml.m5.12x.large của chúng tôi có 48 vCPU (48 * 100 = 4800~). Điều này đang bão hòa toàn bộ phiên bản, điều này cũng giúp giải thích các lỗi 5xx của chúng tôi. Chúng tôi cũng nhận thấy sự gia tăng trong ModelLatency.

Có vẻ như phiên bản duy nhất của chúng tôi đang bị lật đổ và không có khả năng tính toán để duy trì tải vượt quá 200 TPS mà chúng tôi đang quan sát. TPS mục tiêu của chúng tôi là 1000, vì vậy, hãy thử tăng số lượng phiên bản của chúng tôi lên 5. Con số này có thể còn cao hơn nữa trong cài đặt sản xuất vì chúng tôi đã quan sát thấy lỗi ở 200 TPS sau một thời điểm nhất định.

Cài đặt điểm cuối

Chúng tôi thấy trong cả nhật ký Locust UI và CloudWatch rằng chúng tôi có TPS gần 1000 với năm phiên bản sao lưu điểm cuối.

giống châu chấu

Số liệu CloudWatchNếu bạn bắt đầu gặp lỗi ngay cả với thiết lập phần cứng này, hãy nhớ theo dõi CPUUtilization để hiểu bức tranh đầy đủ đằng sau dịch vụ lưu trữ điểm cuối của bạn. Điều quan trọng là phải hiểu việc sử dụng phần cứng của bạn để xem liệu bạn có cần tăng hay giảm quy mô hay không. Đôi khi các sự cố ở cấp bộ chứa dẫn đến lỗi 5xx, nhưng nếu CPUUtilization thấp, điều đó cho thấy rằng đó không phải là phần cứng của bạn mà là thứ gì đó ở cấp độ bộ chứa hoặc cấp độ mô hình có thể dẫn đến các sự cố này (ví dụ: biến môi trường thích hợp cho số lượng công nhân chưa được đặt). Mặt khác, nếu bạn nhận thấy phiên bản của mình đang trở nên bão hòa hoàn toàn, thì đó là dấu hiệu cho thấy bạn cần tăng nhóm phiên bản hiện tại hoặc thử phiên bản lớn hơn với một nhóm nhỏ hơn.

Mặc dù chúng tôi đã tăng số lượng phiên bản lên 5 để xử lý 100 TPS, nhưng chúng tôi có thể thấy rằng ModelLatency chỉ số vẫn còn cao. Điều này là do các trường hợp bị bão hòa. Nói chung, chúng tôi khuyên bạn nên đặt mục tiêu sử dụng tài nguyên của phiên bản trong khoảng 60–70%.

Làm sạch

Sau khi kiểm tra tải, hãy đảm bảo dọn sạch mọi tài nguyên mà bạn sẽ không sử dụng thông qua bảng điều khiển SageMaker hoặc thông qua xóa_endpoint Cuộc gọi API Boto3. Ngoài ra, hãy đảm bảo dừng phiên bản EC2 của bạn hoặc bất kỳ thiết lập ứng dụng khách nào mà bạn phải thực hiện để không phải chịu thêm bất kỳ khoản phí nào ở đó.

Tổng kết

Trong bài đăng này, chúng tôi đã mô tả cách bạn có thể tải kiểm tra điểm cuối thời gian thực SageMaker của mình. Chúng tôi cũng đã thảo luận về những số liệu bạn nên đánh giá khi kiểm tra tải điểm cuối của bạn để hiểu phân tích hiệu suất của bạn. Hãy chắc chắn để kiểm tra Đề xuất suy luận của SageMaker để hiểu rõ hơn về các kỹ thuật tối ưu hóa hiệu suất và kích thước phù hợp của phiên bản.


Về các tác giả

Marc Karp là một Kiến trúc sư ML với nhóm Dịch vụ SageMaker. Ông tập trung vào việc giúp khách hàng thiết kế, triển khai và quản lý khối lượng công việc ML trên quy mô lớn. Khi rảnh rỗi, anh ấy thích đi du lịch và khám phá những địa điểm mới.

Ram Vegiraju là một Kiến trúc sư ML với nhóm Dịch vụ SageMaker. Anh ấy tập trung vào việc giúp khách hàng xây dựng và tối ưu hóa các giải pháp AI / ML của họ trên Amazon SageMaker. Trong thời gian rảnh rỗi, anh ấy thích đi du lịch và viết lách.

Dấu thời gian:

Thêm từ Học máy AWS