Chạy điều chỉnh mô hình tự động với Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Chạy điều chỉnh mô hình tự động với Amazon SageMaker JumpStart

Vào tháng 2020 năm XNUMX, AWS công bố sự sẵn có chung của 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). Vào tháng 2022 năm XNUMX, chúng tôi cũng công bố hỗ trợ cho các API trong JumpStart. 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 từ mỗi bước của quy trình ML, giúp việc phát triển các mô hình chất lượng cao trở nên đơn giản hơn và giảm thời gian triển khai.

Trong bài đăng này, chúng tôi trình bày cách chạy điều chỉnh mô hình tự động với JumpStart.

SageMaker điều chỉnh mô hình tự động

Theo truyền thống, các kỹ sư ML thực hiện phương pháp thử và sai để tìm ra bộ siêu tham số phù hợp. Thử nghiệm và lỗi liên quan đến việc chạy nhiều công việc tuần tự hoặc song song trong khi cung cấp các tài nguyên cần thiết để chạy thử nghiệm.

Với SageMaker điều chỉnh mô hình tự động, Các kỹ sư ML và nhà khoa học dữ liệu có thể giảm bớt công việc tốn nhiều thời gian là tối ưu hóa mô hình của họ và để SageMaker chạy thử nghiệm. SageMaker tận dụng tính đàn hồi của nền tảng AWS để chạy đồng thời và hiệu quả nhiều mô phỏng đào tạo trên một tập dữ liệu và tìm các siêu tham số tốt nhất cho một mô hình.

Điều chỉnh mô hình tự động SageMaker tìm ra phiên bản tốt nhất của mô hình bằng cách chạy nhiều công việc đào tạo trên tập dữ liệu của bạn bằng cách sử dụng thuật toán và các dãy siêu tham số mà bạn chỉ định. Sau đó, nó chọn các giá trị siêu tham số dẫn đến mô hình hoạt động tốt nhất, như được đo bằng số liệu mà bạn chọn.

Điều chỉnh mô hình tự động sử dụng một Bayesian (mặc định) hoặc một ngẫu nhiên chiến lược tìm kiếm để tìm các giá trị tốt nhất cho siêu tham số. Tìm kiếm Bayes coi điều chỉnh siêu tham số giống như một hồi quy vấn đề. Khi chọn các siêu tham số tốt nhất cho công việc đào tạo tiếp theo, nó sẽ xem xét mọi thứ mà nó biết về vấn đề cho đến nay và cho phép thuật toán khai thác các kết quả được biết đến tốt nhất.

Trong bài đăng này, chúng tôi sử dụng chiến lược tìm kiếm Bayes mặc định để trình bày các bước liên quan đến việc chạy điều chỉnh mô hình tự động với JumpStart bằng cách sử dụng ánh sángGBM mô hình.

JumpStart hiện hỗ trợ 10 máy tính xách tay mẫu có tính năng điều chỉnh mô hình tự động. 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ụ Người mẫu được đào tạo trước Hỗ trợ 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 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
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ổng quan về giải pháp

Quy trình công việc kỹ thuật này cung cấp tổng quan về các tính năng khác nhau của Amazon Sagemaker và các bước cần thiết để tự động điều chỉnh mô hình JumpStart.

Chạy điều chỉnh mô hình tự động với Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Trong các phần sau, chúng tôi cung cấp hướng dẫn từng bước về cách chạy điều chỉnh mô hình tự động với JumpStart bằng thuật toán LightGBM. Chúng tôi cung cấp một máy tính xách tay cho hướng dẫn này.

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

  1. Truy xuất vùng chứa hình ảnh và mô hình được đào tạo trước JumpStart.
  2. Đặt siêu tham số tĩnh.
  3. Xác định phạm vi siêu tham số có thể điều chỉnh.
  4. Khởi tạo điều chỉnh mô hình tự động.
  5. Chạy công việc điều chỉnh.
  6. Triển khai mô hình tốt nhất tới một điểm cuối.

Truy xuất vùng chứa hình ảnh và mô hình được đào tạo trước JumpStart

Trong phần này, chúng tôi chọn mô hình phân loại LightGBM để tinh chỉnh. Chúng tôi sử dụng kiểu phiên bản ml.m5.xlarge mà trên đó mô hình được chạy. Sau đó, chúng tôi truy xuất vùng chứa Docker đào tạo, nguồn thuật toán đào tạo và mô hình được đào tạo trước. Xem đoạn mã sau:

training_instance_type = "ml.m5.xlarge" # Retrieve the docker image
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
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
)

Đặt siêu tham số tĩnh

Bây giờ chúng tôi truy xuất các siêu tham số mặc định cho mô hình LightGBM này, như được cấu hình sẵn bởi JumpStart. Chúng tôi cũng ghi đè num_boost_round siêu tham số với một giá trị tùy chỉnh.

# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(
    model_id=train_model_id, model_version=train_model_version
)
# [Optional] Override default hyperparameters with custom values

Xác định phạm vi siêu tham số có thể điều chỉnh

Tiếp theo, chúng tôi xác định các phạm vi siêu tham số là tối ưu hóa bằng cách điều chỉnh mô hình tự động. Chúng tôi xác định tên siêu tham số như mong đợi của mô hình và sau đó là phạm vi giá trị được thử cho siêu tham số này. Điều chỉnh mô hình tự động vẽ các mẫu (bằng max_jobs tham số) từ không gian của siêu tham số, sử dụng kỹ thuật gọi là tìm kiếm Bayes. Đối với mỗi mẫu siêu tham số được vẽ, bộ chỉnh sẽ tạo một công việc đào tạo để đánh giá mô hình với cấu hình đó. Xem đoạn mã sau:

hyperparameter_ranges = {
    "learning_rate": ContinuousParameter(1e-4, 1, scaling_type="Logarithmic"),
    "num_boost_round": IntegerParameter(2, 30),
    "early_stopping_rounds": IntegerParameter(2, 30),
    "num_leaves": IntegerParameter(10, 50),
    "feature_fraction": ContinuousParameter(0, 1),
    "bagging_fraction": ContinuousParameter(0, 1),
    "bagging_freq": IntegerParameter(1, 10),
    "max_depth": IntegerParameter(5, 30),
    "min_data_in_leaf": IntegerParameter(5, 50),
}

Khởi tạo điều chỉnh mô hình tự động

Chúng tôi bắt đầu bằng cách tạo Người định giá đối tượng với tất cả các nội dung cần thiết xác định công việc đào tạo, chẳng hạn như mô hình đào tạo trước, hình ảnh đào tạo và kịch bản đào tạo. Sau đó, chúng tôi xác định một Siêu tham sốTuner đối tượng tương tác với các API điều chỉnh siêu tham số của SageMaker.

Sản phẩm HyperparameterTuner chấp nhận dưới dạng các tham số của đối tượng Công cụ ước tính, chỉ số mục tiêu mà dựa trên đó bộ siêu tham số tốt nhất được quyết định, tổng số công việc đào tạo (max_jobs) để bắt đầu cho công việc điều chỉnh siêu tham số và các công việc đào tạo song song tối đa để chạy (max_parallel_jobs). Các công việc đào tạo được chạy với thuật toán LightGBM và các giá trị siêu tham số có giá trị tối thiểu mlogloss số liệu được chọn. Để biết thêm thông tin về cách định cấu hình điều chỉnh mô hình tự động, hãy xem Các phương pháp hay nhất để điều chỉnh siêu tham số.

# Create SageMaker Estimator instance
tabular_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,
) tuner = HyperparameterTuner(
    estimator=tabular_estimator,
    objective_metric_name="multi_logloss",
    hyperparameter_ranges=hyperparameter_ranges,
    metric_definitions=[{"Name": "multi_logloss", "Regex": "multi_logloss: ([0-9\.]+)"}],
    strategy="Bayesian",
    max_jobs=10,
    max_parallel_jobs=2,
    objective_type="Minimize",
    base_tuning_job_name=training_job_name,
)

Trong mã trước, chúng tôi yêu cầu bộ điều chỉnh chạy nhiều nhất 10 thử nghiệm (max_jobs) và chỉ hai thử nghiệm đồng thời tại một thời điểm (max_parallel_jobs). Cả hai thông số này đều giúp bạn kiểm soát được chi phí và thời gian đào tạo.

Chạy công việc điều chỉnh

Để khởi chạy công việc điều chỉnh SageMaker, chúng tôi gọi phương thức phù hợp của đối tượng bộ điều chỉnh siêu tham số và chuyển Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) đường dẫn của dữ liệu đào tạo:

tuner.fit({"training": training_dataset_s3_path}, logs=True)

Trong khi điều chỉnh mô hình tự động tìm kiếm các siêu tham số tốt nhất, bạn có thể theo dõi tiến trình của chúng trên bảng điều khiển SageMaker hoặc trên amazoncloudwatch. Khi quá trình đào tạo hoàn tất, các cấu phần tinh chỉnh của mô hình tốt nhất sẽ được tải lên vị trí đầu ra của Amazon S3 được chỉ định trong cấu hình đào tạo.

Triển khai mô hình tốt nhất cho một điểm cuối

Khi công việc điều chỉnh hoàn tất, mô hình tốt nhất đã được chọn và lưu trữ trong Amazon S3. Bây giờ chúng ta có thể triển khai mô hình đó bằng cách gọi phương thức triển khai của HyperparameterTuner đối tượng và truyền các tham số cần thiết, chẳng hạn như số lượng phiên bản được sử dụng cho điểm cuối đã tạo, loại của chúng, hình ảnh sẽ được triển khai và tập lệnh để chạy:

tuner.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,
    enable_network_isolation=True
)

Bây giờ chúng ta có thể kiểm tra điểm cuối đã tạo bằng cách đưa ra các yêu cầu suy luận. Bạn có thể làm theo phần còn lại của quy trình trong phần đi kèm máy tính xách tay.

Kết luận

Với việc điều chỉnh mô hình tự động trong SageMaker, bạn có thể tìm thấy phiên bản tốt nhất của mô hình của mình bằng cách chạy các công việc đào tạo trên tập dữ liệu được cung cấp với một trong các thuật toán được hỗ trợ. Điều chỉnh mô hình tự động cho phép bạn giảm thời gian điều chỉnh một mô hình bằng cách tự động tìm kiếm cấu hình siêu tham số tốt nhất trong phạm vi siêu tham số mà bạn chỉ định.

Trong bài đăng này, chúng tôi đã chỉ ra giá trị của việc chạy điều chỉnh mô hình tự động trên mô hình được đào tạo trước JumpStart bằng cách sử dụng các API SageMaker. Chúng tôi đã sử dụng thuật toán LightGBM và xác định tối đa 10 công việc đào tạo. Chúng tôi cũng cung cấp các liên kết đến sổ ghi chép ví dụ giới thiệu các khuôn khổ ML hỗ trợ tối ưu hóa mô hình JumpStart.

Để biết thêm chi tiết về cách tối ưu hóa mô hình JumpStart với điều chỉnh mô hình tự động, hãy tham khảo ví dụ của chúng tôi máy tính xách tay.


Lưu ý

Chạy điều chỉnh mô hình tự động với Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Doug Mbaya là một kiến ​​trúc sư Giải pháp Đối tác Cấp cao tập trung vào dữ liệu và phân tích. Doug hợp tác chặt chẽ với các đối tác AWS, giúp họ tích hợp dữ liệu và giải pháp phân tích trên đám mây.

Chạy điều chỉnh mô hình tự động với Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Kruthi Jayasimha Rao là Kiến trúc sư Giải pháp Đối tác trong nhóm Scale-PSA. Kruthi tiến hành xác thực kỹ thuật cho các Đối tác cho phép họ tiến bộ trong Đường dẫn đối tác.

Chạy điều chỉnh mô hình tự động với Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Giannis Mitropoulos là Kỹ sư phát triển phần mềm cho SageMaker Điều chỉnh mô hình tự động.

Chạy điều chỉnh mô hình tự động với Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Tiến sĩ Ashish Khetan là một nhà khoa học ứng dụng cao cấp với Khởi động Amazon SageMaker và Cá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.

Dấu thời gian:

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