Kubernetes สำหรับปริมาณงาน ML
Kubernetes คือระบบโอเพ่นซอร์สที่กำหนดเวลา ปรับขนาด และรีสตาร์ทโปรแกรมที่มีคอนเทนเนอร์ทั่วทั้งคลัสเตอร์ของเครื่องโดยอัตโนมัติ
ภาพรวม
For machine learning, it lets teams pack GPU-hungry training jobs and latency-sensitive model servers onto shared hardware without babysitting individual servers.
เจาะลึก
Kubernetes เดิมทีสร้างขึ้นที่ Google เพื่อเรียกใช้บริการเว็บ โดยจะถือว่าคลัสเตอร์ของคุณเป็นเหมือนกลุ่ม CPU, หน่วยความจำ และ GPU ขนาดใหญ่กลุ่มหนึ่ง จากนั้นจึงตัดสินใจว่าเครื่องใดที่จะรันแต่ละคอนเทนเนอร์ ทีม ML พึ่งพาสิ่งนี้เนื่องจากปริมาณงานล้นหลามและมีราคาแพง การฝึกซ้อมอาจต้องใช้ GPU แปดตัวเป็นเวลาหกชั่วโมง จากนั้นจึงไม่ต้องทำอะไรเลย Kubernetes กำหนดเวลาพ็อดนั้นบนโหนดที่มี GPU ว่าง และเมื่องานเสร็จสิ้นก็จะทำให้ฮาร์ดแวร์ว่าง นอกจากนี้ยังช่วยให้เซิร์ฟเวอร์การอนุมานยังคงทำงานอยู่ โดยรีสตาร์ทคอนเทนเนอร์ที่เสียหาย และกระจายแบบจำลองไปยังเครื่องต่างๆ เพื่อความยืดหยุ่น เครื่องมือที่สร้างขึ้นจากด้านบน เช่น Kubeflow, Ray และ KServe จะเพิ่มส่วนเฉพาะของ ML เช่น ตัวดำเนินการฝึกอบรมแบบกระจาย การปรับแต่งไฮเปอร์พารามิเตอร์ และจุดสิ้นสุดโมเดลปรับขนาดอัตโนมัติ ดังนั้นนักวิทยาศาสตร์ข้อมูลจึงทำงานกับนามธรรมระดับสูงกว่าแทน YAML แบบดิบ
ข้อมูลเชิงลึกทางเทคนิค
Kubernetes กำหนด GPU ผ่านปลั๊กอินของอุปกรณ์ที่โฆษณาทรัพยากร เช่น nvidia.com/gpu ซึ่งตัวกำหนดเวลาตรงกับคำขอของพ็อด ความสกปรกและความคลาดเคลื่อนทำให้งาน CPU ราคาถูกอยู่นอกโหนด GPU ที่มีราคาแพง ในขณะที่ตัวเลือกโหนดและกฎความสัมพันธ์จะปักหมุดการฝึกอบรมกับฮาร์ดแวร์เฉพาะ สำหรับการฝึกอบรม GPU หลายตัว ผู้ปฏิบัติงานจะสร้างกลุ่มพ็อดที่ค้นพบซึ่งกันและกันและรันเฟรมเวิร์ก เช่น PyTorch DDP หรือ Horovod โดยแลกเปลี่ยนการไล่ระดับสีผ่านเครือข่ายคลัสเตอร์โดยใช้ NCCL
ผลกระทบเชิงกลยุทธ์
ต้นทุนและงบประมาณ
การตัดสินใจด้านสถาปัตยกรรมขับเคลื่อนประสิทธิภาพและต้นทุนการดำเนินงานเป็นเวลาหลายปี
การตัดสินใจที่ชัดเจนยิ่งขึ้น
การศึกษาด้านเทคนิคช่วยให้ทีมเลือกกลุ่มที่เหมาะสม ไม่ใช่แค่กลุ่มใหม่ล่าสุด
การควบคุมคุณภาพ
ตัวเลือกทางวิศวกรรมที่ดีกว่าจะช่วยลดเหตุการณ์ด้านความน่าเชื่อถือในการผลิต
อนาคตของ Kubernetes สำหรับปริมาณงาน ML
คาดหวังการผสานรวม ML ที่เข้มงวดยิ่งขึ้น: การตั้งเวลาเป็นกลุ่มที่เปิดตัวพ็อดการฝึกอบรมแบบกระจายทั้งหมดในคราวเดียวหรือไม่มีเลย การแชร์ GPU แบบแบ่งส่วนและแบ่งเวลาเพื่อให้งานเบาหลายงานใช้การ์ดใบเดียวร่วมกัน และตำแหน่งที่รับรู้โทโพโลยีที่เคารพการเชื่อมต่อระหว่างกันของ NVLink ที่รวดเร็ว การอนุมานแบบไร้เซิร์ฟเวอร์บน Kubernetes ซึ่งปรับขนาดปลายทางเป็นศูนย์ระหว่างคำขอกำลังเติบโตเต็มที่ ขณะที่โมเดลบอลลูน ตัวกำหนดเวลาประสานงานกันมากขึ้นระหว่างหลายคลัสเตอร์และคลาวด์ และระบบการแบ่งปันที่ยุติธรรมตามคิว เช่น Kueue และ Volcano กำลังกลายเป็นมาตรฐานสำหรับการจัดการความจุ GPU ที่หายาก
การใช้งานจริงในโลกแห่งความเป็นจริง
ห้องปฏิบัติการวิจัยใช้ Kubeflow Training Operator เพื่อเริ่มงานการฝึกอบรมแบบกระจาย 32-GPU PyTorch บนสี่โหนด จากนั้นจะปล่อย GPU โดยอัตโนมัติเมื่อมาบรรจบกัน
บริษัทอีคอมเมิร์ซให้บริการโมเดลคำแนะนำด้วย KServe ซึ่งจะปรับขนาดการจำลองอัตโนมัติระหว่างการขายแบบแฟลชและย้อนกลับข้ามคืน
ธนาคารดำเนินการให้คะแนนแบบกลุ่มทุกคืนโดยใช้ Kubernetes CronJobs โดยจัดคิวงานเหล่านั้นบนโหนด CPU สำรอง เพื่อไม่ให้แข่งขันกับการรับส่งข้อมูลที่ให้บริการในเวลากลางวัน
สตาร์ทอัพรายหนึ่งใช้ Ray บน Kubernetes เพื่อเรียกใช้การกวาดล้างไฮเปอร์พารามิเตอร์แบบคู่ขนาน และสร้างพ็อดทดลองที่มีอายุสั้นหลายสิบตัวบนอินสแตนซ์เฉพาะจุดเพื่อลดต้นทุน
ความเสี่ยงและรั้ว
การเพิ่มประสิทธิภาพเกณฑ์มาตรฐานหนึ่งรายการสามารถซ่อนจุดอ่อนของระบบในวงกว้างได้
ต้นทุนโครงสร้างพื้นฐานและการบำรุงรักษามักถูกประเมินต่ำไป
ช่องว่างด้านความปลอดภัยและความสามารถในการสังเกตสามารถเพิ่มขึ้นได้เมื่อระบบมีความซับซ้อนมากขึ้น
แผนงานการดำเนินงาน
กำหนดเป้าหมายเวลาแฝง คุณภาพ และต้นทุนก่อนนำไปใช้งาน
เกณฑ์มาตรฐานภายใต้สภาวะโหลดและข้อมูลจริง
การตรวจสอบเครื่องมือเพื่อหาข้อผิดพลาด การเบี่ยงเบน และผลกระทบต่อผู้ใช้
เตรียมเส้นทางการย้อนกลับและการตอบสนองต่อเหตุการณ์ก่อนปรับขนาด
สำรวจต่อไป
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 Kubernetes for ML Workloads 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
คำแนะนำต่อไป
การทดสอบ A/B สำหรับโมเดล ML
คำถามที่พบบ่อย
What is Kubernetes for ML Workloads?
Kubernetes คือระบบโอเพ่นซอร์สที่กำหนดเวลา ปรับขนาด และรีสตาร์ทโปรแกรมที่มีคอนเทนเนอร์ทั่วทั้งคลัสเตอร์ของเครื่องโดยอัตโนมัติ สำหรับแมชชีนเลิร์นนิง ช่วยให้ทีมสามารถบรรจุงานฝึกอบรมที่ต้องใช้ GPU และเซิร์ฟเวอร์โมเดลที่ไวต่อความหน่วงไว้บนฮาร์ดแวร์ที่ใช้ร่วมกันโดยไม่ต้องดูแลเซิร์ฟเวอร์แต่ละเครื่อง
งานหลักของตัวกำหนดเวลา Kubernetes สำหรับปริมาณงาน ML คืออะไร
ตัวกำหนดเวลาจะจับคู่คำขอทรัพยากรของพ็อด (CPU, หน่วยความจำ, GPU) กับโหนดที่มีอยู่ และวางพ็อดในตำแหน่งที่เหมาะสม มันไม่ได้สัมผัสรหัสรุ่นหรือข้อมูล
โดยทั่วไปแล้ว Kubernetes ทำให้ GPU พร้อมใช้งานกับพ็อดได้อย่างไร
ปลั๊กอินของอุปกรณ์เปิดเผย GPU เป็นทรัพยากรที่กำหนดเวลาได้ (เช่น nvidia.com/gpu) โดยปล่อยให้พ็อดร้องขอและติดตามความพร้อมใช้งานของตัวกำหนดเวลา
เทนต์และความคลาดเคลื่อนที่มักใช้ในคลัสเตอร์ ML คืออะไร
มลทินจะขับไล่พ็อดออกจากโหนด เฉพาะฝักที่มีความทนทานตรงกันเท่านั้นที่สามารถลงจอดที่นั่นได้ นี่เป็นการสงวนโหนด GPU ที่หายากสำหรับงานที่ต้องการ GPU จริงๆ
เครื่องมือใดเพิ่มความสามารถเฉพาะของ ML เช่น ผู้ดำเนินการฝึกอบรมแบบกระจายนอกเหนือจาก Kubernetes
Kubeflow ซ้อนเวิร์กโฟลว์ ML ลงบน Kubernetes รวมถึงผู้ปฏิบัติงานฝึกอบรม ไปป์ไลน์ และการปรับแต่ง ดังนั้นทีมจึงหลีกเลี่ยงการเขียนการกำหนดค่าคลัสเตอร์ระดับต่ำด้วยมือ
เหตุใด Kubernetes จึงเหมาะสมกับปริมาณงาน ML ที่ต่อเนื่อง
การฝึกอบรมมีแหลมคม: มี GPU จำนวนมากในช่วงสั้นๆ แต่ไม่มีเลย Kubernetes จะวางงานเมื่อทรัพยากรว่างและเผยแพร่เมื่อเสร็จสิ้น เพื่อปรับปรุงการใช้งาน