Logo Zephyrnet

Các mô hình và thuật toán Amazon SageMaker JumpStart hiện có sẵn thông qua API

Ngày:

Vào tháng 12 2020, AWS đã thông báo về tính khả dụng chung of Khởi động Amazon SageMaker, một khả năng của Amazon SageMaker giúp bạn nhanh chóng và dễ dàng bắt đầu với học máy (ML). JumpStart cung cấp khả năng tinh chỉnh bằng một cú nhấp chuột và triển khai nhiều mô hình được đào tạo trước trên các tác vụ ML phổ biến, cũng như lựa chọn các giải pháp đầu cuối giải quyết các vấn đề kinh doanh phổ biến. Các tính năng này loại bỏ những công việc nặng nhọc khỏi mỗi bước của quy trình ML, giúp dễ dàng phát triển các mô hình chất lượng cao và giảm thời gian triển khai.

Trước đây, tất cả nội dung JumpStart chỉ có sẵn thông qua Xưởng sản xuất Amazon SageMaker, cung cấp một giao diện đồ họa thân thiện với người dùng để tương tác với tính năng. Hôm nay, chúng tôi vui mừng thông báo về việc ra mắt tính năng dễ sử dụng API JumpStart như một phần mở rộng của SageMaker Python SDK. Các API này cho phép bạn triển khai theo chương trình và tinh chỉnh một loạt các mô hình được đào tạo trước được JumpStart hỗ trợ trên tập dữ liệu của riêng bạn. Lần khởi chạy này mở khóa việc sử dụng các khả năng của JumpStart trong quy trình làm việc mã của bạn, đường ống MLOps và bất kỳ nơi nào khác mà bạn đang tương tác với SageMaker thông qua SDK.

Trong bài đăng này, chúng tôi cung cấp bản cập nhật về trạng thái hiện tại của các khả năng của JumpStart và hướng dẫn bạn thông qua quy trình sử dụng của API JumpStart với một trường hợp sử dụng ví dụ.

Tổng quan về JumpStart

JumpStart là một sản phẩm nhiều mặt bao gồm các khả năng khác nhau để giúp bạn nhanh chóng bắt đầu với ML trên SageMaker. Tại thời điểm viết bài này, JumpStart cho phép bạn thực hiện những việc sau:

  • Triển khai các mô hình được đào tạo trước cho các nhiệm vụ ML chung - JumpStart cho phép bạn giải quyết các nhiệm vụ ML thông thường mà không cần nỗ lực phát triển bằng cách cung cấp triển khai dễ dàng các mô hình được đào tạo trước trên các tập dữ liệu lớn có sẵn công khai. Cộng đồng nghiên cứu ML đã nỗ lực rất nhiều để làm cho phần lớn các mô hình được phát triển gần đây được công bố rộng rãi để sử dụng. JumpStart lưu trữ một bộ sưu tập hơn 300 mô hình, bao gồm 15 tác vụ ML phổ biến nhất như phát hiện đối tượng, phân loại văn bản và tạo văn bản, giúp người mới bắt đầu sử dụng chúng dễ dàng. Các mô hình này được lấy từ các trung tâm mô hình phổ biến, chẳng hạn như TensorFlow, PyTorch, Hugging Face và MXNet Hub.
  • Tinh chỉnh các mô hình được đào tạo trước - JumpStart cho phép bạn tinh chỉnh các mô hình được đào tạo trước mà không cần phải viết thuật toán đào tạo của riêng bạn. Trong ML, khả năng chuyển kiến ​​thức đã học ở miền này sang miền khác được gọi là học chuyển. Bạn có thể sử dụng phương pháp học chuyển giao để tạo ra các mô hình chính xác trên bộ dữ liệu nhỏ hơn của mình, với chi phí đào tạo thấp hơn nhiều so với chi phí đào tạo liên quan đến đào tạo mô hình ban đầu từ đầu. JumpStart cũng bao gồm các thuật toán đào tạo phổ biến dựa trên LightGBM, CatBoost, XGBoost và Scikit-learning mà bạn có thể đào tạo từ đầu để hồi quy và phân loại dữ liệu dạng bảng.
  • Sử dụng các giải pháp được tạo sẵn - JumpStart cung cấp một bộ 17 giải pháp được xây dựng trước cho các trường hợp sử dụng ML phổ biến, chẳng hạn như dự báo nhu cầu và các ứng dụng tài chính và công nghiệp, mà bạn có thể triển khai chỉ với một vài cú nhấp chuột. Các giải pháp là các ứng dụng ML end-to-end xâu chuỗi các dịch vụ AWS khác nhau lại với nhau để giải quyết một trường hợp sử dụng kinh doanh cụ thể. Họ sử dụng Hình thành đám mây AWS các mẫu và kiến ​​trúc tham chiếu để triển khai nhanh chóng, có nghĩa là chúng hoàn toàn có thể tùy chỉnh.
  • Sử dụng các ví dụ sổ tay cho các thuật toán SageMaker - SageMaker cung cấp một bộ thuật toán tích hợp để giúp các nhà khoa học dữ liệu và những người thực hành ML bắt đầu đào tạo và triển khai các mô hình ML một cách nhanh chóng. JumpStart cung cấp sổ ghi chép mẫu mà bạn có thể sử dụng để sử dụng nhanh các thuật toán này.
  • Tận dụng các video và blog đào tạo - JumpStart cũng cung cấp nhiều bài đăng trên blog và video hướng dẫn bạn cách sử dụng các chức năng khác nhau trong SageMaker.

JumpStart chấp nhận cài đặt VPC tùy chỉnh và khóa mã hóa KMS để bạn có thể sử dụng các mô hình và giải pháp có sẵn một cách an toàn trong môi trường doanh nghiệp của mình. Bạn có thể chuyển cài đặt bảo mật của mình tới JumpStart trong SageMaker Studio hoặc thông qua SageMaker Python SDK.

Các tác vụ ML hỗ trợ JumpStart và ví dụ về API Sổ tay

JumpStart hiện hỗ trợ 15 nhiệm vụ ML phổ biến nhất; 13 trong số đó là các nhiệm vụ dựa trên tầm nhìn và NLP, trong đó 8 nhiệm vụ hỗ trợ tinh chỉnh không mã. Nó cũng hỗ trợ bốn thuật toán phổ biến để lập mô hình dữ liệu dạng bảng. Các nhiệm vụ và liên kết đến sổ tay mẫu của họ được tóm tắt trong bảng sau.

Nhiệm vụ Suy luận với các mô hình được đào tạo trước Đào tạo về tập dữ liệu tùy chỉnh Các khung công tác được hỗ trợ Sổ tay Ví dụ
Phân loại hình ảnh Vâng Vâng PyTorch, TenorFlow Giới thiệu về JumpStart - Phân loại hình ảnh
Phát hiện đối tượng Vâng Vâng PyTorch, TensorFlow, MXNet Giới thiệu về JumpStart - Phát hiện đối tượng
Phân đoạn ngữ nghĩa Vâng Vâng MX Net Giới thiệu về JumpStart - Phân đoạn ngữ nghĩa
Phân đoạn phiên bản Vâng Không MX Net Giới thiệu về JumpStart - Phân đoạn phiên bản
Nhúng hình ảnh Vâng Không TenorFlow, MXNet Giới thiệu về JumpStart - Nhúng hình ảnh
Phân loại văn bản Vâng Vâng TensorFlow Giới thiệu về JumpStart - Phân loại văn bản
Phân loại cặp câu Vâng Vâng TensorFlow, ôm mặt Giới thiệu về JumpStart - Phân loại cặp câu
Trả lời câu hỏi Vâng Vâng Kim tự tháp Giới thiệu về JumpStart - Trả lời câu hỏi
Nhận dạng đối tượng được đặt tên Vâng Không Ôm mặt Giới thiệu về JumpStart - Nhận dạng đối tượng được đặt tên
Tóm tắt văn bản Vâng Không Ôm mặt Giới thiệu về JumpStart - Tóm tắt văn bản
Tạo văn bản Vâng Không Ôm mặt Giới thiệu về JumpStart - Tạo văn bản
Dịch máy Vâng Không Ôm mặt Giới thiệu về JumpStart - Dịch máy
Nhúng văn bản Vâng Không TenorFlow, MXNet Giới thiệu về JumpStart - Nhúng văn bản
Phân loại theo bảng Vâng Vâng LightGBM, CatBoost, XGBoost, Trình học tuyến tính Giới thiệu về JumpStart - Phân loại theo bảng - LightGBM, CatBoost
Giới thiệu về JumpStart - Phân loại theo bảng - XGBoost, Người học tuyến tính
Hồi quy dạng bảng Vâng Vâng LightGBM, CatBoost, XGBoost, Trình học tuyến tính Giới thiệu về JumpStart - Hồi quy bảng - LightGBM, CatBoost
Giới thiệu về JumpStart - Hồi quy dạng bảng - XGBoost, Linear Learner

Tùy thuộc vào nhiệm vụ, sổ ghi chép mẫu được liên kết trong bảng trước có thể hướng dẫn bạn về tất cả hoặc một tập hợp con của các quy trình sau:

  • Chọn một mô hình được đào tạo trước được hỗ trợ JumpStart cho nhiệm vụ cụ thể của bạn.
  • Lưu trữ một mô hình được đào tạo trước, nhận dự đoán từ nó trong thời gian thực và hiển thị đầy đủ kết quả.
  • Tinh chỉnh một mô hình được đào tạo trước với lựa chọn siêu tham số của riêng bạn và triển khai nó để suy luận.

Tinh chỉnh và triển khai mô hình phát hiện đối tượng với các API JumpStart

Trong các phần sau, chúng tôi cung cấp hướng dẫn từng bước về cách sử dụng các API JumpStart mới cho nhiệm vụ đại diện là phát hiện đối tượng. Chúng tôi chỉ ra cách sử dụng mô hình phát hiện đối tượng được đào tạo trước để xác định các đối tượng từ một tập hợp các lớp được xác định trước trong một hình ảnh có các hộp giới hạn. Cuối cùng, chúng tôi chỉ ra cách tinh chỉnh mô hình được đào tạo trước trên tập dữ liệu của riêng bạn để phát hiện các đối tượng trong hình ảnh cụ thể cho nhu cầu kinh doanh của bạn, đơn giản bằng cách đưa dữ liệu của riêng bạn. Chúng tôi cung cấp một sổ tay đi kèm cho hướng dẫn này.

Chúng tôi đi qua các bước cấp cao sau:

  1. Chạy suy luận trên mô hình được đào tạo trước.
    1. Truy xuất các tạo tác JumpStart và triển khai một điểm cuối.
    2. Truy vấn điểm cuối, phân tích cú pháp phản hồi và hiển thị các dự đoán của mô hình.
  2. Tinh chỉnh mô hình được đào tạo trước trên tập dữ liệu của riêng bạn.
    1. Truy xuất hiện vật đào tạo.
    2. Chạy huấn luyện.

Chạy suy luận trên mô hình được đào tạo trước

Trong phần này, chúng tôi chọn một mô hình thích hợp được đào tạo trước trong JumpStart, triển khai mô hình này tới một điểm cuối SageMaker và chỉ ra cách chạy suy luận trên điểm cuối đã triển khai. Tất cả các bước có sẵn trong sổ tay Jupyter đi kèm.

Truy xuất các tạo tác JumpStart và triển khai một điểm cuối

SageMaker là một nền tảng dựa trên Docker container. JumpStart sử dụng khung cụ thể có sẵn Bộ chứa học sâu SageMaker (DLC). Chúng tôi tìm nạp bất kỳ gói bổ sung nào, cũng như các tập lệnh để xử lý đào tạo và suy luận cho nhiệm vụ đã chọn. Cuối cùng, các tạo tác mô hình được đào tạo trước được tìm nạp riêng với model_uris, cung cấp tính linh hoạt cho nền tảng. Bạn có thể sử dụng bất kỳ số lượng mô hình nào được đào tạo trước cho cùng một nhiệm vụ với một kịch bản đào tạo hoặc suy luận duy nhất. Xem đoạn mã sau:

infer_model_id, infer_model_version = "pytorch-od-nvidia-ssd", "*" # Retrieve the inference docker container uri. This is the base container PyTorch image for the model selected above. deploy_image_uri = image_uris.retrieve(region=None, framework=None, image_scope="inference",model_id=infer_model_id, model_version=infer_model_version, instance_type=inference_instance_type) # Retrieve the inference script uri. This includes all dependencies and scripts for model loading, inference handling etc.
deploy_source_uri = script_uris.retrieve(model_id=infer_model_id, model_version=infer_model_version, script_scope="inference") # Retrieve the base model uri. This includes the pre-trained nvidia-ssd model and parameters.
base_model_uri = model_uris.retrieve(model_id=infer_model_id, model_version=infer_model_version, model_scope="inference")

Tiếp theo, chúng tôi cung cấp các tài nguyên vào Mô hình SageMaker ví dụ và triển khai một điểm cuối:

# Create the SageMaker model instance
model = Model(image_uri=deploy_image_uri, source_dir=deploy_source_uri, model_data=base_model_uri, entry_point="inference.py", role=aws_role, predictor_cls=Predictor, name=endpoint_name) # deploy the Model. Note that we need to pass Predictor class when we deploy model through Model class for being able to run inference through the sagemaker API.
base_model_predictor = model.deploy(initial_instance_count=1, instance_type=inference_instance_type, predictor_cls=Predictor, endpoint_name=endpoint_name)

Việc triển khai điểm cuối có thể mất vài phút để hoàn thành.

Truy vấn điểm cuối, phân tích cú pháp phản hồi và hiển thị các dự đoán

Để có được các suy luận từ một mô hình đã triển khai, hình ảnh đầu vào cần được cung cấp ở định dạng nhị phân cùng với kiểu chấp nhận. Trong JumpStart, bạn có thể xác định số hộp giới hạn được trả về. Trong đoạn mã sau, chúng tôi dự đoán mười hộp giới hạn cho mỗi hình ảnh bằng cách thêm vào ;n_predictions=10 đến Accept. Để dự đoán các hộp xx, bạn có thể thay đổi nó thành ;n_predictions=xx hoặc lấy tất cả các ô được dự đoán bằng cách bỏ qua ;n_predictions=xx hoàn toàn.

def query(model_predictor, image_file_name): with open(image_file_name, "rb") as file: input_img_rb = file.read() return model_predictor.predict(input_img_rb,{ "ContentType": "application/x-image", "Accept": "application/json;verbose;n_predictions=10"}) query_response = query(base_model_predictor, Naxos_Taverna)

Đoạn mã sau cung cấp cho bạn cái nhìn sơ lược về việc phát hiện đối tượng trông như thế nào. Xác suất dự đoán cho mỗi lớp đối tượng được hiển thị, cùng với hộp giới hạn của nó. Chúng tôi sử dụng parse_responsedisplay_predictions các chức năng trợ giúp, được định nghĩa trong phần máy tính xách tay.

normalized_boxes, classes_names, confidences = parse_response(query_response)
display_predictions(Naxos_Taverna, normalized_boxes, classes_names, confidences)

Ảnh chụp màn hình sau đây cho thấy đầu ra của một hình ảnh có nhãn dự đoán và hộp giới hạn.

Tinh chỉnh mô hình được đào tạo trước trên tập dữ liệu của riêng bạn

Các mô hình phát hiện đối tượng hiện có trong JumpStart được đào tạo trước trên bộ dữ liệu COCO hoặc VOC. Tuy nhiên, nếu bạn cần xác định các lớp đối tượng không tồn tại trong tập dữ liệu trước khi đào tạo ban đầu, bạn phải tinh chỉnh mô hình trên một tập dữ liệu mới bao gồm các loại đối tượng mới này. Ví dụ: nếu bạn cần xác định dụng cụ nhà bếp và chạy suy luận trên mô hình SSD được đào tạo trước đã triển khai, mô hình này không nhận ra bất kỳ đặc điểm nào của các loại hình ảnh mới và do đó kết quả đầu ra không chính xác.

Trong phần này, chúng tôi chứng minh việc tinh chỉnh mô hình được đào tạo trước dễ dàng như thế nào để phát hiện các lớp đối tượng mới bằng cách sử dụng các API JumpStart. Ví dụ về mã đầy đủ với nhiều chi tiết hơn có sẵn trong sổ tay đi kèm.

Lấy hiện vật đào tạo

Tạo tác huấn luyện tương tự như các tạo tác suy luận đã thảo luận trong phần trước. Đào tạo yêu cầu một vùng chứa Docker cơ sở, cụ thể là vùng chứa MXNet trong mã ví dụ sau. Bất kỳ gói bổ sung nào được yêu cầu để đào tạo đều được bao gồm với các tập lệnh đào tạo trong train_sourcer_uri. Mô hình được đào tạo trước và các thông số của nó được đóng gói riêng biệt.

train_model_id, train_model_version, train_scope = "mxnet-od-ssd-512-vgg16-atrous-coco","*","training"
training_instance_type = "ml.p2.xlarge" # Retrieve the docker image. This is the base container MXNet image for the model selected above. train_image_uri = image_uris.retrieve(region=None, framework=None, model_id=train_model_id, model_version=train_model_version, image_scope=train_scope,instance_type=training_instance_type) # Retrieve the training script and dependencies. This contains all the necessary files including data processing, model training etc.
train_source_uri = script_uris.retrieve(model_id=train_model_id, model_version=train_model_version, script_scope=train_scope) # Retrieve the pre-trained model tarball to further fine-tune
train_model_uri = model_uris.retrieve(
model_id=train_model_id, model_version=train_model_version, model_scope=train_scope)

Chạy đào tạo

Để chạy đào tạo, chúng tôi chỉ cần cung cấp các cấu phần cần thiết cùng với một số thông số bổ sung cho Công cụ ước tính SageMaker và gọi cho .fit chức năng:

# Create SageMaker Estimator instance
od_estimator = Estimator( role=aws_role, image_uri=train_image_uri, source_dir=train_source_uri, model_uri=train_model_uri, entry_point="transfer_learning.py", # Entry-point file in source_dir and present in train_source_uri. instance_count=1, instance_type=training_instance_type, max_run=360000, hyperparameters=hyperparameters, output_path=s3_output_location,
) # Launch a SageMaker Training job by passing s3 path of the training data
od_estimator.fit({"training": training_dataset_s3_path}, logs=True)

Trong khi thuật toán đào tạo, bạn có thể theo dõi tiến trình của nó trong sổ ghi chép SageMaker nơi bạn đang tự chạy mã hoặc trên amazoncloudwatch. Khi quá trình đào tạo hoàn tất, các tạo tác mô hình đã được tinh chỉnh sẽ được tải lên Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) vị trí đầu ra được chỉ định trong cấu hình đào tạo. Bây giờ bạn có thể triển khai mô hình theo cách tương tự như mô hình được đào tạo trước. Bạn có thể làm theo phần còn lại của quá trình trong sổ tay đi kèm.

Kết luận

Trong bài đăng này, chúng tôi đã mô tả giá trị của các API JumpStart mới được phát hành và cách sử dụng chúng. Chúng tôi đã cung cấp liên kết đến 17 sổ ghi chép ví dụ cho các tác vụ ML khác nhau được hỗ trợ trong JumpStart và hướng dẫn bạn qua sổ ghi chép phát hiện đối tượng.

Chúng tôi mong nhận được phản hồi từ bạn khi bạn thử nghiệm với JumpStart.


Về các tác giả

Tiến sĩ Vivek Madan là một Nhà Khoa học Ứng dụng của nhóm Amazon SageMaker JumpStart. Ông lấy bằng Tiến sĩ tại Đại học Illinois tại Urbana-Champaign và là Nhà nghiên cứu Sau Tiến sĩ tại Georgia Tech. Anh ấy là một nhà nghiên cứu tích cực về học máy và thiết kế thuật toán, và đã xuất bản các bài báo trong các hội nghị EMNLP, ICLR, COLT, FOCS và SODA.

João Moura là Kiến trúc sư Giải pháp Chuyên gia về AI / ML tại Amazon Web Services. Ông chủ yếu tập trung vào các trường hợp sử dụng NLP và giúp khách hàng tối ưu hóa việc đào tạo và triển khai mô hình Deep Learning.

Tiến sĩ Ashish Khetan là một nhà khoa học ứng dụng cao cấp với Khởi động Amazon SageMakerCác thuật toán tích hợp sẵn của Amazon SageMaker và giúp phát triển các thuật toán học máy. Ông là một nhà nghiên cứu tích cực về học máy và suy luận thống kê và đã xuất bản nhiều bài báo trong các hội nghị NeurIPS, ICML, ICLR, JMLR và ACL.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img

Trò chuyện trực tiếp với chúng tôi (chat)

Chào bạn! Làm thế nào để tôi giúp bạn?