Đào tạo gia tăng với Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm theo chiều dọc. Ai đó.

Đào tạo gia tăng với Amazon SageMaker JumpStart

Vào tháng 12 2020, AWS đã công bố tính khả dụng chung của Amazon SageMaker JumpStart, 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). Khởi động SageMaker 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 từ mỗi bước của quy trình ML, giúp dễ dàng hơn trong việc phát triển các mô hình chất lượng cao và giảm thời gian triển khai.

Tất cả nội dung JumpStart trước đây 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. Gần đây, chúng tôi cũng tuyên bố ra mắt dễ sử dụng API JumpStart như một phần mở rộng của SageMaker Python SDK, 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 hỗ trợ JumpStart 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 vui mừng thông báo rằng tất cả các mẫu JumpStart có thể huấn luyện hiện đều hỗ trợ đào tạo gia tăng. Đào tạo gia tăng cho phép bạn đào tạo một mô hình mà bạn đã tinh chỉnh bằng cách sử dụng một tập dữ liệu mở rộng có chứa một mô hình cơ bản không được tính đến trong các lần chạy tinh chỉnh trước đó, dẫn đến hiệu suất mô hình kém. Đào tạo gia tăng tiết kiệm cả thời gian và tài nguyên vì bạn không cần phải đào tạo lại mô hình từ đầu. Nếu bạn muốn chuyển thẳng vào mã JumpStart API mà chúng tôi giải thích trong bài đăng này, bạn có thể tham khảo mẫu máy tính xách tay.

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 phổ biến 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. 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 theo 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 cho các trường hợp sử dụng ML phổ biến như dự báo nhu cầu và các ứng dụng tài chính và công nghiệp, 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 để nhanh chóng áp dụng các thuật toán này.
  • Xem lại 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à Dịch vụ quản lý khóa AWS (AWS KMS) khóa mã hóa, vì vậy 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 bạn. Bạn có thể chuyển cài đặt bảo mật của mình tới JumpStart trong Studio hoặc thông qua SageMaker Python SDK.

Phân loại hình ảnh

Phân loại hình ảnh đề cập đến việc phân loại hình ảnh thành một trong các nhãn lớp trong tập dữ liệu đào tạo. Bạn có thể tinh chỉnh mô hình theo bất kỳ tập dữ liệu nhất định nào bao gồm các hình ảnh thuộc bất kỳ số lớp nào. Mô hình có sẵn để tinh chỉnh trên JumpStart gắn một lớp phân loại vào mô hình trích xuất tính năng tương ứng và khởi tạo các tham số lớp thành các giá trị ngẫu nhiên. Kích thước đầu ra của lớp phân loại được xác định dựa trên số lượng lớp trong dữ liệu đầu vào. Bước tinh chỉnh sẽ điều chỉnh các thông số của lớp phân loại, đồng thời giữ nguyên các thông số của mô hình trích xuất tính năng và trả về mô hình đã tinh chỉnh. Mục tiêu là giảm thiểu sai số dự đoán trên dữ liệu đầu vào.

Đối với tập dữ liệu của chúng tôi, đầu vào là một thư mục có nhiều thư mục con bằng số lớp. Mỗi thư mục con phải có các hình ảnh thuộc lớp đó ở định dạng .jpg. Thư mục đầu vào sẽ giống như hệ thống phân cấp sau nếu dữ liệu đào tạo chứa hình ảnh từ hai lớp: rosesdandelion:

input_directory |--roses |--abc.jpg |--def.jpg |--dandelion |--ghi.jpg |--jkl.jpg

Tên của các thư mục, lớp và tên tệp .jpg có thể là bất kỳ tên nào.

Chúng tôi cung cấp tf_flowers1 tập dữ liệu làm tập dữ liệu mặc định để tinh chỉnh mô hình. Tập dữ liệu này bao gồm hình ảnh của năm loại hoa. Tập dữ liệu đã được tải xuống từ TensorFlow.

Tổng quan về hướng dẫn

Các phần sau cung cấp bản trình diễn từng bước để thực hiện phân loại hình ảnh với JumpStart, cả thông qua giao diện người dùng Studio và API JumpStart.

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

  1. Truy cập JumpStart thông qua giao diện người dùng Studio:
    1. Tinh chỉnh mô hình được đào tạo trước.
    2. Triển khai mô hình tinh chỉnh.
    3. Tăng cường đào tạo mô hình đã được tinh chỉnh và triển khai lại.
  2. Sử dụng JumpStart theo lập trình với SageMaker Python SDK:
    1. Tinh chỉnh mô hình được đào tạo trước.
    2. Triển khai mô hình tinh chỉnh.
    3. Tăng cường đào tạo mô hình đã được tinh chỉnh và triển khai lại.

Truy cập JumpStart thông qua giao diện người dùng Studio

Trong phần này, chúng tôi trình bày cách tinh chỉnh và triển khai các mô hình JumpStart thông qua giao diện người dùng Studio. Ngoài ra, chúng tôi chỉ ra cách đào tạo từng bước một mô hình mà bạn đã tinh chỉnh trước đó.

Tinh chỉnh mô hình được đào tạo trước

Video sau đây hướng dẫn bạn cách tìm một mô hình phân loại hình ảnh được đào tạo trước trên JumpStart và tinh chỉnh nó. Trang mô hình chứa thông tin có giá trị về mô hình, cách sử dụng, định dạng dữ liệu dự kiến ​​và một số chi tiết tinh chỉnh.

Đối với mục đích trình diễn, chúng tôi tinh chỉnh mô hình bằng cách sử dụng tập dữ liệu được cung cấp theo mặc định, là tf_flowers tập dữ liệu, bao gồm các giống hoa khác nhau. Việc tinh chỉnh tập dữ liệu của riêng bạn bao gồm việc lấy đúng định dạng dữ liệu (như được giải thích trên trang mô hình), tải nó lên Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) và chỉ định vị trí của nó trong cấu hình nguồn dữ liệu.

Chúng tôi sử dụng cùng các giá trị siêu tham số được đặt theo mặc định (số kỷ nguyên, tốc độ học và kích thước lô). Chúng tôi cũng sử dụng phiên bản ml.p3.2xlarge được hỗ trợ bởi GPU làm phiên bản đào tạo SageMaker của chúng tôi.

Bạn có thể theo dõi công việc đào tạo của mình trực tiếp trên bảng điều khiển Studio và được thông báo sau khi hoàn thành.

Triển khai mô hình đã được tinh chỉnh

Sau khi đào tạo xong, bạn có thể triển khai mô hình đã tinh chỉnh từ cùng một trang chứa thông tin chi tiết về công việc đào tạo. Để triển khai mô hình của chúng tôi, chúng tôi chọn một loại phiên bản khác, ml.p2.xlarge. Nó vẫn cung cấp khả năng tăng tốc GPU cần thiết để có độ trễ suy luận thấp, nhưng ở mức giá thấp hơn. Sau khi bạn định cấu hình phiên bản lưu trữ SageMaker, hãy chọn Triển khai. Có thể mất 5–10 phút cho đến khi điểm cuối liên tục của bạn được thiết lập và hoạt động.

Sau đó, điểm cuối của bạn đã hoạt động và sẵn sàng đáp ứng các yêu cầu suy luận!

Để tăng thời gian suy luận của bạn, JumpStart cung cấp một sổ ghi chép mẫu cho bạn biết cách chạy suy luận trên điểm cuối mới được triển khai của bạn. Chọn Mở Notebook Dưới Sử dụng điểm cuối từ Studio.

Tăng cường đào tạo mô hình đã được tinh chỉnh và triển khai

Khi quá trình tinh chỉnh hoàn tất, bạn có thể đào tạo thêm mô hình để tăng hiệu suất. Bước này rất giống với quá trình tinh chỉnh ban đầu, ngoại trừ việc chúng ta sử dụng mô hình đã được tinh chỉnh làm điểm bắt đầu. Bạn có thể sử dụng dữ liệu mới, nhưng định dạng tập dữ liệu phải giống nhau (cùng một tập hợp các lớp).

Sử dụng JumpStart theo lập trình với SageMaker SDK

Trong các phần trước, chúng tôi đã chỉ ra cách bạn có thể sử dụng giao diện người dùng JumpStart để tinh chỉnh, triển khai và từng bước đào tạo mô hình một cách tương tác chỉ bằng một vài cú nhấp chuột. Bạn cũng có thể sử dụng các mô hình của JumpStart và dễ dàng tinh chỉnh theo chương trình bằng cách sử dụng các API được tích hợp vào SageMaker SDK. Bây giờ chúng ta đi qua một ví dụ nhanh về cách bạn có thể sao chép quy trình trước đó. Tất cả các bước trong bản trình diễn này có sẵn trong sổ tay đi kèm Giới thiệu về JumpStart - Phân loại hình ảnh.

Tinh chỉnh mô hình được đào tạo trước

Để tinh chỉnh một mô hình đã chọn, chúng ta cần lấy URI của mô hình đó, cũng như URI của tập lệnh đào tạo và hình ảnh vùng chứa được sử dụng để đào tạo. Rất may, ba đầu vào này chỉ phụ thuộc vào tên kiểu máy, phiên bản (để biết danh sách các kiểu máy có sẵn, hãy xem Bảng mẫu có sẵn của JumpStart), và loại phiên bản bạn muốn đào tạo. Điều này được thể hiện trong đoạn mã sau:

from sagemaker import image_uris, model_uris, script_uris model_id, model_version = "pytorch-ic-mobilenet-v2", "1.0.0"
training_instance_type = "ml.p3.2xlarge" # Retrieve the docker image
train_image_uri = image_uris.retrieve( region=None, framework=None, model_id=model_id, model_version=model_version, image_scope="training", instance_type=training_instance_type,
) # Retrieve the training script
train_source_uri = script_uris.retrieve(model_id=model_id, model_version=model_version, script_scope="training") # Retrieve the pre-trained model tarball to further fine-tune
train_model_uri = model_uris.retrieve(model_id=model_id, model_version=model_version, model_scope="training")

Chúng tôi truy xuất model_id tương ứng với cùng một mô hình mà chúng tôi đã sử dụng trước đó. Ic trong định danh tương ứng với phân loại hình ảnh.

Giờ đây, bạn có thể tinh chỉnh mô hình JumpStart này trên tập dữ liệu tùy chỉnh của riêng mình bằng cách sử dụng SageMaker SDK. Chúng tôi sử dụng cùng một tf_flowers tập dữ liệu được lưu trữ công khai trên Amazon S3, tập trung vào phân tích tình cảm một cách thuận tiện. Tập dữ liệu của bạn nên được cấu trúc để tinh chỉnh, như đã giải thích trong phần trước. Xem mã ví dụ sau:

# URI of your training dataset
training_dataset_s3_path = "s3://jumpstart-cache-prod-us-west-2/training-datasets/tf_flowers/"
training_job_name = name_from_base(f"jumpstart-example-{model_id}-transfer-learning") # Create SageMaker Estimator instance
ic_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", 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
ic_estimator.fit({"training": training_dataset_s3_path}, logs=True)

Chúng tôi có được các siêu tham số mặc định tương tự cho mô hình đã chọn của chúng tôi như những gì chúng tôi đã thấy trong phần trước, bằng cách sử dụng sagemaker.hyperparameters.retrieve_default(). Sau đó, chúng tôi khởi tạo công cụ ước tính SageMaker và gọi phương thức .fit để bắt đầu tinh chỉnh mô hình của chúng tôi, chuyển nó tới Amazon S3 URI cho dữ liệu đào tạo của chúng tôi. Như bạn có thể thấy, entry_point tập lệnh được cung cấp được đặt tên transfer_learning.py (tương tự đối với các tác vụ và mô hình khác) và kênh dữ liệu đầu vào được chuyển đến .fit phải được đặt tên training.

Triển khai mô hình tinh chỉnh

Khi quá trình đào tạo hoàn tất, bạn có thể triển khai mô hình đã tinh chỉnh của mình. Để làm như vậy, tất cả những gì chúng ta cần lấy là URI tập lệnh suy luận (mã xác định cách mô hình được sử dụng để suy luận sau khi được triển khai) và URI hình ảnh vùng chứa suy luận, bao gồm một máy chủ mô hình thích hợp để lưu trữ mô hình mà chúng tôi đã chọn. Xem đoạn mã sau:

# Retrieve the inference docker container uri
deploy_image_uri = image_uris.retrieve( region=None, framework=None, image_scope="inference", model_id=model_id, model_version=model_version, instance_type=inference_instance_type,
)
# Retrieve the inference script uri
deploy_source_uri = script_uris.retrieve( model_id=model_id, model_version=model_version, script_scope="inference"
) endpoint_name = name_from_base(f"jumpstart-example-FT-{model_id}-") # Use the estimator from the previous step to deploy to a SageMaker endpoint
finetuned_predictor = ic_estimator.deploy( initial_instance_count=1, instance_type=inference_instance_type, entry_point="inference.py", image_uri=deploy_image_uri, source_dir=deploy_source_uri, endpoint_name=endpoint_name,
)

Sau một vài phút, mô hình của chúng tôi sẽ được triển khai và chúng tôi có thể nhận dự đoán từ nó trong thời gian thực!

Tiếp theo, chúng tôi gọi điểm cuối để dự đoán loại hoa nào tồn tại trong hình ảnh ví dụ. Chúng tôi sử dụng query_endpointparse_response các chức năng trợ giúp, được định nghĩa trong phần máy tính xách tay.

query_response = finetuned_predictor.predict( img, {"ContentType": "application/x-image", "Accept": "application/json;verbose"} )
model_predictions = json.loads(query_response)
predicted_label = model_predictions["predicted_label"]
display( HTML( f'<img src={image_filename} alt={image_filename} align="left" style="width: 250px;"/>' f"<figcaption>Predicted Label: {predicted_label}</figcaption>" )
)

Tăng cường đào tạo mô hình đã được tinh chỉnh và triển khai lại

Chúng tôi có thể tăng hiệu suất của một mô hình đã được tinh chỉnh bằng cách đào tạo thêm về các hình ảnh mới. Bạn có thể sử dụng bất kỳ số lượng hình ảnh mới hoặc cũ nào cho việc này, tuy nhiên, định dạng tập dữ liệu phải giữ nguyên (cùng một tập hợp các lớp). Bước đào tạo gia tăng tương tự như quá trình tinh chỉnh, với một điểm khác biệt quan trọng: trong bước tinh chỉnh ban đầu, chúng tôi bắt đầu với một mô hình được đào tạo trước, trong khi trong quá trình đào tạo gia tăng, chúng tôi bắt đầu với một mô hình tinh chỉnh hiện có. Xem đoạn mã sau:

last_trained_model_path = f"{s3_output_location}/{last_training_job_name}/output/model.tar.gz"
incremental_s3_output_location = f"s3://{output_bucket}/{incremental_output_prefix}/output"incremental_train_estimator = Estimator( role=aws_role, image_uri=train_image_uri, source_dir=train_source_uri, model_uri=last_trained_model_path, entry_point="transfer_learning.py", instance_count=1, instance_type=training_instance_type, max_run=360000, hyperparameters=hyperparameters, output_path=incremental_s3_output_location, base_job_name=incremental_training_job_name,
) incremental_train_estimator.fit({"training": training_dataset_s3_path}, logs=True)

Khi quá trình đào tạo hoàn tất, chúng ta có thể sử dụng các bước tương tự như các bước được mô tả trong phần trước để triển khai mô hình.

Kết luận

JumpStart là một tính năng trong SageMaker cho phép bạn nhanh chóng bắt đầu với ML. JumpStart sử dụng các mô hình mã nguồn mở được đào tạo trước để giải quyết các vấn đề ML phổ biến như phân loại hình ảnh, phát hiện đối tượng, phân loại văn bản, phân loại cặp câu và trả lời câu hỏi.

Trong bài đăng này, chúng tôi đã hướng dẫn bạn cách tinh chỉnh và triển khai mô hình phân loại hình ảnh được đào tạo trước. Chúng tôi cũng chỉ ra cách đào tạo từng bước một mô hình được tinh chỉnh để phân loại hình ảnh. Với JumpStart, bạn có thể dễ dàng thực hiện quá trình này mà không cần phải viết mã. Hãy thử giải pháp của riêng bạn và cho chúng tôi biết nó diễn ra như thế nào trong các nhận xét. Để tìm hiểu thêm về JumpStart, hãy xem video AWS re: Invent 2020 Bắt đầu với ML trong vài phút với Amazon SageMaker JumpStart.

dự án

  1. Nhóm TensorFlow, 2019

Về các tác giả

Đào tạo gia tăng với Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm theo chiều dọc. Ai đó.Tiến sĩ Vivek Madan là một Nhà Khoa học Ứng dụng của nhóm Amazon SageMaker JumpStart. Anh ấy lấy bằng tiến sĩ. từ Đại học Illinois tại Urbana-Champaign và là Nghiên cứu viên 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.

Đào tạo gia tăng với Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm theo chiều dọc. Ai đó.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 học sâu. Ông cũng là người tích cực đề xuất các giải pháp ML mã thấp và phần cứng chuyên dụng ML.

Đào tạo gia tăng với Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm theo chiều dọc. Ai đó.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, ACL và EMNLP.

Dấu thời gian:

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