การปรับแต่งโมเดลอัตโนมัติของ Amazon SageMaker รองรับ SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence แล้ว ค้นหาแนวตั้ง AI.

การปรับโมเดลอัตโนมัติของ Amazon SageMaker รองรับการสำรองอินสแตนซ์การฝึกอบรม SageMaker แล้ว

ในวันนี้ อเมซอน SageMaker ประกาศการสนับสนุนทางเลือกอินสแตนซ์การฝึกอบรม SageMaker สำหรับ การปรับโมเดลอัตโนมัติของ Amazon SageMaker (AMT) ที่อนุญาตให้ผู้ใช้ระบุการกำหนดค่าทรัพยากรการประมวลผลทางเลือก

การปรับโมเดลอัตโนมัติของ SageMaker จะค้นหาเวอร์ชันที่ดีที่สุดของโมเดลโดยเรียกใช้งานการฝึกอบรมจำนวนมากบนชุดข้อมูลของคุณโดยใช้ ช่วง ของไฮเปอร์พารามิเตอร์ที่คุณระบุสำหรับอัลกอริทึมของคุณ จากนั้นจะเลือกค่าไฮเปอร์พารามิเตอร์ที่ส่งผลให้โมเดลทำงานได้ดีที่สุดตามที่วัดโดยa เมตริก ที่คุณเลือก

ก่อนหน้านี้ ผู้ใช้มีตัวเลือกในการระบุการกำหนดค่าอินสแตนซ์เดียวเท่านั้น ซึ่งอาจนำไปสู่ปัญหาเมื่อไม่มีประเภทอินสแตนซ์ที่ระบุเนื่องจากมีการใช้งานสูง ในอดีต งานฝึกอบรมของคุณจะล้มเหลวด้วย InsufficientCapacityError (ICE) AMT ใช้การลองใหม่อย่างชาญฉลาดเพื่อหลีกเลี่ยงความล้มเหลวเหล่านี้ในหลาย ๆ กรณี แต่ก็ยังไม่มีอำนาจเมื่อเผชิญกับความจุต่ำที่คงอยู่

คุณลักษณะใหม่นี้หมายความว่าคุณสามารถระบุรายการของการกำหนดค่าอินสแตนซ์ตามลำดับการตั้งค่า เพื่อให้งาน AMT ของคุณย้อนกลับไปยังอินสแตนซ์ถัดไปในรายการในกรณีที่มีความจุต่ำโดยอัตโนมัติ

ในส่วนต่อไปนี้ เราจะดำเนินการตามขั้นตอนระดับสูงเหล่านี้เพื่อเอาชนะ ICE:

  1. กำหนดการกำหนดค่างานปรับแต่ง HyperParameter
  2. กำหนดพารามิเตอร์งานการฝึกอบรม
  3. สร้างงานปรับแต่งไฮเปอร์พารามิเตอร์
  4. อธิบายงานอบรม

กำหนดการกำหนดค่างานปรับแต่ง HyperParameter

พื้นที่ ไฮเปอร์พารามิเตอร์การปรับแต่งJobConfig วัตถุอธิบายงานปรับแต่ง รวมถึงกลยุทธ์การค้นหา ตัวชี้วัดวัตถุประสงค์ที่ใช้ในการประเมินงานการฝึกอบรม ช่วงของพารามิเตอร์ที่จะค้นหา และขีดจำกัดทรัพยากรสำหรับงานปรับแต่ง ด้านนี้ไม่ได้เปลี่ยนแปลงไปพร้อมกับการเปิดตัวคุณลักษณะของวันนี้ อย่างไรก็ตาม เราจะยกตัวอย่างให้สมบูรณ์

พื้นที่ ResourceLimits object ระบุจำนวนสูงสุดของงานการฝึกอบรมและงานการฝึกอบรมแบบคู่ขนานสำหรับงานปรับแต่งนี้ ในตัวอย่างนี้ เรากำลังทำ a สุ่มค้นหา กลยุทธ์และระบุงานได้มากสุด 10 ตำแหน่ง (MaxNumberOfTrainingJobs) และ 5 งานพร้อมกัน (MaxParallelTrainingJobs) ขณะนั้น.

พื้นที่ ParameterRanges ออบเจ็กต์ระบุช่วงของไฮเปอร์พารามิเตอร์ที่งานปรับแต่งนี้ค้นหา เราระบุชื่อ ตลอดจนค่าต่ำสุดและสูงสุดของไฮเปอร์พารามิเตอร์เพื่อค้นหา ในตัวอย่างนี้ เรากำหนดค่าต่ำสุดและสูงสุดสำหรับช่วงพารามิเตอร์แบบต่อเนื่องและจำนวนเต็มและชื่อของไฮเปอร์พารามิเตอร์ ("eta", "max_depth")

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"
                }
              ]
            }
          }

กำหนดพารามิเตอร์งานการฝึกอบรม

ในข้อกำหนดของงานฝึกอบรม เรากำหนดอินพุตที่จำเป็นในการรันงานการฝึกอบรมโดยใช้อัลกอริทึมที่เราระบุ หลังจากการฝึกอบรมเสร็จสิ้น SageMaker จะบันทึกสิ่งประดิษฐ์ของแบบจำลองที่เป็นผลลัพธ์ไปที่ บริการจัดเก็บข้อมูลอย่างง่ายของ Amazon (Amazon S3) สถานที่ที่คุณระบุ

ก่อนหน้านี้ เราระบุประเภทอินสแตนซ์ จำนวน และขนาดไดรฟ์ข้อมูลภายใต้ ResourceConfig พารามิเตอร์. เมื่ออินสแตนซ์ภายใต้พารามิเตอร์นี้ไม่พร้อมใช้งาน จะเกิดข้อผิดพลาดความจุไม่เพียงพอ (ICE)

เพื่อหลีกเลี่ยงปัญหานี้ ตอนนี้เรามี HyperParameterTuningResourceConfig พารามิเตอร์ภายใต้ TrainingJobDefinitionที่เราระบุรายการของอินสแตนซ์ที่จะถอยกลับ รูปแบบของอินสแตนซ์เหล่านี้เหมือนกับใน ResourceConfig. งานจะสำรวจรายการจากบนลงล่างเพื่อค้นหาการกำหนดค่าอินสแตนซ์ที่พร้อมใช้งาน หากอินสแตนซ์ไม่พร้อมใช้งาน แทนที่จะเป็นข้อผิดพลาดความจุไม่เพียงพอ (ICE) อินสแตนซ์ถัดไปในรายการจะถูกเลือก ซึ่งจะเป็นการเอาชนะ 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"
            },
          }

เรียกใช้งานปรับแต่งไฮเปอร์พารามิเตอร์

ในขั้นตอนนี้ เรากำลังสร้างและรันงานการปรับแต่งไฮเปอร์พารามิเตอร์ด้วยการกำหนดค่าทรัพยากรการปรับแต่งไฮเปอร์พารามิเตอร์ที่กำหนดไว้ข้างต้น

เราเริ่มต้นไคลเอ็นต์ SageMaker และสร้างงานโดยระบุการกำหนดค่าการปรับแต่ง คำนิยามงานการฝึกอบรม และชื่องาน

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

การเรียกใช้งาน AMT ด้วยการสนับสนุนอินสแตนซ์การฝึกอบรม SageMaker ทางเลือกสำรองช่วยให้ผู้ใช้สามารถเอาชนะความสามารถที่ไม่เพียงพอได้ด้วยตนเอง ซึ่งจะช่วยลดโอกาสที่งานจะล้มเหลว

อธิบายงานฝึกอบรม

ฟังก์ชันต่อไปนี้แสดงรายการประเภทอินสแตนซ์ทั้งหมดที่ใช้ระหว่างการทดสอบ และสามารถใช้เพื่อตรวจสอบว่าอินสแตนซ์การฝึกอบรม SageMaker ได้ย้อนกลับไปยังอินสแตนซ์ถัดไปในรายการโดยอัตโนมัติระหว่างการจัดสรรทรัพยากรหรือไม่

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

ผลลัพธ์ของฟังก์ชันด้านบนแสดงอินสแตนซ์ทั้งหมดที่งาน AMT ใช้เพื่อเรียกใช้การทดสอบ

สรุป

ในโพสต์นี้ เราสาธิตวิธีที่คุณสามารถกำหนดกลุ่มของอินสแตนซ์ที่การทดสอบ AMT ของคุณสามารถถอยกลับได้ในกรณีของ InsufficientCapacityError. เราเห็นวิธีกำหนดการกำหนดค่างานปรับแต่งไฮเปอร์พารามิเตอร์ ตลอดจนระบุจำนวนงานการฝึกอบรมสูงสุดและงานคู่ขนานสูงสุด ในที่สุด เราก็ได้เห็นวิธีเอาชนะ InsufficientCapacityError โดยใช้ HyperParameterTuningResourceConfig พารามิเตอร์ซึ่งสามารถระบุได้ภายใต้คำจำกัดความของงานฝึกอบรม

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ AMT โปรดไปที่ การปรับโมเดลอัตโนมัติของ Amazon SageMaker.


เกี่ยวกับผู้แต่ง

การปรับแต่งโมเดลอัตโนมัติของ Amazon SageMaker รองรับ SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence แล้ว ค้นหาแนวตั้ง AI.ดั๊ก เอ็มบาย่า เป็นสถาปนิกโซลูชันคู่ค้าอาวุโสที่เน้นข้อมูลและการวิเคราะห์ Doug ทำงานอย่างใกล้ชิดกับคู่ค้าของ AWS ช่วยผสานรวมข้อมูลและโซลูชันการวิเคราะห์ในระบบคลาวด์

การปรับแต่งโมเดลอัตโนมัติของ Amazon SageMaker รองรับ SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence แล้ว ค้นหาแนวตั้ง AI.กฤติ ชัยสีมา ราว เป็น Partner Solutions Architect ในทีม Scale-PSA Kruthi ดำเนินการตรวจสอบทางเทคนิคสำหรับพันธมิตรทำให้พวกเขาก้าวหน้าในเส้นทางพันธมิตร

การปรับแต่งโมเดลอัตโนมัติของ Amazon SageMaker รองรับ SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence แล้ว ค้นหาแนวตั้ง AI.เบอร์นาร์ด จอลแลนส์ เป็นวิศวกรพัฒนาซอฟต์แวร์สำหรับการปรับโมเดลอัตโนมัติของ Amazon SageMaker

ประทับเวลา:

เพิ่มเติมจาก AWS Machine Learning AWS