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

Kubernetes สำหรับปริมาณงาน ML

Kubernetes คือระบบโอเพ่นซอร์สที่กำหนดเวลา ปรับขนาด และรีสตาร์ทโปรแกรมที่มีคอนเทนเนอร์ทั่วทั้งคลัสเตอร์ของเครื่องโดยอัตโนมัติ

ภาพรวม

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

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

เจาะลึก

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

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

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

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

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

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

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

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

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

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

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

อนาคตของ Kubernetes สำหรับปริมาณงาน ML

คาดหวังการผสานรวม ML ที่เข้มงวดยิ่งขึ้น: การตั้งเวลาเป็นกลุ่มที่เปิดตัวพ็อดการฝึกอบรมแบบกระจายทั้งหมดในคราวเดียวหรือไม่มีเลย การแชร์ GPU แบบแบ่งส่วนและแบ่งเวลาเพื่อให้งานเบาหลายงานใช้การ์ดใบเดียวร่วมกัน และตำแหน่งที่รับรู้โทโพโลยีที่เคารพการเชื่อมต่อระหว่างกันของ NVLink ที่รวดเร็ว การอนุมานแบบไร้เซิร์ฟเวอร์บน Kubernetes ซึ่งปรับขนาดตำแหน่งข้อมูลให้เป็นศูนย์ระหว่างคำขอต่างๆ กำลังเติบโตเต็มที่ ขณะที่โมเดลบอลลูน ตัวกำหนดเวลาประสานงานกันมากขึ้นระหว่างหลายคลัสเตอร์และคลาวด์ และระบบการแบ่งปันที่ยุติธรรมตามคิว เช่น Kueue และ Volcano กำลังกลายเป็นมาตรฐานสำหรับการจัดการความจุ GPU ที่หายาก

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

ห้องปฏิบัติการวิจัยใช้ Kubeflow Training Operator เพื่อเริ่มงานการฝึกอบรมแบบกระจาย 32-GPU PyTorch บนสี่โหนด จากนั้นจะปล่อย GPU โดยอัตโนมัติเมื่อมาบรรจบกัน

บริษัทอีคอมเมิร์ซให้บริการโมเดลคำแนะนำด้วย KServe ซึ่งจะปรับขนาดการจำลองอัตโนมัติระหว่างการขายแบบแฟลชและย้อนกลับข้ามคืน

ธนาคารดำเนินการให้คะแนนแบบกลุ่มทุกคืนโดยใช้ Kubernetes CronJobs โดยจัดคิวงานเหล่านั้นบนโหนด CPU สำรอง เพื่อไม่ให้แข่งขันกับการรับส่งข้อมูลที่ให้บริการในเวลากลางวัน

สตาร์ทอัพรายหนึ่งใช้ Ray บน Kubernetes เพื่อเรียกใช้การกวาดล้างไฮเปอร์พารามิเตอร์แบบคู่ขนาน และสร้างพ็อดทดลองที่มีอายุสั้นหลายสิบตัวบนอินสแตนซ์เฉพาะจุดเพื่อลดต้นทุน

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

Kubernetes สำหรับปริมาณงาน ML ในทางปฏิบัติ

ห้องปฏิบัติการวิจัยใช้ Kubeflow Training Operator เพื่อเริ่มงานการฝึกอบรมแบบกระจาย 32-GPU PyTorch บนสี่โหนด จากนั้นจะปล่อย GPU โดยอัตโนมัติเมื่อมาบรรจบกัน

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

Kubernetes สำหรับปริมาณงาน ML ในทางปฏิบัติ

บริษัทอีคอมเมิร์ซให้บริการโมเดลคำแนะนำด้วย KServe ซึ่งจะปรับขนาดการจำลองอัตโนมัติระหว่างการขายแบบแฟลชและย้อนกลับข้ามคืน

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

Kubernetes สำหรับปริมาณงาน ML ในทางปฏิบัติ

ธนาคารดำเนินการให้คะแนนแบบกลุ่มทุกคืนโดยใช้ Kubernetes CronJobs โดยจัดคิวงานเหล่านั้นบนโหนด CPU สำรอง เพื่อไม่ให้แข่งขันกับการรับส่งข้อมูลที่ให้บริการในเวลากลางวัน

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

Kubernetes สำหรับปริมาณงาน ML ในทางปฏิบัติ

สตาร์ทอัพรายหนึ่งใช้ Ray บน Kubernetes เพื่อเรียกใช้การกวาดล้างไฮเปอร์พารามิเตอร์แบบคู่ขนาน และสร้างพ็อดทดลองที่มีอายุสั้นหลายสิบตัวบนอินสแตนซ์เฉพาะจุดเพื่อลดต้นทุน

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

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

!

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

!

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

!

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

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

1

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

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

2

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

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

3

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

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

4

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

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

สำรวจต่อไป