Điều chỉnh mô hình tự động của Amazon SageMaker hiện hỗ trợ Dự phòng phiên bản đào tạo SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Điều chỉnh mô hình tự động của Amazon SageMaker hiện hỗ trợ Dự phòng phiên bản đào tạo SageMaker

Hôm nay Amazon SageMaker đã công bố hỗ trợ dự phòng phiên bản đào tạo SageMaker cho Điều chỉnh mô hình tự động Amazon SageMaker (AMT) cho phép người dùng chỉ định các cấu hình tài nguyên điện toán thay thế.

Điều chỉnh mô hình tự động của SageMaker tìm 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 các dãy siêu tham số mà bạn chỉ định cho thuật toán của mì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, được đo bằng một số liệu mà bạn chọn.

Trước đây, người dùng chỉ có tùy chọn chỉ định một cấu hình phiên bản duy nhất. Điều này có thể dẫn đến sự cố khi loại phiên bản được chỉ định không có sẵn do mức độ sử dụng cao. Trước đây, công việc đào tạo của bạn thường thất bại với Lỗi Không đủ Năng lực (ICE). AMT đã sử dụng các lần thử lại thông minh để tránh những lỗi này trong nhiều trường hợp, nhưng nó vẫn bất lực trước tình trạng công suất thấp kéo dài.

Tính năng mới này có nghĩa là bạn có thể chỉ định danh sách cấu hình phiên bản theo thứ tự ưu tiên, sao cho công việc AMT của bạn sẽ tự động chuyển sang phiên bản tiếp theo trong danh sách trong trường hợp dung lượng thấp.

Trong các phần sau, chúng tôi sẽ hướng dẫn các bước cấp cao này để vượt qua ICE:

  1. Xác định cấu hình công việc điều chỉnh siêu tham số
  2. Xác định các thông số công việc đào tạo
  3. Tạo công việc điều chỉnh siêu tham số
  4. Mô tả công việc đào tạo

Xác định cấu hình công việc điều chỉnh siêu tham số

Sản phẩm HyperParameterTuningJobConfig đối tượng mô tả công việc điều chỉnh, bao gồm chiến lược tìm kiếm, thước đo khách quan được sử dụng để đánh giá công việc đào tạo, phạm vi tham số cần tìm kiếm và giới hạn tài nguyên cho công việc điều chỉnh. Khía cạnh này không thay đổi với bản phát hành tính năng ngày hôm nay. Tuy nhiên, chúng tôi sẽ xem xét nó để đưa ra một ví dụ hoàn chỉnh.

Sản phẩm ResourceLimits đối tượng chỉ định số lượng công việc đào tạo tối đa và công việc đào tạo song song cho công việc điều chỉnh này. Trong ví dụ này, chúng tôi đang thực hiện một tìm kiếm ngẫu nhiên chiến lược và chỉ định tối đa 10 công việc (MaxNumberOfTrainingJobs) và 5 công việc đồng thời (MaxParallelTrainingJobs) tại một thời điểm.

Sản phẩm ParameterRanges đối tượng chỉ định phạm vi siêu tham số mà công việc điều chỉnh này tìm kiếm. Chúng tôi chỉ định tên cũng như giá trị tối thiểu và tối đa của siêu tham số để tìm kiếm. Trong ví dụ này, chúng tôi xác định các giá trị tối thiểu và tối đa cho phạm vi tham số Liên tục và Số nguyên cũng như tên của siêu tham số (“eta”, “max_deep”).

AmtTuningJobConfig={
            "Strategy": "Random",
            "ResourceLimits": {
              "MaxNumberOfTrainingJobs": 10,
              "MaxParallelTrainingJobs": 5
            },
            "HyperParameterTuningJobObjective": {
              "MetricName": "validation:rmse",
              "Type": "Minimize"
            },
            "ParameterRanges": {
              "CategoricalParameterRanges": [],
              "ContinuousParameterRanges": [
                {
                    "MaxValue": "1",
                    "MinValue": "0",
                    "Name": "eta"
                }
              ],
              "IntegerParameterRanges": [
                {
                  "MaxValue": "6",
                  "MinValue": "2",
                  "Name": "max_depth"
                }
              ]
            }
          }

Xác định các thông số công việc đào tạo

Trong định nghĩa công việc đào tạo, chúng tôi xác định đầu vào cần thiết để chạy công việc đào tạo bằng thuật toán mà chúng tôi chỉ định. Sau khi quá trình đào tạo hoàn tất, SageMaker lưu các tạo phẩm mô hình kết quả vào một Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) vị trí mà bạn chỉ định.

Trước đây, chúng tôi đã chỉ định loại phiên bản, số lượng và kích thước ổ đĩa trong phần ResourceConfig tham số. Khi phiên bản trong tham số này không khả dụng, Lỗi Không đủ Dung lượng (ICE) đã được đưa ra.

Để tránh điều này, hiện nay chúng ta có HyperParameterTuningResourceConfig tham số dưới TrainingJobDefinition, trong đó chúng tôi chỉ định danh sách các phiên bản để dự phòng. Định dạng của các trường hợp này giống như trong ResourceConfig. Công việc sẽ duyệt qua danh sách từ trên xuống dưới để tìm cấu hình phiên bản có sẵn. Nếu một phiên bản không có sẵn thì thay vì Lỗi Không đủ Dung lượng (ICE), phiên bản tiếp theo trong danh sách sẽ được chọn, từ đó khắc phục được ICE.

TrainingJobDefinition={
            "HyperParameterTuningResourceConfig": {
      		"InstanceConfigs": [
            		{
                		"InstanceType": "ml.m4.xlarge",
                		"InstanceCount": 1,
                		"VolumeSizeInGB": 5
            		},
            		{
                		"InstanceType": "ml.m5.4xlarge",
                		"InstanceCount": 1,
                		"VolumeSizeInGB": 5
            		}
        		 ]
    		  },
            "AlgorithmSpecification": {
              "TrainingImage": "433757028032.dkr.ecr.us-west-2.amazonaws.com/xgboost:latest",
              "TrainingInputMode": "File"
            },
            "InputDataConfig": [
              {
                "ChannelName": "train",
                "CompressionType": "None",
                "ContentType": "json",
                "DataSource": {
                  "S3DataSource": {
                    "S3DataDistributionType": "FullyReplicated",
                    "S3DataType": "S3Prefix",
                    "S3Uri": "s3://<bucket>/test/"
                  }
                },
                "RecordWrapperType": "None"
              }
            ],
            "OutputDataConfig": {
              "S3OutputPath": "s3://<bucket>/output/"
            },
            "RoleArn": "arn:aws:iam::340308762637:role/service-role/AmazonSageMaker-ExecutionRole-20201117T142856",
            "StoppingCondition": {
              "MaxRuntimeInSeconds": 259200
            },
            "StaticHyperParameters": {
              "training_script_loc": "q2bn-sagemaker-test_6"
            },
          }

Chạy công việc điều chỉnh siêu tham số

Trong bước này, chúng tôi sẽ tạo và chạy công việc điều chỉnh siêu tham số với cấu hình tài nguyên điều chỉnh siêu tham số được xác định ở trên.

Chúng tôi khởi tạo ứng dụng khách SageMaker và tạo công việc bằng cách chỉ định cấu hình điều chỉnh, định nghĩa công việc đào tạo và tên công việc.

import boto3
sm = boto3.client('sagemaker')     
                    
sm.create_hyper_parameter_tuning_job(
    HyperParameterTuningJobName="my-job-name",
    HyperParameterTuningJobConfig=AmtTuningJobConfig,
    TrainingJobDefinition=TrainingJobDefinition) 

Chạy một công việc AMT với sự hỗ trợ của dự phòng phiên bản đào tạo của SageMaker cho phép người dùng tự khắc phục tình trạng thiếu năng lực, từ đó giảm nguy cơ thất bại trong công việc.

Mô tả công việc đào tạo

Hàm sau liệt kê tất cả các loại phiên bản được sử dụng trong quá trình thử nghiệm và có thể được sử dụng để xác minh xem phiên bản đào tạo SageMaker có tự động quay trở lại phiên bản tiếp theo trong danh sách trong quá trình phân bổ tài nguyên hay không.

def list_instances(name):
    job_list = []
    instances = []
    def _get_training_jobs(name, next=None):
        if next:
            list = sm.list_training_jobs_for_hyper_parameter_tuning_job(
            HyperParameterTuningJobName=name, NextToken=next)
        else:
            list = sm.list_training_jobs_for_hyper_parameter_tuning_job(
            HyperParameterTuningJobName=name)
        for jobs in list['TrainingJobSummaries']:
            job_list.append(jobs['TrainingJobName'])
        next = list.get('NextToken', None)
        if next:
            _get_training_jobs(name, next=next)
            pass
        else:
            pass
    _get_training_jobs(name)


    for job_name in job_list:
        ec2 = sm.describe_training_job(
        TrainingJobName=job_name
        )
        instances.append(ec2['ResourceConfig'])
    return instances

list_instances("my-job-name")  

Đầu ra của hàm trên hiển thị tất cả các phiên bản mà công việc AMT đang sử dụng để chạy thử nghiệm.

Kết luận

Trong bài đăng này, chúng tôi đã trình bày cách bây giờ bạn có thể xác định nhóm trường hợp mà thử nghiệm AMT của bạn có thể dự phòng trong trường hợp InsufficientCapacityError. Chúng ta đã biết cách xác định cấu hình công việc điều chỉnh siêu tham số, cũng như chỉ định số lượng công việc đào tạo tối đa và công việc song song tối đa. Cuối cùng, chúng tôi đã biết cách khắc phục InsufficientCapacityError bằng cách sử dụng HyperParameterTuningResourceConfig tham số, có thể được chỉ định theo định nghĩa công việc đào tạo.

Để tìm hiểu thêm về AMT, hãy truy cập Điều chỉnh mô hình tự động của Amazon SageMaker.


Giới thiệu về tác giả

Điều chỉnh mô hình tự động của Amazon SageMaker hiện hỗ trợ Dự phòng phiên bản đào tạo SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Doug Mbaya là 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 giải pháp dữ liệu và phân tích trên đám mây.

Điều chỉnh mô hình tự động của Amazon SageMaker hiện hỗ trợ Dự phòng phiên bản đào tạo SageMaker 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.

Điều chỉnh mô hình tự động của Amazon SageMaker hiện hỗ trợ Dự phòng phiên bản đào tạo SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Bernard Jollans là Kỹ sư phát triển phần mềm phụ trách Điều chỉnh mô hình tự động của Amazon SageMaker.

Dấu thời gian:

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