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

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

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

อ่าน 2 นาทีอัปเดตล่าสุด

ภาพรวม

It matters because it gives a simple, unified way to distribute training, tuning, data processing, and serving without rewriting your code for each.

เจาะลึก

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

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

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

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

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

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

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

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

1

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

2

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

3

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

4

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

สำรวจต่อไป

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Ray for Distributed AI quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

เริ่มแบบทดสอบ

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

คำแนะนำต่อไป

จุดตรวจไล่ระดับ

คำถามที่พบบ่อย

What is Ray for Distributed AI?

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

เรย์แก้ปัญหาอะไรเป็นหลัก?

Ray มอบวิธีง่ายๆ ที่เป็นหนึ่งเดียวในการกระจายการคำนวณไปยังเครื่องหลายๆ เครื่อง โดยไม่ต้องเขียนโค้ดใหม่สำหรับปริมาณงานแต่ละประเภท

ในเรย์ อะไรคือความแตกต่างระหว่าง 'งาน' และ 'นักแสดง'?

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

เรย์จะกลับมาทันทีเมื่อคุณเริ่มงานระยะไกล?

เรย์กลับมาสู่อนาคตที่มีน้ำหนักเบาในทันที ดังนั้นงานจึงดำเนินไปแบบอะซิงโครนัส คุณเรียก ray.get() เพื่อดึงผลลัพธ์จริงเมื่อจำเป็น

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

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

ที่จัดเก็บอ็อบเจ็กต์ของ Ray ทำให้ไปป์ไลน์ AI ที่มีข้อมูลจำนวนมากมีประสิทธิภาพได้อย่างไร

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