ในเดือนธันวาคม 2020 AWS ประกาศ ความพร้อมทั่วไปของ Amazon SageMaker JumpStart, ความสามารถของ อเมซอน SageMaker ที่ช่วยให้คุณเริ่มต้นใช้งานแมชชีนเลิร์นนิง (ML) ได้อย่างรวดเร็วและง่ายดาย ในเดือนมีนาคม 2022 เราก็เช่นกัน ประกาศ การรองรับ API ใน JumpStart JumpStart ให้การปรับแต่งแบบละเอียดในคลิกเดียวและการปรับใช้โมเดลที่ได้รับการฝึกอบรมล่วงหน้าที่หลากหลายสำหรับงาน ML ยอดนิยม ตลอดจนการเลือกโซลูชันแบบ end-to-end ที่แก้ปัญหาทั่วไปทางธุรกิจ คุณลักษณะเหล่านี้ช่วยขจัดภาระหนักออกจากแต่ละขั้นตอนของกระบวนการ ML ทำให้ง่ายต่อการพัฒนาโมเดลคุณภาพสูงและลดเวลาในการปรับใช้
ในโพสต์นี้ เราสาธิตวิธีเรียกใช้การปรับแต่งโมเดลอัตโนมัติด้วย JumpStart
การปรับโมเดลอัตโนมัติของ SageMaker
ตามเนื้อผ้า วิศวกร ML ใช้วิธีการทดลองใช้และข้อผิดพลาดเพื่อค้นหาชุดไฮเปอร์พารามิเตอร์ที่เหมาะสม การทดลองใช้และข้อผิดพลาดเกี่ยวข้องกับการเรียกใช้งานหลายงานตามลำดับหรือพร้อมกันในขณะที่จัดเตรียมทรัพยากรที่จำเป็นในการดำเนินการทดสอบ
กับ การปรับโมเดลอัตโนมัติของ SageMakerวิศวกร ML และนักวิทยาศาสตร์ด้านข้อมูลสามารถลดงานที่ต้องใช้เวลามากในการเพิ่มประสิทธิภาพแบบจำลองของตน และปล่อยให้ SageMaker ทำการทดลอง SageMaker ใช้ประโยชน์จากความยืดหยุ่นของแพลตฟอร์ม AWS เพื่อเรียกใช้การจำลองการฝึกอบรมหลายชุดบนชุดข้อมูลอย่างมีประสิทธิภาพและพร้อมกัน และค้นหาไฮเปอร์พารามิเตอร์ที่ดีที่สุดสำหรับโมเดล
การปรับโมเดลอัตโนมัติของ SageMaker จะค้นหาเวอร์ชันที่ดีที่สุดของโมเดลโดยเรียกใช้งานการฝึกอบรมจำนวนมากบนชุดข้อมูลของคุณโดยใช้อัลกอริทึมและ ช่วง ของไฮเปอร์พารามิเตอร์ที่คุณระบุ จากนั้นจะเลือกค่าไฮเปอร์พารามิเตอร์ที่ส่งผลให้โมเดลทำงานได้ดีที่สุด ตามที่วัดโดยa เมตริก ที่คุณเลือก
การปรับรุ่นอัตโนมัติจะใช้a เบย์เซียน (ค่าเริ่มต้น) หรือ a สุ่ม กลยุทธ์การค้นหาเพื่อค้นหาค่าที่ดีที่สุดสำหรับไฮเปอร์พารามิเตอร์ การค้นหาแบบเบย์จะถือว่าการปรับแต่งไฮเปอร์พารามิเตอร์เหมือนa ถดถอย ปัญหา. เมื่อเลือกไฮเปอร์พารามิเตอร์ที่ดีที่สุดสำหรับงานการฝึกอบรมครั้งต่อไป จะพิจารณาทุกสิ่งที่รู้เกี่ยวกับปัญหาจนถึงตอนนี้ และอนุญาตให้อัลกอริทึมใช้ประโยชน์จากผลลัพธ์ที่เป็นที่รู้จักมากที่สุด
ในโพสต์นี้ เราใช้กลยุทธ์การค้นหาแบบเบย์เริ่มต้นเพื่อสาธิตขั้นตอนที่เกี่ยวข้องกับการเรียกใช้การปรับโมเดลอัตโนมัติด้วย JumpStart โดยใช้ ไลท์จีบีเอ็ม แบบ
ปัจจุบัน JumpStart รองรับโน้ตบุ๊กตัวอย่าง 10 ตัวพร้อมการปรับโมเดลอัตโนมัติ นอกจากนี้ยังรองรับอัลกอริธึมยอดนิยมสี่ตัวสำหรับการสร้างแบบจำลองข้อมูลแบบตาราง งานและลิงก์ไปยังสมุดบันทึกตัวอย่างได้สรุปไว้ในตารางต่อไปนี้
ภาพรวมโซลูชัน
เวิร์กโฟลว์ทางเทคนิคนี้ให้ภาพรวมของคุณสมบัติต่างๆ ของ Amazon Sagemaker และขั้นตอนที่จำเป็นในการปรับแต่งโมเดล JumpStart โดยอัตโนมัติ
ในส่วนต่อไปนี้ เรามีคำแนะนำทีละขั้นตอนเกี่ยวกับวิธีการเรียกใช้การปรับโมเดลอัตโนมัติด้วย JumpStart โดยใช้อัลกอริธึม LightGBM เราจัดให้ สมุดบันทึก สำหรับคำแนะนำนี้
เราดำเนินการตามขั้นตอนระดับสูงดังต่อไปนี้:
- ดึงคอนเทนเนอร์อิมเมจและโมเดล Pre-trained ของ JumpStart
- ตั้งค่าไฮเปอร์พารามิเตอร์แบบคงที่
- กำหนดช่วงไฮเปอร์พารามิเตอร์ที่ปรับได้
- เริ่มต้นการปรับจูนโมเดลอัตโนมัติ
- เรียกใช้งานปรับแต่ง
- ปรับใช้โมเดลที่ดีที่สุดกับปลายทาง
ดึงคอนเทนเนอร์อิมเมจและโมเดล Pre-trained ของ JumpStart
ในส่วนนี้ เราเลือกแบบจำลองการจัดประเภท LightGBM สำหรับการปรับแต่งอย่างละเอียด เราใช้ประเภทอินสแตนซ์ ml.m5.xlarge ที่เรียกใช้โมเดล จากนั้นเราจะดึงคอนเทนเนอร์ Docker การฝึกอบรม แหล่งที่มาของอัลกอริธึมการฝึก และโมเดลที่ฝึกไว้ล่วงหน้า ดูรหัสต่อไปนี้:
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
)
ตั้งค่าไฮเปอร์พารามิเตอร์แบบคงที่
ตอนนี้เราเรียกข้อมูลไฮเปอร์พารามิเตอร์เริ่มต้นสำหรับโมเดล LightGBM นี้ ตามที่กำหนดไว้ล่วงหน้าโดย JumpStart นอกจากนี้เรายังแทนที่ num_boost_round
ไฮเปอร์พารามิเตอร์ที่มีค่ากำหนดเอง
# 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
กำหนดช่วงไฮเปอร์พารามิเตอร์ที่ปรับได้
ต่อไปเราจะกำหนดช่วงไฮเปอร์พารามิเตอร์เป็น ปรับให้เหมาะสมโดยการปรับรุ่นอัตโนมัติ. เรากำหนดชื่อไฮเปอร์พารามิเตอร์ตามที่คาดไว้โดยโมเดล จากนั้นจึงกำหนดช่วงของค่าสำหรับไฮเปอร์พารามิเตอร์นี้ การปรับโมเดลอัตโนมัติจะดึงตัวอย่าง (เท่ากับ max_jobs
พารามิเตอร์) จากพื้นที่ของไฮเปอร์พารามิเตอร์โดยใช้เทคนิคที่เรียกว่าการค้นหาแบบเบย์ สำหรับตัวอย่างไฮเปอร์พารามิเตอร์แต่ละตัวอย่าง จูนเนอร์จะสร้างงานการฝึกอบรมเพื่อประเมินโมเดลด้วยการกำหนดค่านั้น ดูรหัสต่อไปนี้:
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),
}
เริ่มต้นการปรับจูนโมเดลอัตโนมัติ
เราเริ่มต้นด้วยการสร้าง an ประมาณการ ออบเจ็กต์ที่มีสินทรัพย์ที่จำเป็นทั้งหมดซึ่งกำหนดงานฝึกอบรม เช่น โมเดลที่ฝึกอบรมไว้ล่วงหน้า รูปภาพการฝึกหัด และสคริปต์การฝึก จากนั้นให้นิยาม a ไฮเปอร์พารามิเตอร์จูนเนอร์ ออบเจ็กต์เพื่อโต้ตอบกับ API การปรับแต่งไฮเปอร์พารามิเตอร์ของ SageMaker
พื้นที่ HyperparameterTuner
ยอมรับเป็นพารามิเตอร์ของออบเจ็กต์ Estimator, เมตริกเป้าหมายโดยพิจารณาจากชุดของไฮเปอร์พารามิเตอร์ที่ดีที่สุด, จำนวนงานการฝึกอบรมทั้งหมด (max_jobs
) เพื่อเริ่มต้นสำหรับงานปรับแต่งไฮเปอร์พารามิเตอร์ และงานการฝึกแบบขนานสูงสุดที่จะรัน (max_parallel_jobs
). งานการฝึกอบรมรันด้วยอัลกอริธึม LightGBM และค่าไฮเปอร์พารามิเตอร์ที่มีค่าน้อยที่สุด mlogloss
เมตริกถูกเลือก สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าการปรับแต่งโมเดลอัตโนมัติ โปรดดูที่ แนวทางปฏิบัติที่ดีที่สุดสำหรับการปรับแต่งไฮเปอร์พารามิเตอร์.
# 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,
)
ในโค้ดก่อนหน้านี้ เราบอกให้จูนเนอร์ทำการทดสอบไม่เกิน 10 ครั้ง (max_jobs
) และการทดลองพร้อมกันเพียงสองครั้งในแต่ละครั้ง (max_parallel_jobs
). พารามิเตอร์ทั้งสองนี้ช่วยให้ต้นทุนและเวลาการฝึกอบรมของคุณอยู่ภายใต้การควบคุม
เรียกใช้งานปรับแต่ง
ในการเริ่มงานปรับแต่ง SageMaker เราเรียกเมธอด fit ของออบเจ็กต์จูนเนอร์ไฮเปอร์พารามิเตอร์และส่งผ่าน บริการจัดเก็บข้อมูลอย่างง่ายของ Amazon (Amazon S3) เส้นทางของข้อมูลการฝึกอบรม:
tuner.fit({"training": training_dataset_s3_path}, logs=True)
ในขณะที่การปรับโมเดลอัตโนมัติค้นหาไฮเปอร์พารามิเตอร์ที่ดีที่สุด คุณสามารถตรวจสอบความคืบหน้าได้บนคอนโซล SageMaker หรือบน อเมซอน คลาวด์วอตช์. เมื่อการฝึกอบรมเสร็จสิ้น สิ่งประดิษฐ์ที่ปรับแต่งอย่างดีของโมเดลที่ดีที่สุดจะถูกอัปโหลดไปยังตำแหน่งเอาต์พุต Amazon S3 ที่ระบุในการกำหนดค่าการฝึก
ปรับใช้โมเดลที่ดีที่สุดกับปลายทาง
เมื่องานปรับแต่งเสร็จสิ้น ระบบจะเลือกและจัดเก็บโมเดลที่ดีที่สุดไว้ใน Amazon S3 ตอนนี้เราสามารถปรับใช้โมเดลนั้นได้โดยเรียกวิธีการปรับใช้ของ HyperparameterTuner
ออบเจ็กต์และส่งพารามิเตอร์ที่จำเป็น เช่น จำนวนอินสแตนซ์ที่จะใช้สำหรับปลายทางที่สร้างขึ้น ประเภท อิมเมจที่จะปรับใช้ และสคริปต์ที่จะเรียกใช้:
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
)
ตอนนี้ เราสามารถทดสอบจุดปลายที่สร้างโดยการร้องขอการอนุมาน คุณสามารถปฏิบัติตามขั้นตอนที่เหลือได้ในเอกสารแนบ สมุดบันทึก.
สรุป
ด้วยการปรับโมเดลอัตโนมัติใน SageMaker คุณสามารถค้นหาเวอร์ชันที่ดีที่สุดของโมเดลของคุณโดยเรียกใช้งานการฝึกบนชุดข้อมูลที่มีให้ด้วยหนึ่งในอัลกอริธึมที่รองรับ การปรับโมเดลอัตโนมัติช่วยให้คุณลดเวลาในการปรับแต่งโมเดลโดยการค้นหาการกำหนดค่าไฮเปอร์พารามิเตอร์ที่ดีที่สุดโดยอัตโนมัติภายในช่วงไฮเปอร์พารามิเตอร์ที่คุณระบุ
ในโพสต์นี้ เราแสดงให้เห็นคุณค่าของการรันการปรับโมเดลอัตโนมัติบนโมเดลที่ฝึกล่วงหน้าของ JumpStart โดยใช้ SageMaker API เราใช้อัลกอริธึม LightGBM และกำหนดงานการฝึกอบรมสูงสุด 10 งาน เรายังจัดเตรียมลิงก์ไปยังตัวอย่างโน้ตบุ๊กที่แสดงเฟรมเวิร์ก ML ที่สนับสนุนการเพิ่มประสิทธิภาพโมเดล JumpStart
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการปรับโมเดล JumpStart ให้เหมาะสมด้วยการปรับแต่งโมเดลอัตโนมัติ โปรดดูตัวอย่างของเรา สมุดบันทึก.
เกี่ยวกับผู้เขียน
ดั๊ก เอ็มบาย่า เป็นสถาปนิกโซลูชันคู่ค้าอาวุโสที่มุ่งเน้นในด้านข้อมูลและการวิเคราะห์ Doug ทำงานอย่างใกล้ชิดกับคู่ค้าของ AWS ช่วยผสานรวมข้อมูลและโซลูชันการวิเคราะห์ในระบบคลาวด์
กฤติ ชัยสีมา ราว เป็น Partner Solutions Architect ในทีม Scale-PSA Kruthi ดำเนินการตรวจสอบทางเทคนิคสำหรับพันธมิตรทำให้พวกเขาก้าวหน้าในเส้นทางพันธมิตร
จานนิส มิโตรปูลอส เป็นวิศวกรพัฒนาซอฟต์แวร์สำหรับ SageMaker การปรับรุ่นอัตโนมัติ.
ดร. Ashish Khetan เป็นนักวิทยาศาสตร์ประยุกต์อาวุโสด้วย Amazon SageMaker JumpStart และ อัลกอริทึมในตัวของ Amazon SageMaker และช่วยพัฒนาอัลกอริธึมการเรียนรู้ของเครื่อง เขาเป็นนักวิจัยเชิงรุกด้านการเรียนรู้ของเครื่องและการอนุมานทางสถิติ และได้ตีพิมพ์บทความจำนวนมากในการประชุม NeurIPS, ICML, ICLR, JMLR และ ACL
- "
- 10
- 100
- 2020
- 2022
- เกี่ยวกับเรา
- ข้าม
- คล่องแคล่ว
- ความได้เปรียบ
- ขั้นตอนวิธี
- อัลกอริทึม
- ทั้งหมด
- อเมซอน
- การวิเคราะห์
- APIs
- สินทรัพย์
- อัตโนมัติ
- ความพร้อมใช้งาน
- AWS
- ที่ดีที่สุด
- built-in
- ธุรกิจ
- โทรศัพท์
- Choose
- เลือก
- การจัดหมวดหมู่
- เมฆ
- รหัส
- ร่วมกัน
- การประชุม
- องค์ประกอบ
- พิจารณา
- ปลอบใจ
- ภาชนะ
- ควบคุม
- สร้าง
- ที่สร้างขึ้น
- สร้าง
- การสร้าง
- ขณะนี้
- ประเพณี
- ข้อมูล
- ตัดสินใจ
- สาธิต
- ปรับใช้
- นำไปใช้
- การใช้งาน
- รายละเอียด
- พัฒนา
- พัฒนาการ
- ต่าง
- นักเทียบท่า
- อย่างง่ายดาย
- อย่างมีประสิทธิภาพ
- การเปิดใช้งาน
- ปลายทาง
- วิศวกร
- วิศวกร
- ประเมินค่า
- ทุกอย่าง
- ตัวอย่าง
- ที่คาดหวัง
- การทดลอง
- เอาเปรียบ
- คุณสมบัติ
- พบ
- พอดี
- โฟกัส
- ปฏิบัติตาม
- ดังต่อไปนี้
- ต่อไป
- General
- ความสูง
- การช่วยเหลือ
- จะช่วยให้
- ที่มีคุณภาพสูง
- สรุป ความน่าเชื่อถือของ Olymp Trade?
- ทำอย่างไร
- HTTPS
- ภาพ
- การดำเนินการ
- ข้อมูล
- รวบรวม
- ร่วมมือ
- IT
- การสัมภาษณ์
- งาน
- เปิดตัว
- การเรียนรู้
- facelift
- การเชื่อมโยง
- ที่ตั้ง
- เครื่อง
- เรียนรู้เครื่อง
- การทำ
- มีนาคม
- ML
- แบบ
- โมเดล
- การตรวจสอบ
- ข้อมูลเพิ่มเติม
- มากที่สุด
- หลาย
- จำนวน
- การเพิ่มประสิทธิภาพ
- เพิ่มประสิทธิภาพ
- การเพิ่มประสิทธิภาพ
- หุ้นส่วน
- พาร์ทเนอร์
- ที่ผ่านไป
- เวที
- ยอดนิยม
- ปัญหา
- ปัญหาที่เกิดขึ้น
- กระบวนการ
- ให้
- ให้
- คำถาม
- อย่างรวดเร็ว
- ลด
- ลด
- การร้องขอ
- จำเป็นต้องใช้
- แหล่งข้อมูล
- REST
- ผลสอบ
- วิ่ง
- วิ่ง
- นักวิทยาศาสตร์
- นักวิทยาศาสตร์
- ค้นหา
- เลือก
- ชุด
- การจัดแสดง
- ง่าย
- So
- ซอฟต์แวร์
- การพัฒนาซอฟต์แวร์
- ทางออก
- โซลูชัน
- แก้
- ช่องว่าง
- เริ่มต้น
- ข้อความที่เริ่ม
- ทางสถิติ
- การเก็บรักษา
- กลยุทธ์
- สนับสนุน
- ที่สนับสนุน
- รองรับ
- เป้า
- งาน
- ทีม
- วิชาการ
- ทดสอบ
- ตลอด
- เวลา
- ต้องใช้เวลามาก
- ชื่อหนังสือ
- การฝึกอบรม
- การทดลอง
- ใช้
- ความคุ้มค่า
- ความหลากหลาย
- ในขณะที่
- ภายใน
- โรงงาน