คู่มือทางเทคนิค

Ray สำหรับ AI แบบกระจาย

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

ภาพรวม

Ray เป็นเฟรมเวิร์กโอเพ่นซอร์สที่ทำให้ปรับขนาดปริมาณงาน Python และ AI จากแล็ปท็อปไปยังคลัสเตอร์ของเครื่องนับพันได้อย่างง่ายดาย เป็นเรื่องสำคัญเนื่องจากให้วิธีที่เรียบง่ายและเป็นหนึ่งเดียวในการกระจายการฝึกอบรม การปรับแต่ง การประมวลผลข้อมูล และการให้บริการโดยไม่ต้องเขียนโค้ดใหม่สำหรับแต่ละรายการ

Ray สำหรับ Distributed AI เป็นองค์ประกอบทางเทคนิคที่ส่งผลต่อคุณภาพของโมเดล ต้นทุนโครงสร้างพื้นฐาน เวลาแฝง และความน่าเชื่อถือในวงกว้าง

เจาะลึก

แนวคิดหลักของ Ray คือการเปลี่ยนฟังก์ชันและคลาสของ Python ธรรมดาให้เป็นหน่วยแบบกระจายโดยมีการเปลี่ยนแปลงเพียงเล็กน้อย ฟังก์ชันที่ทำเครื่องหมายว่าเป็น 'งาน' ระยะไกลจะทำงานแบบอะซิงโครนัสกับผู้ปฏิบัติงานในคลัสเตอร์ ชั้นเรียนที่ถูกทำเครื่องหมายว่าเป็น 'นักแสดง' ที่อยู่ห่างไกลจะกลายเป็นบริการของรัฐที่อาศัยอยู่กับคนงาน Ray ส่งคืนไลท์เวทฟิวเจอร์ส (การอ้างอิงอ็อบเจ็กต์) และจัดการการกำหนดเวลา การเคลื่อนที่ของข้อมูลผ่านที่เก็บอ็อบเจ็กต์ที่ใช้ร่วมกัน และความทนทานต่อข้อผิดพลาด นอกเหนือจากไลบรารีหลักที่สร้างขึ้นตามจุดประสงค์นี้แล้ว: Ray Train สำหรับการฝึกโมเดลแบบกระจาย, Ray Tune สำหรับการค้นหาไฮเปอร์พารามิเตอร์, Ray Data สำหรับไปป์ไลน์ข้อมูลสตรีมมิ่ง, RLlib สำหรับการเรียนรู้แบบเสริมกำลัง และ Ray Serve สำหรับการให้บริการโมเดลที่ปรับขนาดได้ ซึ่งช่วยให้คลัสเตอร์หนึ่งจัดการเวิร์กโฟลว์ ML ทั้งหมดได้ตั้งแต่ต้นจนจบ

ข้อมูลเชิงลึกทางเทคนิค

สิ่งสำคัญเบื้องต้นคืองาน (ไร้สถานะ การเรียกใช้ฟังก์ชันแบบขนาน) และนักแสดง (ผู้ปฏิบัติงาน stateful ที่เก็บสิ่งต่าง ๆ เช่น โมเดลที่โหลดหรือตัวนับ) เมื่อคุณเรียกงานระยะไกล Ray จะส่งคืนอนาคตทันทีและจัดกำหนดการงานใน CPU/GPU ที่พร้อมใช้งาน คุณเรียก ray.get() เพื่อดึงผลลัพธ์ ที่เก็บอ็อบเจ็กต์ในหน่วยความจำแบบกระจายที่มีหน่วยความจำที่ใช้ร่วมกันเป็นศูนย์จะย้ายอ็อบเจ็กต์ขนาดใหญ่ เช่น อาร์เรย์ระหว่างผู้ปฏิบัติงานอย่างมีประสิทธิภาพ หลีกเลี่ยงการทำให้เป็นอนุกรมซ้ำ และทำให้ไปป์ไลน์ AI หนักข้อมูลรวดเร็ว

การเรียนรู้ Ray สำหรับ AI แบบกระจาย

Ray เป็นเฟรมเวิร์กโอเพ่นซอร์สที่ทำให้ปรับขนาดปริมาณงาน Python และ AI จากแล็ปท็อปไปยังคลัสเตอร์ของเครื่องนับพันได้อย่างง่ายดาย เป็นเรื่องสำคัญเนื่องจากให้วิธีที่เรียบง่ายและเป็นหนึ่งเดียวในการกระจายการฝึกอบรม การปรับแต่ง การประมวลผลข้อมูล และการให้บริการโดยไม่ต้องเขียนโค้ดใหม่สำหรับแต่ละรายการ Ray สำหรับ Distributed AI เป็นองค์ประกอบทางเทคนิคที่ส่งผลต่อคุณภาพของโมเดล ต้นทุนโครงสร้างพื้นฐาน เวลาแฝง และความน่าเชื่อถือในวงกว้าง เพื่อสร้างความเข้าใจอย่างลึกซึ้ง ให้ปฏิบัติต่อ Ray สำหรับ Distributed AI เป็นรูปแบบการดำเนินงาน ไม่ใช่คุณลักษณะเดียว: กำหนดผลลัพธ์ที่ต้องการ ชี้แจงสมมติฐาน และแยกสิ่งที่ระบบสามารถทำได้อย่างน่าเชื่อถือจากสิ่งที่ยังต้องใช้วิจารณญาณจากผู้เชี่ยวชาญ

ในทางปฏิบัติ ทีมที่แข็งแกร่งที่ใช้ Ray สำหรับ Distributed AI จะปรับสถาปัตยกรรม ข้อมูล และตัวเลือกโครงสร้างพื้นฐานให้เหมาะสมโดยเทียบกับความน่าเชื่อถือและต้นทุน โดยจะบันทึกเกณฑ์ความสำเร็จที่ชัดเจน ทดสอบกับข้อมูลและขั้นตอนการทำงานที่สมจริง และทำซ้ำตามรูปแบบความล้มเหลวที่สังเกตได้ แทนที่จะชนะการวัดประสิทธิภาพเพียงครั้งเดียว นี่คือจุดที่ความเข้าใจทางทฤษฎีกลายเป็นความสามารถที่คงทนของผลิตภัณฑ์ นโยบาย และการดำเนินงาน

การตัดสินใจด้านสถาปัตยกรรมขับเคลื่อนประสิทธิภาพและต้นทุนการดำเนินงานเป็นเวลาหลายปี ในเวลาเดียวกัน การเพิ่มประสิทธิภาพเกณฑ์มาตรฐานหนึ่งรายการสามารถซ่อนจุดอ่อนของระบบในวงกว้างได้ แนวทางที่ยืดหยุ่นที่สุดคือการรวมความเร็วของการทดลองเข้ากับวินัยในการกำกับดูแล: ดำเนินการนำร่อง จับหลักฐาน เผยแพร่บันทึกการตัดสินใจ และอัปเดตการป้องกันอย่างต่อเนื่องเมื่อพฤติกรรมของโมเดล ความคาดหวังของผู้ใช้ และข้อกำหนดด้านกฎระเบียบมีการเปลี่ยนแปลง

ผลกระทบเชิงกลยุทธ์

การตัดสินใจด้านสถาปัตยกรรมขับเคลื่อนประสิทธิภาพและต้นทุนการดำเนินงานเป็นเวลาหลายปี

การตัดสินใจด้านสถาปัตยกรรมขับเคลื่อนประสิทธิภาพและต้นทุนการดำเนินงานเป็นเวลาหลายปี ในการปรับใช้คุณภาพสูง สิ่งนี้จะถูกแปลเป็นกฎการปฏิบัติงานที่วัดผลได้ ขอบเขตความเป็นเจ้าของ และขั้นตอนการตรวจสอบที่เกิดซ้ำ เพื่อให้ทีมสามารถปรับขนาดความมั่นใจแทนที่จะปรับขนาดความคลุมเครือ

การศึกษาด้านเทคนิคช่วยให้ทีมเลือกกลุ่มที่เหมาะสม ไม่ใช่แค่กลุ่มใหม่ล่าสุด

การศึกษาด้านเทคนิคช่วยให้ทีมเลือกกลุ่มที่เหมาะสม ไม่ใช่แค่กลุ่มใหม่ล่าสุด ในการปรับใช้คุณภาพสูง สิ่งนี้จะถูกแปลเป็นกฎการปฏิบัติงานที่วัดผลได้ ขอบเขตความเป็นเจ้าของ และขั้นตอนการตรวจสอบที่เกิดซ้ำ เพื่อให้ทีมสามารถปรับขนาดความมั่นใจแทนที่จะปรับขนาดความคลุมเครือ

ตัวเลือกทางวิศวกรรมที่ดีกว่าจะช่วยลดเหตุการณ์ด้านความน่าเชื่อถือในการผลิต

ตัวเลือกทางวิศวกรรมที่ดีกว่าจะช่วยลดเหตุการณ์ด้านความน่าเชื่อถือในการผลิต ในการปรับใช้คุณภาพสูง สิ่งนี้จะถูกแปลเป็นกฎการปฏิบัติงานที่วัดผลได้ ขอบเขตความเป็นเจ้าของ และขั้นตอนการตรวจสอบที่เกิดซ้ำ เพื่อให้ทีมสามารถปรับขนาดความมั่นใจแทนที่จะปรับขนาดความคลุมเครือ

อนาคตของ Ray สำหรับ AI แบบกระจาย

Ray ได้กลายเป็นแกนหลักของ AI ขนาดใหญ่ โดยเฉพาะอย่างยิ่งใช้ในการฝึกอบรมและให้บริการโมเดลภาษาขนาดใหญ่ คาดหวังการเติบโตในการให้บริการเฉพาะของ LLM (Ray Serve with vLLM), การตั้งเวลา GPU ที่แตกต่างกัน, การบูรณาการที่เข้มงวดมากขึ้นกับ Data Lake และ Kubernetes ผ่าน KubeRay และการปรับขนาดอัตโนมัติที่ดีขึ้นสำหรับปริมาณงานที่สร้างอย่างรวดเร็ว เมื่อโมเดลเติบโตขึ้น บทบาทของ Ray ในการเตรียมการฝึกอบรมแบบหลายโหนด ไปป์ไลน์ RLHF และการอนุมานแบบแบตช์บนตัวเร่งความเร็วหลายพันตัวก็มีแนวโน้มที่จะขยายตัว

การใช้งานจริงในโลกแห่งความเป็นจริง

เรียกใช้ Ray Tune เพื่อค้นหาชุดไฮเปอร์พารามิเตอร์หลายร้อยชุดพร้อมกันทั่วทั้งคลัสเตอร์ GPU เพื่อค้นหาการกำหนดค่าโมเดลที่ดีที่สุด

การใช้ Ray Train เพื่อกระจายการฝึกฝนโมเดลการเรียนรู้เชิงลึกไปยัง GPU และโหนดจำนวนมากโดยมีการเปลี่ยนแปลงโค้ดเพียงเล็กน้อย

สร้างไปป์ไลน์การอนุมานแบบแบตช์ด้วย Ray Data เพื่อทำคะแนนบันทึกนับล้านรายการโดยการสตรีมผ่านแบบจำลองทั่วทั้งคลัสเตอร์

การปรับใช้หลายโมเดลหลังจุดสิ้นสุดการปรับขนาดอัตโนมัติจุดเดียวด้วย Ray Serve เพื่อจัดการปริมาณการใช้ข้อมูลการผลิตที่แปรผัน

รูปแบบการดำเนินงาน

Ray สำหรับ Distributed AI ในทางปฏิบัติ

เรียกใช้ Ray Tune เพื่อค้นหาชุดไฮเปอร์พารามิเตอร์หลายร้อยชุดพร้อมกันทั่วทั้งคลัสเตอร์ GPU เพื่อค้นหาการกำหนดค่าโมเดลที่ดีที่สุด

การเรียกใช้ Ray Tune เพื่อค้นหาชุดไฮเปอร์พารามิเตอร์หลายร้อยชุดพร้อมกันทั่วทั้งคลัสเตอร์ GPU เพื่อค้นหาการกำหนดค่าโมเดลที่ดีที่สุด ทีมมักจะได้รับผลลัพธ์ที่ดีกว่าเมื่อพวกเขากำหนดเกณฑ์คุณภาพล่วงหน้า รักษาเส้นทางการยกระดับโดยมนุษย์สำหรับกรณี Edge และติดตามทั้งประสิทธิภาพการทำงานที่เพิ่มขึ้นและต้นทุนข้อผิดพลาดเมื่อเวลาผ่านไป

Ray สำหรับ Distributed AI ในทางปฏิบัติ

การใช้ Ray Train เพื่อกระจายการฝึกฝนโมเดลการเรียนรู้เชิงลึกไปยัง GPU และโหนดจำนวนมากโดยมีการเปลี่ยนแปลงโค้ดเพียงเล็กน้อย

การใช้ Ray Train เพื่อกระจายการฝึกฝนโมเดลการเรียนรู้เชิงลึกไปยัง GPU และโหนดจำนวนมากโดยมีการเปลี่ยนแปลงโค้ดเพียงเล็กน้อย ทีมมักจะได้รับผลลัพธ์ที่ดีกว่าเมื่อพวกเขากำหนดเกณฑ์คุณภาพล่วงหน้า รักษาเส้นทางการยกระดับโดยมนุษย์สำหรับกรณี Edge และติดตามทั้งประสิทธิภาพการทำงานที่เพิ่มขึ้นและต้นทุนข้อผิดพลาดเมื่อเวลาผ่านไป

Ray สำหรับ Distributed AI ในทางปฏิบัติ

สร้างไปป์ไลน์การอนุมานแบบแบตช์ด้วย Ray Data เพื่อทำคะแนนบันทึกนับล้านรายการโดยการสตรีมผ่านแบบจำลองทั่วทั้งคลัสเตอร์

การสร้างไปป์ไลน์การอนุมานแบบแบตช์ด้วย Ray Data เพื่อทำคะแนนบันทึกนับล้านโดยสตรีมบันทึกผ่านแบบจำลองทั่วทั้งคลัสเตอร์ ทีมมักจะได้รับผลลัพธ์ที่ดีกว่าเมื่อพวกเขากำหนดเกณฑ์คุณภาพล่วงหน้า รักษาเส้นทางการยกระดับโดยมนุษย์สำหรับกรณี Edge และติดตามทั้งประสิทธิภาพการทำงานที่เพิ่มขึ้นและต้นทุนข้อผิดพลาดเมื่อเวลาผ่านไป

Ray สำหรับ Distributed AI ในทางปฏิบัติ

การปรับใช้หลายโมเดลหลังจุดสิ้นสุดการปรับขนาดอัตโนมัติจุดเดียวด้วย Ray Serve เพื่อจัดการปริมาณการใช้ข้อมูลการผลิตที่แปรผัน

การปรับใช้หลายโมเดลหลังจุดสิ้นสุดการปรับขนาดอัตโนมัติจุดเดียวด้วย Ray Serve เพื่อจัดการกับการรับส่งข้อมูลการผลิตที่แปรผัน ทีมมักจะได้รับผลลัพธ์ที่ดีกว่าเมื่อพวกเขากำหนดเกณฑ์คุณภาพล่วงหน้า รักษาเส้นทางการยกระดับโดยมนุษย์สำหรับกรณี Edge และติดตามทั้งประสิทธิภาพการทำงานที่เพิ่มขึ้นและต้นทุนข้อผิดพลาดเมื่อเวลาผ่านไป

ความเสี่ยงและรั้ว

!

การเพิ่มประสิทธิภาพเกณฑ์มาตรฐานหนึ่งรายการสามารถซ่อนจุดอ่อนของระบบในวงกว้างได้

!

ต้นทุนโครงสร้างพื้นฐานและการบำรุงรักษามักถูกประเมินต่ำไป

!

ช่องว่างด้านความปลอดภัยและความสามารถในการสังเกตสามารถเพิ่มขึ้นได้เมื่อระบบมีความซับซ้อนมากขึ้น

แผนงานการดำเนินงาน

1

กำหนดเป้าหมายเวลาแฝง คุณภาพ และต้นทุนก่อนนำไปใช้งาน

กำหนดเป้าหมายเวลาแฝง คุณภาพ และต้นทุนก่อนนำไปใช้งาน ถือว่าแต่ละขั้นตอนเป็นเหมือนประตูหลักฐาน: หากไม่ตรงตามเกณฑ์ ให้หยุดการเปิดตัวชั่วคราว ปิดช่องว่าง จากนั้นจึงขยายการใช้งานเท่านั้น

2

เกณฑ์มาตรฐานภายใต้สภาวะโหลดและข้อมูลจริง

เกณฑ์มาตรฐานภายใต้สภาวะโหลดและข้อมูลจริง ถือว่าแต่ละขั้นตอนเป็นเหมือนประตูหลักฐาน: หากไม่ตรงตามเกณฑ์ ให้หยุดการเปิดตัวชั่วคราว ปิดช่องว่าง จากนั้นจึงขยายการใช้งานเท่านั้น

3

การตรวจสอบเครื่องมือเพื่อหาข้อผิดพลาด การเบี่ยงเบน และผลกระทบต่อผู้ใช้

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

4

เตรียมเส้นทางการย้อนกลับและการตอบสนองต่อเหตุการณ์ก่อนปรับขนาด

เตรียมเส้นทางการย้อนกลับและการตอบสนองต่อเหตุการณ์ก่อนปรับขนาด ถือว่าแต่ละขั้นตอนเป็นเหมือนประตูหลักฐาน: หากไม่ตรงตามเกณฑ์ ให้หยุดการเปิดตัวชั่วคราว ปิดช่องว่าง จากนั้นจึงขยายการใช้งานเท่านั้น

สำรวจต่อไป