อเมซอน SageMaker ให้ชุดของ อัลกอริทึมในตัว, รุ่นก่อนการฝึกอบรมและ เทมเพลตโซลูชันที่สร้างไว้ล่วงหน้า เพื่อช่วยให้นักวิทยาศาสตร์ข้อมูลและผู้ปฏิบัติงานการเรียนรู้ของเครื่อง (ML) เริ่มต้นการฝึกอบรมและปรับใช้โมเดล ML ได้อย่างรวดเร็ว อัลกอริธึมและแบบจำลองเหล่านี้ใช้ได้กับทั้งการเรียนรู้แบบมีผู้ดูแลและแบบไม่มีผู้ดูแล พวกเขาสามารถประมวลผลข้อมูลอินพุตประเภทต่างๆ รวมทั้งแบบตาราง รูปภาพ และข้อความ
การปั่นป่วนของลูกค้าเป็นปัญหาที่บริษัทต่างๆ เผชิญ ตั้งแต่โทรคมนาคมไปจนถึงการธนาคาร ซึ่งลูกค้ามักจะแพ้คู่แข่ง เพื่อประโยชน์สูงสุดของบริษัทในการรักษาลูกค้าเดิมไว้มากกว่าการหาลูกค้าใหม่ เนื่องจากโดยปกติแล้วจะมีค่าใช้จ่ายเพิ่มขึ้นอย่างมากในการดึงดูดลูกค้าใหม่ ผู้ให้บริการโทรศัพท์มือถือมีประวัติที่ลูกค้ายังคงใช้บริการต่อไปหรือจบลงด้วยการเลิกรา เราสามารถใช้ข้อมูลในอดีตของการปั่นป่วนของผู้ให้บริการมือถือเพื่อฝึกโมเดล ML หลังจากฝึกโมเดลนี้ เราสามารถส่งข้อมูลโปรไฟล์ของลูกค้าตามอำเภอใจ (ข้อมูลโปรไฟล์เดียวกับที่เราเคยฝึกโมเดล) ไปยังโมเดล และคาดการณ์ได้ว่าลูกค้ารายนี้จะเลิกใช้หรือไม่
ในโพสต์นี้ เราฝึกอบรมและปรับใช้ สี่อัลกอริธึม SageMaker ที่เพิ่งเปิดตัว—LightGBM, CatBoost, TabTransformer และ AutoGluon-Tabular—ในชุดข้อมูลการทำนายการปั่นป่วน เราใช้ การปรับโมเดลอัตโนมัติของ SageMaker (เครื่องมือสำหรับการเพิ่มประสิทธิภาพไฮเปอร์พารามิเตอร์) เพื่อค้นหาไฮเปอร์พารามิเตอร์ที่ดีที่สุดสำหรับแต่ละรุ่น และเปรียบเทียบประสิทธิภาพกับชุดข้อมูลการทดสอบการระงับเพื่อเลือกชุดที่เหมาะสมที่สุด
คุณยังสามารถใช้โซลูชันนี้เป็นเทมเพลตเพื่อค้นหาคอลเล็กชันของอัลกอริธึมแบบตารางที่ทันสมัยและใช้การเพิ่มประสิทธิภาพไฮเปอร์พารามิเตอร์เพื่อค้นหาโมเดลโดยรวมที่ดีที่สุด คุณสามารถเปลี่ยนชุดข้อมูลตัวอย่างด้วยชุดข้อมูลของคุณเองได้อย่างง่ายดายเพื่อแก้ปัญหาทางธุรกิจจริงที่คุณสนใจ หากคุณต้องการข้ามไปยังโค้ด SageMaker SDK ที่เราดำเนินการในโพสต์นี้ คุณสามารถดูข้อมูลต่อไปนี้ ตัวอย่างโน๊ตบุ๊ค Jupyter.
ประโยชน์ของอัลกอริทึมในตัวของ SageMaker
เมื่อเลือกอัลกอริธึมสำหรับประเภทปัญหาและข้อมูลของคุณ การใช้อัลกอริธึมในตัวของ SageMaker เป็นตัวเลือกที่ง่ายที่สุด เนื่องจากการทำเช่นนี้มีประโยชน์หลักดังต่อไปนี้:
- การเข้ารหัสต่ำ – อัลกอริธึมในตัวต้องการการเข้ารหัสเพียงเล็กน้อยเพื่อเริ่มทำการทดลอง อินพุตเดียวที่คุณต้องระบุคือข้อมูล ไฮเปอร์พารามิเตอร์ และทรัพยากรในการประมวลผล วิธีนี้ทำให้คุณสามารถเรียกใช้การทดสอบได้รวดเร็วขึ้น โดยมีค่าใช้จ่ายน้อยลงสำหรับการติดตามผลลัพธ์และการเปลี่ยนแปลงโค้ด
- การใช้งานอัลกอริธึมที่มีประสิทธิภาพและปรับขนาดได้ – อัลกอริธึมในตัวมาพร้อมกับการขนานข้ามอินสแตนซ์การประมวลผลหลายตัวและการรองรับ GPU ทันทีสำหรับอัลกอริธึมที่เกี่ยวข้องทั้งหมด หากคุณมีข้อมูลจำนวนมากที่จะฝึกโมเดลของคุณ อัลกอริธึมในตัวส่วนใหญ่สามารถปรับขนาดให้ตรงกับความต้องการได้อย่างง่ายดาย แม้ว่าคุณจะมีโมเดลที่ฝึกไว้ล่วงหน้าแล้ว แต่อาจยังง่ายกว่าที่จะใช้ผลที่ตามมาใน SageMaker และป้อนไฮเปอร์พารามิเตอร์ที่คุณทราบอยู่แล้วแทนที่จะพอร์ตและเขียนสคริปต์การฝึกอบรมด้วยตนเอง
- ความโปร่งใส – คุณเป็นเจ้าของสิ่งประดิษฐ์แบบจำลองที่ได้ คุณสามารถใช้โมเดลนั้นและปรับใช้บน SageMaker สำหรับรูปแบบการอนุมานต่างๆ ได้หลายแบบ (ดู . ทั้งหมด ประเภทการปรับใช้ที่มีอยู่) และการปรับขนาดและการจัดการปลายทางที่ง่ายดาย หรือคุณสามารถปรับใช้ได้ทุกที่ที่คุณต้องการ
การสร้างภาพข้อมูลและการประมวลผลล่วงหน้า
ขั้นแรก เรารวบรวมชุดข้อมูลการปั่นของลูกค้า เป็นชุดข้อมูลขนาดเล็กที่มีระเบียน 5,000 รายการ โดยแต่ละระเบียนใช้แอตทริบิวต์ 21 รายการเพื่ออธิบายโปรไฟล์ของลูกค้าของผู้ให้บริการมือถือในสหรัฐอเมริกาที่ไม่รู้จัก คุณลักษณะมีตั้งแต่รัฐในสหรัฐฯ ที่ลูกค้าอาศัยอยู่ ไปจนถึงจำนวนการโทรที่ติดต่อไปยังฝ่ายบริการลูกค้า ไปจนถึงค่าใช้จ่ายที่เรียกเก็บสำหรับการโทรในเวลากลางวัน เรากำลังพยายามคาดการณ์ว่าลูกค้าจะเลิกใช้หรือไม่ ซึ่งเป็นปัญหาการจำแนกประเภทไบนารี ต่อไปนี้เป็นส่วนย่อยของคุณลักษณะเหล่านั้น โดยจะมีป้ายกำกับเป็นคอลัมน์สุดท้าย
ต่อไปนี้เป็นข้อมูลเชิงลึกบางส่วนสำหรับแต่ละคอลัมน์ โดยเฉพาะสถิติสรุปและฮิสโตแกรมของคุณลักษณะที่เลือก
จากนั้นเราจะประมวลผลข้อมูลล่วงหน้า แบ่งออกเป็นชุดฝึกอบรม การตรวจสอบความถูกต้อง และชุดทดสอบ แล้วอัปโหลดข้อมูลไปที่ บริการจัดเก็บข้อมูลอย่างง่ายของ Amazon (อเมซอน เอส3).
การปรับโมเดลอัตโนมัติของอัลกอริธึมแบบตาราง
พารามิเตอร์ไฮเปอร์พารามิเตอร์ควบคุมวิธีที่อัลกอริธึมพื้นฐานของเราทำงานและมีอิทธิพลต่อประสิทธิภาพของโมเดล ไฮเปอร์พารามิเตอร์เหล่านั้นอาจเป็นจำนวนเลเยอร์ อัตราการเรียนรู้ อัตราการสลายตัวของน้ำหนัก และการออกกลางคันสำหรับโมเดลเครือข่ายประสาทเทียม หรือจำนวนใบไม้ การวนซ้ำ และความลึกของต้นไม้สูงสุดสำหรับโมเดลชุดต้นไม้ ในการเลือกโมเดลที่ดีที่สุด เราใช้การปรับโมเดลอัตโนมัติของ SageMaker กับอัลกอริธึมแบบตาราง SageMaker ทั้งสี่ที่ผ่านการฝึกอบรม คุณต้องเลือกเฉพาะไฮเปอร์พารามิเตอร์เพื่อปรับแต่งและช่วงสำหรับพารามิเตอร์แต่ละตัวที่จะสำรวจ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการจูนโมเดลอัตโนมัติ โปรดดูที่ การปรับโมเดลอัตโนมัติของ Amazon SageMaker: การใช้การเรียนรู้ของเครื่องสำหรับการเรียนรู้ของเครื่อง or การปรับโมเดลอัตโนมัติของ Amazon SageMaker: การเพิ่มประสิทธิภาพที่ไม่มีการไล่ระดับสีที่ปรับขนาดได้.
เรามาดูกันว่ามันทำงานอย่างไรในทางปฏิบัติ
ไลท์จีบีเอ็ม
เราเริ่มต้นด้วยการเรียกใช้การปรับโมเดลอัตโนมัติด้วย LightGBM และปรับกระบวนการนั้นให้เข้ากับอัลกอริธึมอื่นๆ ตามที่อธิบายไว้ในโพสต์ โมเดลและอัลกอริทึม Amazon SageMaker JumpStart พร้อมใช้งานผ่าน API . แล้วต้องใช้อาร์ติแฟกต์ต่อไปนี้เพื่อฝึกอัลกอริทึมที่สร้างไว้ล่วงหน้าผ่าน SageMaker SDK:
- อิมเมจคอนเทนเนอร์เฉพาะเฟรมเวิร์ก ซึ่งมีการพึ่งพาที่จำเป็นสำหรับการฝึกอบรมและการอนุมาน
- สคริปต์การฝึกอบรมและการอนุมานสำหรับโมเดลหรืออัลกอริธึมที่เลือก
ก่อนอื่นเราดึงสิ่งประดิษฐ์เหล่านี้ซึ่งขึ้นอยู่กับ model_id
(lightgbm-classification-model
ในกรณีนี้) และเวอร์ชัน:
จากนั้น เราได้รับไฮเปอร์พารามิเตอร์เริ่มต้นสำหรับ LightGBM ตั้งค่าบางส่วนให้เป็นค่าคงที่ที่เลือกไว้ เช่น จำนวนรอบการเพิ่มและตัววัดการประเมินในข้อมูลการตรวจสอบ และกำหนดช่วงค่าที่เราต้องการค้นหาเพื่อหาค่าอื่นๆ เราใช้พารามิเตอร์ SageMaker ContinuousParameter
และ IntegerParameter
สำหรับสิ่งนี้:
ในที่สุด เราก็สร้าง เครื่องมือประมาณการ SageMaker, ป้อนเข้า ไฮเปอร์รามิเตอร์จูนเนอร์และเริ่มงานปรับแต่งไฮเปอร์พารามิเตอร์ด้วย tuner.fit()
:
พื้นที่ max_jobs
พารามิเตอร์กำหนดจำนวนงานทั้งหมดที่จะรันในงานปรับแต่งแบบจำลองอัตโนมัติ และ max_parallel_jobs
กำหนดว่าควรเริ่มงานฝึกอบรมพร้อมกันกี่งาน นอกจากนี้เรายังกำหนดวัตถุประสงค์เพื่อ “Maximize”
AUC ของโมเดล (พื้นที่ใต้เส้นโค้ง) เพื่อเจาะลึกเข้าไปในพารามิเตอร์ที่มีอยู่ซึ่งเปิดเผยโดย HyperParameterTuner
, เอ่ยถึง ไฮเปอร์พารามิเตอร์จูนเนอร์.
วันที่ออก โน๊ตบุ๊คตัวอย่าง เพื่อดูว่าเราดำเนินการปรับใช้และประเมินโมเดลนี้ในชุดทดสอบอย่างไร
แคทบูสท์
กระบวนการสำหรับการปรับแต่งไฮเปอร์พารามิเตอร์บนอัลกอริทึม CatBoost นั้นเหมือนเดิม แม้ว่าเราจำเป็นต้องดึงสิ่งประดิษฐ์ของแบบจำลองภายใต้ ID catboost-classification-model
และเปลี่ยนการเลือกช่วงของไฮเปอร์พารามิเตอร์:
แท็บ Transformer
กระบวนการสำหรับการปรับไฮเปอร์พารามิเตอร์บนโมเดล TabTransformer นั้นเหมือนเดิม แม้ว่าเราจำเป็นต้องดึงข้อมูลสิ่งประดิษฐ์ของโมเดลภายใต้ ID pytorch-tabtransformerclassification-model
และเปลี่ยนการเลือกช่วงของไฮเปอร์พารามิเตอร์
เราก็เปลี่ยนการอบรม instance_type
ไปยัง ml.p3.2xlarge
. TabTransformer เป็นโมเดลที่เพิ่งได้มาจากการวิจัยของ Amazon ซึ่งนำพลังของการเรียนรู้เชิงลึกมาสู่ข้อมูลแบบตารางโดยใช้โมเดล Transformer ในการฝึกโมเดลนี้อย่างมีประสิทธิภาพ เราจำเป็นต้องมีอินสแตนซ์ที่สนับสนุน GPU สำหรับข้อมูลเพิ่มเติม โปรดดูที่ นำพลังของการเรียนรู้เชิงลึกมาสู่ข้อมูลในตาราง.
AutoGluon-แบบตาราง
ในกรณีของ AutoGluon เราไม่เรียกใช้การปรับค่าไฮเปอร์พารามิเตอร์ นี่คือการออกแบบ เนื่องจาก AutoGluon มุ่งเน้นไปที่การรวบรวมหลายรุ่นด้วยตัวเลือกที่เหมาะสมของไฮเปอร์พารามิเตอร์ และซ้อนไว้ในหลายชั้น วิธีนี้มีประสิทธิภาพมากกว่าการฝึกโมเดลหนึ่งด้วยตัวเลือกไฮเปอร์พารามิเตอร์ที่สมบูรณ์แบบ และยังมีราคาถูกกว่าในเชิงคำนวณอีกด้วย ดูรายละเอียดได้ที่ AutoGluon-Tabular: AutoML ที่แข็งแกร่งและแม่นยำสำหรับข้อมูลที่มีโครงสร้าง.
ดังนั้นเราจึงเปลี่ยน model_id
ไปยัง autogluon-classification-ensemble
และแก้ไขเฉพาะไฮเปอร์พารามิเตอร์เมตริกการประเมินเป็นคะแนน AUC ที่ต้องการเท่านั้น:
แทนที่จะโทร tuner.fit()
, เราเรียก estimator.fit()
เพื่อเริ่มงานฝึกอบรมเดียว
การเปรียบเทียบแบบจำลองที่ได้รับการฝึกอบรม
หลังจากที่เราปรับใช้โมเดลทั้งสี่แล้ว เราจะส่งชุดการทดสอบทั้งหมดไปยังปลายทางแต่ละจุดเพื่อคาดการณ์และคำนวณความแม่นยำ, F1 และเมตริก AUC สำหรับแต่ละรุ่น (ดูโค้ดใน โน๊ตบุ๊คตัวอย่าง). เรานำเสนอผลลัพธ์ในตารางต่อไปนี้ โดยมีข้อจำกัดความรับผิดชอบที่สำคัญ: ผลลัพธ์และประสิทธิภาพที่เกี่ยวข้องระหว่างแบบจำลองเหล่านี้จะขึ้นอยู่กับชุดข้อมูลที่คุณใช้สำหรับการฝึกอบรม ผลลัพธ์เหล่านี้เป็นตัวแทน และแม้ว่าแนวโน้มที่อัลกอริธึมบางอย่างจะทำงานได้ดีขึ้นนั้นขึ้นอยู่กับปัจจัยที่เกี่ยวข้อง (เช่น AutoGluon รวบรวมการคาดการณ์ของทั้งรุ่น LightGBM และ CatBoost อย่างชาญฉลาด) ความสมดุลในประสิทธิภาพอาจเปลี่ยนไปตามความแตกต่าง การกระจายข้อมูล
. | LightGBM พร้อมการปรับโมเดลอัตโนมัติ | CatBoost พร้อมการปรับโมเดลอัตโนมัติ | TabTransformer พร้อมการปรับโมเดลอัตโนมัติ | AutoGluon-แบบตาราง |
ความถูกต้อง | 0.8977 | 0.9622 | 0.9511 | 0.98 |
F1 | 0.8986 | 0.9624 | 0.9517 | 0.98 |
AUC | 0.9629 | 0.9907 | 0.989 | 0.9979 |
สรุป
ในโพสต์นี้ เราฝึกอบรมอัลกอริธึมในตัว SageMaker สี่ตัวที่แตกต่างกันเพื่อแก้ปัญหาการทำนายการปั่นของลูกค้าโดยใช้ความพยายามในการเข้ารหัสต่ำ เราใช้การปรับโมเดลอัตโนมัติของ SageMaker เพื่อค้นหาไฮเปอร์พารามิเตอร์ที่ดีที่สุดในการฝึกอัลกอริทึมเหล่านี้ด้วย และเปรียบเทียบประสิทธิภาพกับชุดข้อมูลการคาดการณ์การปั่นหมาดที่เลือก คุณสามารถใช้คำที่เกี่ยวข้อง โน๊ตบุ๊คตัวอย่าง เป็นเทมเพลต โดยแทนที่ชุดข้อมูลด้วยชุดข้อมูลของคุณเองเพื่อแก้ปัญหาตามตารางที่คุณต้องการ
อย่าลืมลองใช้อัลกอริทึมเหล่านี้บน SageMaker และดูสมุดบันทึกตัวอย่างเกี่ยวกับวิธีใช้อัลกอริธึมในตัวอื่นๆ ที่มีใน GitHub.
เกี่ยวกับผู้แต่ง
ดร.ซิน หวาง เป็นนักวิทยาศาสตร์ประยุกต์สำหรับอัลกอริทึมในตัวของ Amazon SageMaker JumpStart และ Amazon SageMaker เขามุ่งเน้นไปที่การพัฒนาอัลกอริธึมการเรียนรู้ของเครื่องที่ปรับขนาดได้ ความสนใจในงานวิจัยของเขาอยู่ในพื้นที่ของการประมวลผลภาษาธรรมชาติ การเรียนรู้เชิงลึกที่อธิบายได้บนข้อมูลแบบตาราง และการวิเคราะห์ที่มีประสิทธิภาพของการจัดกลุ่มพื้นที่และเวลาที่ไม่อิงพารามิเตอร์ เขาได้ตีพิมพ์บทความจำนวนมากในการประชุม ACL, ICDM, KDD และวารสาร Royal Statistical Society: Series A
ชูเอา มูร่า เป็นสถาปนิกโซลูชันผู้เชี่ยวชาญ AI/ML ที่ Amazon Web Services เขามุ่งเน้นไปที่กรณีการใช้งาน NLP เป็นส่วนใหญ่ และช่วยลูกค้าเพิ่มประสิทธิภาพการฝึกอบรมและการปรับใช้โมเดล Deep Learning เขายังเป็นผู้สนับสนุนโซลูชัน ML แบบ low-code และฮาร์ดแวร์เฉพาะสำหรับ ML
- AI
- ไอ อาร์ต
- เครื่องกำเนิดไออาร์ท
- หุ่นยนต์ไอ
- อเมซอน SageMaker
- ปัญญาประดิษฐ์
- ใบรับรองปัญญาประดิษฐ์
- ปัญญาประดิษฐ์ในการธนาคาร
- หุ่นยนต์ปัญญาประดิษฐ์
- หุ่นยนต์ปัญญาประดิษฐ์
- ซอฟต์แวร์ปัญญาประดิษฐ์
- AWS Machine Learning AWS
- blockchain
- การประชุม blockchain ai
- เหรียญอัจฉริยะ
- ปัญญาประดิษฐ์สนทนา
- การประชุม crypto ai
- ดัล-อี
- การเรียนรู้ลึก ๆ
- google ai
- เรียนรู้เครื่อง
- เพลโต
- เพลโตไอ
- เพลโตดาต้าอินเทลลิเจนซ์
- เกมเพลโต
- เพลโตดาต้า
- เพลโตเกม
- ขนาดไอ
- วากยสัมพันธ์
- ลมทะเล