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