ในวันนี้ อเมซอน SageMaker ประกาศการสนับสนุนทางเลือกอินสแตนซ์การฝึกอบรม SageMaker สำหรับ การปรับโมเดลอัตโนมัติของ Amazon SageMaker (AMT) ที่อนุญาตให้ผู้ใช้ระบุการกำหนดค่าทรัพยากรการประมวลผลทางเลือก
การปรับโมเดลอัตโนมัติของ SageMaker จะค้นหาเวอร์ชันที่ดีที่สุดของโมเดลโดยเรียกใช้งานการฝึกอบรมจำนวนมากบนชุดข้อมูลของคุณโดยใช้ ช่วง ของไฮเปอร์พารามิเตอร์ที่คุณระบุสำหรับอัลกอริทึมของคุณ จากนั้นจะเลือกค่าไฮเปอร์พารามิเตอร์ที่ส่งผลให้โมเดลทำงานได้ดีที่สุดตามที่วัดโดยa เมตริก ที่คุณเลือก
ก่อนหน้านี้ ผู้ใช้มีตัวเลือกในการระบุการกำหนดค่าอินสแตนซ์เดียวเท่านั้น ซึ่งอาจนำไปสู่ปัญหาเมื่อไม่มีประเภทอินสแตนซ์ที่ระบุเนื่องจากมีการใช้งานสูง ในอดีต งานฝึกอบรมของคุณจะล้มเหลวด้วย InsufficientCapacityError (ICE) AMT ใช้การลองใหม่อย่างชาญฉลาดเพื่อหลีกเลี่ยงความล้มเหลวเหล่านี้ในหลาย ๆ กรณี แต่ก็ยังไม่มีอำนาจเมื่อเผชิญกับความจุต่ำที่คงอยู่
คุณลักษณะใหม่นี้หมายความว่าคุณสามารถระบุรายการของการกำหนดค่าอินสแตนซ์ตามลำดับการตั้งค่า เพื่อให้งาน AMT ของคุณย้อนกลับไปยังอินสแตนซ์ถัดไปในรายการในกรณีที่มีความจุต่ำโดยอัตโนมัติ
ในส่วนต่อไปนี้ เราจะดำเนินการตามขั้นตอนระดับสูงเหล่านี้เพื่อเอาชนะ ICE:
- กำหนดการกำหนดค่างานปรับแต่ง HyperParameter
- กำหนดพารามิเตอร์งานการฝึกอบรม
- สร้างงานปรับแต่งไฮเปอร์พารามิเตอร์
- อธิบายงานอบรม
กำหนดการกำหนดค่างานปรับแต่ง 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)
อธิบายงานฝึกอบรม
ฟังก์ชันต่อไปนี้แสดงรายการประเภทอินสแตนซ์ทั้งหมดที่ใช้ระหว่างการทดสอบ และสามารถใช้เพื่อตรวจสอบว่าอินสแตนซ์การฝึกอบรม SageMaker ได้ย้อนกลับไปยังอินสแตนซ์ถัดไปในรายการโดยอัตโนมัติระหว่างการจัดสรรทรัพยากรหรือไม่
สรุป
ในโพสต์นี้ เราสาธิตวิธีที่คุณสามารถกำหนดกลุ่มของอินสแตนซ์ที่การทดสอบ AMT ของคุณสามารถถอยกลับได้ในกรณีของ InsufficientCapacityError
. เราเห็นวิธีกำหนดการกำหนดค่างานปรับแต่งไฮเปอร์พารามิเตอร์ ตลอดจนระบุจำนวนงานการฝึกอบรมสูงสุดและงานคู่ขนานสูงสุด ในที่สุด เราก็ได้เห็นวิธีเอาชนะ InsufficientCapacityError
โดยใช้ HyperParameterTuningResourceConfig
พารามิเตอร์ซึ่งสามารถระบุได้ภายใต้คำจำกัดความของงานฝึกอบรม
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ AMT โปรดไปที่ การปรับโมเดลอัตโนมัติของ Amazon SageMaker.
เกี่ยวกับผู้แต่ง
ดั๊ก เอ็มบาย่า เป็นสถาปนิกโซลูชันคู่ค้าอาวุโสที่เน้นข้อมูลและการวิเคราะห์ Doug ทำงานอย่างใกล้ชิดกับคู่ค้าของ AWS ช่วยผสานรวมข้อมูลและโซลูชันการวิเคราะห์ในระบบคลาวด์
กฤติ ชัยสีมา ราว เป็น Partner Solutions Architect ในทีม Scale-PSA Kruthi ดำเนินการตรวจสอบทางเทคนิคสำหรับพันธมิตรทำให้พวกเขาก้าวหน้าในเส้นทางพันธมิตร
เบอร์นาร์ด จอลแลนส์ เป็นวิศวกรพัฒนาซอฟต์แวร์สำหรับการปรับโมเดลอัตโนมัติของ Amazon SageMaker
- AI
- ไอ อาร์ต
- เครื่องกำเนิดไออาร์ท
- หุ่นยนต์ไอ
- อเมซอน แมชชีนเลิร์นนิง
- อเมซอน SageMaker
- ปัญญาประดิษฐ์
- ใบรับรองปัญญาประดิษฐ์
- ปัญญาประดิษฐ์ในการธนาคาร
- หุ่นยนต์ปัญญาประดิษฐ์
- หุ่นยนต์ปัญญาประดิษฐ์
- ซอฟต์แวร์ปัญญาประดิษฐ์
- AWS Machine Learning AWS
- blockchain
- การประชุม blockchain ai
- เหรียญอัจฉริยะ
- ปัญญาประดิษฐ์สนทนา
- การประชุม crypto ai
- ดัล-อี
- การเรียนรู้ลึก ๆ
- google ai
- เรียนรู้เครื่อง
- เพลโต
- เพลโตไอ
- เพลโตดาต้าอินเทลลิเจนซ์
- เกมเพลโต
- เพลโตดาต้า
- เพลโตเกม
- ขนาดไอ
- วากยสัมพันธ์
- ลมทะเล