ปัจจุบัน ลูกค้า AWS จำนวนมากกำลังสร้างแพลตฟอร์มแมชชีนเลิร์นนิง (ML) ที่พร้อมใช้งานสำหรับองค์กร บริการ Amazon Elastic Kubernetes (Amazon EKS) โดยใช้ Kubeflow บน AWS (การกระจายเฉพาะของ AWS ของ Kubeflow) ในกรณีการใช้งานจำนวนมาก รวมถึงการมองเห็นด้วยคอมพิวเตอร์ การเข้าใจภาษาธรรมชาติ การแปลคำพูด และการสร้างแบบจำลองทางการเงิน
กับ รุ่นล่าสุดของโอเพ่นซอร์ส Kubeflow v1.6.1ชุมชน Kubeflow ยังคงสนับสนุนการนำ Kubeflow มาใช้ในวงกว้างสำหรับกรณีการใช้งานระดับองค์กร รุ่นล่าสุดมีคุณสมบัติใหม่ที่น่าตื่นเต้นมากมาย เช่น การรองรับ Kubernetes v1.22, รวม Python SDK สำหรับ PyTorch, MXNet, MPI, XGBoost ใน Training Operator แบบกระจายของ Kubeflow, ClusterServingRuntime และ ServingRuntime CRDs ใหม่สำหรับบริการแบบจำลอง และอื่นๆ อีกมากมาย
การมีส่วนร่วมของ AWS กับ Kubeflow ด้วยการเปิดตัว Kubeflow บน AWS 1.6.1 ล่าสุดรองรับฟีเจอร์ Kubeflow แบบโอเพนซอร์สอัปสตรีมทั้งหมด และรวมการผสานรวมใหม่ๆ เข้ากับบริการ AWS ที่พร้อมใช้งานบนระบบคลาวด์ที่ได้รับการปรับให้เหมาะสมที่สุดและพร้อมใช้งานสำหรับองค์กร ซึ่งจะช่วยคุณสร้างความน่าเชื่อถือสูง ระบบ ML ที่ปลอดภัย พกพาสะดวก และปรับขนาดได้
ในโพสต์นี้ เราจะพูดถึงคุณสมบัติใหม่ของ Kubeflow บน AWS v1.6.1 และไฮไลต์การผสานรวมที่สำคัญสามรายการที่รวมอยู่ในแพลตฟอร์มเดียวเพื่อให้คุณ::
- Infrastructure as Code (IaaC) โซลูชันแบบคลิกเดียวที่ทำให้การติดตั้ง Kubeflow แบบ end-to-end เป็นแบบอัตโนมัติ รวมถึงการสร้างคลัสเตอร์ EKS
- รองรับการฝึกอบรมแบบกระจายบน อเมซอน SageMaker การใช้ ผู้ดำเนินการ Amazon SageMaker สำหรับ Kubernetes (อค.)และ ส่วนประกอบ SageMaker สำหรับไปป์ไลน์ Kubeflow และในเครื่องบน Kubernetes โดยใช้ ผู้ดำเนินการฝึกอบรม Kubeflow. ลูกค้าหลายรายกำลังใช้ความสามารถนี้เพื่อสร้างสถาปัตยกรรมแมชชีนเลิร์นนิงแบบผสมผสาน โดยใช้ประโยชน์จากทั้งการประมวลผล Kubernetes สำหรับขั้นตอนการทดลองและ SageMaker เพื่อเรียกใช้ปริมาณงานระดับการผลิต
- การตรวจสอบและความสามารถในการสังเกตที่เพิ่มขึ้นสำหรับปริมาณงาน ML รวมถึง Amazon EKS, ตัววัด Kubeflow และบันทึกแอปพลิเคชันโดยใช้ Prometheus, Grafana และ อเมซอน คลาวด์วอตช์ การผสานรวม
กรณีการใช้งานในบล็อกนี้จะเน้นไปที่การผสานรวม SageMaker กับ Kubeflow บน AWS โดยเฉพาะ ซึ่งสามารถเพิ่มไปยังเวิร์กโฟลว์ Kubernetes ที่มีอยู่ของคุณ ซึ่งช่วยให้คุณสร้างสถาปัตยกรรมแมชชีนเลิร์นนิงแบบไฮบริดได้
Kubeflow บน AWS
Kubeflow บน AWS 1.6.1 มีเส้นทางที่ชัดเจนในการใช้ Kubeflow ด้วยการเพิ่มบริการ AWS ต่อไปนี้นอกเหนือจากความสามารถที่มีอยู่:
- การรวม SageMaker กับ Kubeflow เพื่อรันเวิร์กโฟลว์ ML แบบไฮบริดโดยใช้ SageMaker Operators สำหรับ Kubernetes (ACK) และ SageMaker Components สำหรับ Kubeflow Pipelines
- ตัวเลือกการปรับใช้อัตโนมัติได้รับการปรับปรุงและทำให้ง่ายขึ้นโดยใช้สคริปต์ Kustomize และแผนภูมิ Helm
- เพิ่มการรองรับ Infrastructure as Code (IaC) การปรับใช้เพียงคลิกเดียวสำหรับ Kubeflow บน AWS โดยใช้ Terraform สำหรับสิ่งที่มีอยู่ทั้งหมด ตัวเลือกการปรับใช้. สคริปต์นี้สร้างทรัพยากร AWS ต่อไปนี้โดยอัตโนมัติ:
- การสนับสนุนสำหรับ AWS PrivateLink สำหรับ Amazon S3 ช่วยให้ผู้ใช้ในภูมิภาคที่ไม่ใช่เชิงพาณิชย์สามารถเชื่อมต่อกับตำแหน่งข้อมูล S3 ของตนได้
- เพิ่มการรวมเข้ากับ บริการจัดการของ Amazon สำหรับ Prometheus (แอมป์)และ อเมซอน Managed Grafana เพื่อตรวจสอบเมตริกด้วย Kubeflow บน AWS
- อัปเดตคอนเทนเนอร์เซิร์ฟเวอร์โน้ตบุ๊ก Kubeflow ด้วยอิมเมจคอนเทนเนอร์การเรียนรู้เชิงลึกล่าสุดที่ใช้ TensorFlow 2.10.0 และ PyTorch 1.12.1
- การผสานรวมกับ AWS DLC เพื่อเรียกใช้แบบกระจาย การอบรม และ การอนุมาน ปริมาณงาน
ไดอะแกรมสถาปัตยกรรมต่อไปนี้เป็นสแนปชอตด่วนของการผสานรวมบริการทั้งหมด (รวมถึงที่กล่าวถึงแล้ว) ที่พร้อมใช้งานสำหรับการควบคุม Kubeflow และส่วนประกอบดาต้าเพลนใน Kubeflow บน AWS ระนาบควบคุม Kubeflow ติดตั้งอยู่ด้านบนของ Amazon EKS ซึ่งเป็นบริการคอนเทนเนอร์ที่มีการจัดการซึ่งใช้ในการเรียกใช้และปรับขนาดแอปพลิเคชัน Kubernetes ในระบบคลาวด์ การผสานรวมบริการของ AWS เหล่านี้ช่วยให้คุณสามารถแยกชิ้นส่วนที่สำคัญของ Kubeflow controlplane ออกจาก Kubernetes ซึ่งมอบการออกแบบที่ปลอดภัย ปรับขยายได้ ยืดหยุ่น และคุ้มค่า สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับมูลค่าที่การรวมบริการเหล่านี้เพิ่มผ่าน Kubeflow แบบโอเพ่นซอร์ส โปรดดูที่ สร้างและปรับใช้ระบบการเรียนรู้ของเครื่องที่ปรับขนาดได้บน Kubernetes ด้วย Kubeflow บน AWS.
เรามาพูดคุยในรายละเอียดเพิ่มเติมเกี่ยวกับวิธีที่ฟีเจอร์หลักของ Kubeflow บน AWS 1.6.1 มีประโยชน์ต่อองค์กรของคุณ
รายละเอียดฟีเจอร์ Kubeflow บน AWS
ด้วยการเปิดตัว Kubeflow 1.6.1 เราพยายามจัดหาเครื่องมือที่ดีขึ้นสำหรับลูกค้าประเภทต่างๆ ซึ่งทำให้ง่ายต่อการเริ่มต้นใช้งาน Kubeflow ไม่ว่าคุณจะเลือกตัวเลือกใด เครื่องมือเหล่านี้เป็นจุดเริ่มต้นที่ดีและสามารถปรับเปลี่ยนให้เหมาะกับความต้องการที่แท้จริงของคุณได้
ตัวเลือกการปรับใช้
เรามีตัวเลือกการปรับใช้ที่แตกต่างกันสำหรับกรณีการใช้งานของลูกค้าที่แตกต่างกัน ที่นี่ คุณสามารถเลือกบริการ AWS ที่คุณต้องการรวมการปรับใช้ Kubeflow ของคุณด้วย หากคุณตัดสินใจที่จะเปลี่ยนตัวเลือกการปรับใช้ในภายหลัง เราขอแนะนำให้คุณทำการติดตั้งใหม่สำหรับการปรับใช้ใหม่ มีตัวเลือกการปรับใช้ต่อไปนี้:
หากคุณต้องการปรับใช้ Kubeflow โดยมีการเปลี่ยนแปลงเพียงเล็กน้อย ให้พิจารณา วานิลลา ตัวเลือกการปรับใช้ ตัวเลือกการปรับใช้ที่มีอยู่ทั้งหมดสามารถติดตั้งได้โดยใช้ Kustomize, Helm หรือ Terraform
นอกจากนี้ เรายังมีการปรับใช้เสริมต่างๆ ที่สามารถติดตั้งบนตัวเลือกการปรับใช้ใดๆ เหล่านี้:
ตัวเลือกการติดตั้ง
หลังจากที่คุณได้ตัดสินใจว่าตัวเลือกการปรับใช้ใดที่เหมาะกับความต้องการของคุณมากที่สุด คุณสามารถเลือกวิธีที่คุณต้องการติดตั้งการปรับใช้เหล่านี้ได้ ในความพยายามที่จะให้บริการผู้เชี่ยวชาญและผู้มาใหม่ เรามีระบบอัตโนมัติและการกำหนดค่าในระดับที่แตกต่างกัน
ตัวเลือกที่ 1: Terraform (IaC)
สิ่งนี้จะสร้างคลัสเตอร์ EKS และทรัพยากรโครงสร้างพื้นฐาน AWS ที่เกี่ยวข้องทั้งหมด จากนั้นปรับใช้ Kubeflow ทั้งหมดในคำสั่งเดียวโดยใช้ Terraform ภายในนี้ใช้พิมพ์เขียว EKS และแผนภูมิ Helm
ตัวเลือกนี้มีข้อดีดังต่อไปนี้:
- ให้ความยืดหยุ่นแก่องค์กรในการปรับใช้ Amazon EKS และ Kubeflow ด้วยคำสั่งเดียวโดยไม่ต้องกังวลเกี่ยวกับการกำหนดค่าคอมโพเนนต์ Kubeflow ที่เฉพาะเจาะจง สิ่งนี้จะช่วยเร่งการประเมินเทคโนโลยี การสร้างต้นแบบ และวงจรชีวิตการพัฒนาผลิตภัณฑ์อย่างมาก ทำให้มีความยืดหยุ่นในการใช้โมดูลพื้นผิวและปรับเปลี่ยนให้ตรงกับความต้องการเฉพาะโครงการ
- ปัจจุบัน องค์กรหลายแห่งที่มี Terraform เป็นศูนย์กลางของกลยุทธ์ระบบคลาวด์สามารถใช้ Kubeflow บนโซลูชัน AWS Terraform เพื่อบรรลุเป้าหมายระบบคลาวด์ของตนได้
ตัวเลือกที่ 2: Kustomize หรือ Helm Charts:
ตัวเลือกนี้ช่วยให้คุณปรับใช้ Kubeflow ในกระบวนการสองขั้นตอน:
- สร้างทรัพยากร AWS เช่น Amazon EKS, Amazon RDS, Amazon S3 และ Amazon Cognito ผ่านสคริปต์อัตโนมัติที่รวมอยู่ในการแจกจ่าย AWS หรือทำตามด้วยตนเอง ขั้นตอนโดยขั้นตอนคู่มือ.
- ติดตั้งการปรับใช้ Kubeflow โดยใช้แผนภูมิ Helm หรือ Kustomize
ตัวเลือกนี้มีข้อดีดังต่อไปนี้:
- เป้าหมายหลักของตัวเลือกการติดตั้งนี้คือเพื่อให้การกำหนดค่า Kubernetes ที่เกี่ยวข้องกับ Kubeflow ดังนั้น คุณจึงสามารถเลือกสร้างหรือนำคลัสเตอร์ EKS ที่มีอยู่หรือทรัพยากรใดๆ ของ AWS ที่เกี่ยวข้อง เช่น Amazon RDS, Amazon S3 และ Amazon Cognito มาใช้ และกำหนดค่าและจัดการให้ทำงานร่วมกับ Kubeflow บน AWS
- การย้ายจากรายการ Kustomize Kubeflow แบบโอเพ่นซอร์สไปยังการกระจาย AWS Kubeflow นั้นง่ายกว่า
แผนภาพต่อไปนี้แสดงสถาปัตยกรรมของตัวเลือกทั้งสอง
การผสานรวมกับ SageMaker
SageMaker เป็นบริการที่มีการจัดการเต็มรูปแบบซึ่งออกแบบและปรับให้เหมาะสมโดยเฉพาะสำหรับการจัดการเวิร์กโฟลว์ ML ช่วยขจัดภาระการจัดการโครงสร้างพื้นฐานที่ไม่แตกต่างออกไป และขจัดความจำเป็นในการลงทุนด้านไอทีและ DevOps เพื่อจัดการคลัสเตอร์สำหรับการสร้างแบบจำลอง ML การฝึกอบรม และการอนุมาน
ลูกค้า AWS จำนวนมากที่มีข้อกำหนดด้านการพกพาหรือข้อจำกัดมาตรฐานภายในองค์กรใช้ Amazon EKS เพื่อตั้งค่าไปป์ไลน์ ML ที่ทำซ้ำได้ซึ่งเรียกใช้ปริมาณงานการฝึกอบรมและการอนุมาน อย่างไรก็ตาม สิ่งนี้ต้องการให้นักพัฒนาเขียนโค้ดแบบกำหนดเองเพื่อเพิ่มประสิทธิภาพโครงสร้างพื้นฐาน ML พื้นฐาน ให้มีความพร้อมใช้งานและความน่าเชื่อถือสูง และปฏิบัติตามข้อกำหนดด้านความปลอดภัยและข้อบังคับที่เหมาะสม ดังนั้น ลูกค้าเหล่านี้ต้องการใช้ SageMaker สำหรับโครงสร้างพื้นฐานที่มีการจัดการและปรับต้นทุนอย่างเหมาะสมสำหรับการฝึกอบรมโมเดลและการปรับใช้ และใช้ Kubernetes ต่อไปสำหรับการจัดระเบียบและไปป์ไลน์ ML เพื่อรักษามาตรฐานและความสะดวกในการพกพา
เพื่อตอบสนองความต้องการนี้ AWS อนุญาตให้คุณฝึก ปรับแต่ง และปรับใช้โมเดลใน SageMaker จาก Amazon EKS โดยใช้สองตัวเลือกต่อไปนี้:
- ตัวดำเนินการ ACK ของ Amazon SageMaker สำหรับ Kubernetes ซึ่งอิงตาม AWS Controllers สำหรับ Kubernetes (ACK) กรอบ ACK เป็นกลยุทธ์ของ AWS ที่นำมาตรฐานสำหรับการสร้างตัวควบคุมแบบกำหนดเองของ Kubernetes ซึ่งช่วยให้ผู้ใช้ Kubernetes สามารถจัดเตรียมทรัพยากร AWS เช่น ฐานข้อมูลหรือคิวข้อความได้ง่ายๆ โดยใช้ Kubernetes API SageMaker ACK Operator ช่วยให้นักพัฒนา ML และนักวิทยาศาสตร์ข้อมูลที่ใช้ Kubernetes เป็นแผงควบคุมในการฝึก ปรับแต่ง และปรับใช้โมเดล ML ใน SageMaker ได้ง่ายขึ้นโดยไม่ต้องลงชื่อเข้าใช้คอนโซล SageMaker
- พื้นที่ ส่วนประกอบ SageMaker สำหรับท่อส่ง Kubeflowซึ่งทำให้คุณสามารถรวม SageMaker เข้ากับความสามารถในการพกพาและการประสานของ Kubeflow Pipelines ด้วยส่วนประกอบของ SageMaker แต่ละงานในเวิร์กโฟลว์ไปป์ไลน์จะทำงานบน SageMaker แทนคลัสเตอร์ Kubernetes ในเครื่อง ซึ่งช่วยให้คุณสร้างและตรวจสอบการฝึกอบรม SageMaker ดั้งเดิม การปรับแต่ง การปรับใช้จุดสิ้นสุด และงานการแปลงเป็นชุดจาก Kubeflow Pipelines ของคุณ ด้วยเหตุนี้จึงช่วยให้คุณสามารถย้ายการประมวลผลทั้งหมด รวมถึงการประมวลผลข้อมูลและงานการฝึกอบรมจากคลัสเตอร์ Kubernetes ไปยังบริการที่มีการจัดการที่ปรับให้เหมาะกับการเรียนรู้ของเครื่องของ SageMaker
เริ่มต้นด้วย Kubeflow บน AWS v1.6.1 ตัวเลือกการปรับใช้ Kubeflow ที่มีอยู่ทั้งหมดจะรวมตัวเลือกการรวม Amazon SageMaker ทั้งสองเข้าด้วยกันตามค่าเริ่มต้นบนแพลตฟอร์มเดียว ซึ่งหมายความว่า ตอนนี้คุณสามารถส่งงาน SageMaker โดยใช้ตัวดำเนินการ SageMaker ACK จากเซิร์ฟเวอร์ Kubeflow Notebook เองได้โดยส่งทรัพยากร SageMaker แบบกำหนดเองหรือจากขั้นตอนไปป์ไลน์ Kubeflow โดยใช้ส่วนประกอบ SageMaker
ส่วนประกอบของ SageMaker มีสองเวอร์ชัน – โบโต3 (AWS SDK สำหรับ AWS SDK สำหรับ Python) ที่ใช้คอมโพเนนต์เวอร์ชัน 1 และคอมโพเนนต์เวอร์ชัน 8 ที่ใช้ SageMaker Operator สำหรับ K2s (ACK) ส่วนประกอบ SageMaker ใหม่เวอร์ชัน 2 รองรับ apis การฝึกอบรม SageMaker ล่าสุด และเราจะยังคงเพิ่มคุณลักษณะ SageMaker ให้กับส่วนประกอบเวอร์ชันนี้ต่อไป อย่างไรก็ตาม คุณมีความยืดหยุ่นในการรวมส่วนประกอบ Sagemaker เวอร์ชัน 2 สำหรับการฝึกอบรมและเวอร์ชัน 1 สำหรับคุณลักษณะ SageMaker อื่นๆ เช่น การปรับไฮเปอร์พารามิเตอร์ การประมวลผลงาน การโฮสต์ และอื่นๆ อีกมากมาย
การผสานรวมกับ Prometheus และ Grafana
Prometheus เป็นเครื่องมือรวมเมตริกโอเพนซอร์สที่คุณสามารถกำหนดค่าให้ทำงานบนคลัสเตอร์ Kubernetes เมื่อทำงานบนคลัสเตอร์ Kubernetes เซิร์ฟเวอร์ Prometheus หลักจะสแกนจุดสิ้นสุดของพ็อดเป็นระยะๆ
คอมโพเนนต์ Kubeflow เช่น Kubeflow Pipelines (KFP) และ Notebook ปล่อยเมตริก Prometheus เพื่ออนุญาตให้ตรวจสอบทรัพยากรคอมโพเนนต์ เช่น จำนวนการทดสอบที่กำลังทำงานอยู่หรือจำนวนโน้ตบุ๊ก
เมตริกเหล่านี้สามารถรวบรวมโดยเซิร์ฟเวอร์ Prometheus ที่ทำงานอยู่ในคลัสเตอร์ Kubernetes และสืบค้นโดยใช้ Prometheus Query Language (PromQL) สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับฟีเจอร์ที่ Prometheus รองรับ โปรดดูที่ เอกสารโพร.
การกระจาย Kubeflow บน AWS ให้การสนับสนุนสำหรับการรวมเข้ากับบริการที่มีการจัดการของ AWS ต่อไปนี้:
- Amazon Managed Prometheus (AMP) ซึ่งเป็น โพร- บริการตรวจสอบที่เข้ากันได้สำหรับโครงสร้างพื้นฐานของคอนเทนเนอร์และเมตริกแอปพลิเคชันสำหรับคอนเทนเนอร์ ซึ่งทำให้ลูกค้าสามารถตรวจสอบสภาพแวดล้อมของคอนเทนเนอร์ได้อย่างปลอดภัยตามขนาด เมื่อใช้ AMP คุณสามารถสร้างภาพ วิเคราะห์ และแจ้งเตือนเกี่ยวกับเมตริก บันทึก และการติดตามที่รวบรวมจากแหล่งข้อมูลหลายแห่งในระบบการสังเกตของคุณ รวมถึง AWS, ISV ของบุคคลที่สาม และทรัพยากรอื่นๆ ในพอร์ตโฟลิโอ IT ของคุณ
- Amazon Managed Grafana ซึ่งเป็นบริการการแสดงข้อมูลที่มีการจัดการเต็มรูปแบบและปลอดภัยโดยอิงจากโอเพ่นซอร์ส กราฟาน่า โครงการที่ช่วยให้ลูกค้าสามารถสืบค้น เชื่อมโยง และแสดงภาพเมตริกการดำเนินงาน บันทึก และการติดตามสำหรับแอปพลิเคชันของตนจากแหล่งข้อมูลหลายแหล่งได้ทันที Amazon Managed Grafana ลดภาระการจัดการการดำเนินงานของ Grafana โดยปรับขนาดโครงสร้างพื้นฐานของการประมวลผลและฐานข้อมูลโดยอัตโนมัติตามความต้องการใช้งานที่เพิ่มขึ้น พร้อมการอัปเดตเวอร์ชันอัตโนมัติและการแพตช์ความปลอดภัย
การกระจาย Kubeflow บน AWS ให้การสนับสนุนการผสานรวมของ Amazon Managed Service สำหรับ Prometheus และ Amazon Managed Grafana เพื่ออำนวยความสะดวกในการส่งผ่านข้อมูลและการแสดงภาพของเมตริก Prometheus อย่างปลอดภัยตามขนาด
เมตริกต่อไปนี้ถูกนำเข้าและแสดงเป็นภาพได้:
- เมตริกที่ปล่อยออกมาจากส่วนประกอบ Kubeflow เช่น Kubeflow Pipelines และเซิร์ฟเวอร์ Notebook
- KubeFlow เมตริกระนาบควบคุม
หากต้องการกำหนดค่า Amazon Managed Service สำหรับ Prometheus และ Amazon Managed Grafana สำหรับคลัสเตอร์ Kubeflow โปรดดูที่ ใช้ Prometheus, Amazon Managed Service สำหรับ Prometheus และ Amazon Managed Grafana เพื่อตรวจสอบเมตริกด้วย Kubeflow บน AWS.
ภาพรวมโซลูชัน
ในกรณีการใช้งานนี้ เราใช้การปรับใช้ Kubeflow vanilla โดยใช้ตัวเลือกการติดตั้ง Terraform เมื่อการติดตั้งเสร็จสิ้น เราเข้าสู่ระบบแดชบอร์ด Kubeflow จากแดชบอร์ด เราหมุนเซิร์ฟเวอร์โน้ตบุ๊ก Kubeflow Jupyter เพื่อสร้างไปป์ไลน์ Kubeflow ที่ใช้ SageMaker เพื่อเรียกใช้การฝึกอบรมแบบกระจายสำหรับโมเดลการจัดหมวดหมู่ภาพและจุดสิ้นสุด SageMaker สำหรับการปรับใช้โมเดล
เบื้องต้น
ตรวจสอบให้แน่ใจว่าคุณมีคุณสมบัติตรงตามข้อกำหนดเบื้องต้นต่อไปนี้:
- คุณมี บัญชี AWS.
- ตรวจสอบให้แน่ใจว่าคุณอยู่ในไฟล์
us-west-2
ภูมิภาคที่จะเรียกใช้ตัวอย่างนี้ - ใช้ Google Chrome เพื่อโต้ตอบกับ คอนโซลการจัดการ AWS และ Kubeflow
- ตรวจสอบให้แน่ใจว่าบัญชีของคุณมีขีดจำกัดประเภททรัพยากรการฝึกอบรม SageMaker สำหรับ ml.p3.2xlarge เพิ่มขึ้นเป็น 2 โดยใช้คอนโซลโควต้าบริการ
- หรือคุณสามารถใช้ AWS Cloud9ซึ่งเป็นสภาพแวดล้อมการพัฒนาแบบบูรณาการบนคลาวด์ (IDE) ที่ช่วยให้ทำงานทั้งหมดจากเว็บเบราว์เซอร์ของคุณ สำหรับคำแนะนำในการตั้งค่า โปรดดูที่ ตั้งค่า Cloud9 IDE. เลือก Ubuntu Server 18.04 เป็นแพลตฟอร์มในการตั้งค่า AWS Cloud9จากนั้นจากสภาพแวดล้อม AWS Cloud9 ของคุณ ให้เลือกเครื่องหมายบวกและเปิดเทอร์มินัลใหม่
คุณยังกำหนดค่าไฟล์ อินเทอร์เฟซบรรทัดคำสั่ง AWS AWS โปรไฟล์ (AWS CLI) ในการทำเช่นนั้น คุณต้องมี ID คีย์การเข้าถึงและคีย์การเข้าถึงลับของ AWS Identity และการจัดการการเข้าถึง (ฉัน) ผู้ใช้งาน บัญชีที่มีสิทธิ์ของผู้ดูแลระบบ (แนบนโยบายที่มีการจัดการที่มีอยู่) และการเข้าถึงแบบเป็นโปรแกรม ดูรหัสต่อไปนี้:
ตรวจสอบสิทธิ์ที่ cloud9 จะใช้ในการเรียกใช้ทรัพยากร AWS
ตรวจสอบจากผลลัพธ์ด้านล่างว่าคุณเห็น arn ของผู้ใช้ที่เป็นผู้ดูแลระบบที่คุณได้กำหนดค่าในโปรไฟล์ AWS CLI ในตัวอย่างนี้ มันคือ “kubeflow-user”
ติดตั้ง Amazon EKS และ Kubeflow บน AWS
หากต้องการติดตั้ง Amazon EKS และ Kubeflow บน AWS ให้ทำตามขั้นตอนต่อไปนี้:
- ตั้งค่าสภาพแวดล้อมของคุณสำหรับการปรับใช้ Kubeflow บน AWS:
- ปรับใช้ Kubeflow เวอร์ชันวานิลลาบน AWS และทรัพยากร AWS ที่เกี่ยวข้อง เช่น EKS โดยใช้ Terraform โปรดทราบว่าไดรฟ์ข้อมูล EBS ที่ใช้ใน EKS nodegroup จะไม่ได้รับการเข้ารหัสตามค่าเริ่มต้น:
ตั้งค่าสิทธิ์ Kubeflow
- เพิ่มสิทธิ์ให้กับ Notebook pod และ Pipeline component pod เพื่อทำการเรียก SageMaker, S3 และ IAM api โดยใช้
kubeflow_iam_permissions.sh
ต้นฉบับ - สร้างบทบาทการดำเนินการของ SageMaker เพื่อเปิดใช้งานงานฝึกอบรม SageMaker เพื่อเข้าถึงชุดข้อมูลการฝึกอบรมจากบริการ S3 โดยใช้
sagemaker_role.sh
ต้นฉบับ
เข้าถึงแดชบอร์ด Kubeflow
ในการเข้าถึงแดชบอร์ด Kubeflow ให้ทำตามขั้นตอนต่อไปนี้:
- คุณสามารถเรียกใช้แดชบอร์ด Kubeflow ในเครื่องในสภาพแวดล้อม Cloud9 โดยไม่ต้องเปิดเผย URL ของคุณไปยังอินเทอร์เน็ตสาธารณะโดยใช้คำสั่งด้านล่าง
- Choose ดูตัวอย่างการใช้งานแอปพลิเคชัน.
- เลือกไอคอนที่มุมแดชบอร์ด Kubeflow เพื่อเปิดเป็นแท็บแยกต่างหากใน Chrome
- ป้อนข้อมูลรับรองเริ่มต้น (
user@example.com/12341234
) เพื่อเข้าสู่แดชบอร์ด Kubeflow
ตั้งค่า Kubeflow บนสภาพแวดล้อม AWS
เมื่อคุณลงชื่อเข้าใช้แดชบอร์ด Kubeflow แล้ว ตรวจสอบให้แน่ใจว่าคุณมีเนมสเปซที่ถูกต้อง (kubeflow-user-example-com
) เลือก ทำตามขั้นตอนต่อไปนี้เพื่อตั้งค่า Kubeflow บนสภาพแวดล้อม AWS:
- บนแดชบอร์ด Kubeflow ให้เลือก โน๊ตบุ๊ค ในบานหน้าต่างนำทาง
- Choose สมุดบันทึกใหม่.
- สำหรับ Nameป้อน
aws-nb
. - สำหรับ รูปภาพ Jupyter Docket, เลือกภาพ
jupyter-pytorch:1.12.0-cpu-py38-ubuntu20.04-ec2-2022-09-20
(ล่าสุดมีjupyter-pytorch
รูปภาพ DLC) - สำหรับ ซีพียูป้อน
1
. - สำหรับ หน่วยความจำป้อน
5
. - สำหรับ GPUs, ปล่อยให้เป็น ไม่มี.
- อย่าทำการเปลี่ยนแปลงใด ๆ กับ พื้นที่ทำงาน และ ปริมาณข้อมูล ส่วน
- เลือก อนุญาตให้เข้าถึง Kubeflow Pipelines ใน การกำหนดค่า ส่วนและเลือกเปิดตัว
- ตรวจสอบว่าสมุดบันทึกของคุณสร้างสำเร็จแล้ว (อาจใช้เวลาสองสามนาที)
- Choose เชื่อมต่อ เพื่อเข้าสู่ระบบ JupyterLab
- โคลน repo โดยป้อน
https://github.com/aws-samples/eks-kubeflow-cloudformation-quick-start.git
ใน โคลน repo สนาม - Choose โคลน.
เรียกใช้ตัวอย่างการฝึกอบรมแบบกระจาย
หลังจากที่คุณตั้งค่าสมุดบันทึก Jupyter แล้ว คุณสามารถเรียกใช้การสาธิตทั้งหมดโดยใช้ขั้นตอนระดับสูงต่อไปนี้จากโฟลเดอร์ eks-kubeflow-cloudformation-quick-start/workshop/pytorch-distributed-training
ในที่เก็บโคลน:
- เรียกใช้สคริปต์การฝึกอบรม PyTorch Distributed Data Parallel (DDP) – อ้างถึงสคริปต์การฝึกอบรม PyTorch DDP
cifar10-distributed-gpu-final.py
ซึ่งรวมถึงเครือข่ายประสาทเทียมตัวอย่างและลอจิกเพื่อแจกจ่ายการฝึกอบรมบนคลัสเตอร์ CPU และ GPU แบบหลายโหนด - สร้างไปป์ไลน์ Kubeflow - เรียกใช้โน้ตบุ๊ก
STEP1.0_create_pipeline_k8s_sagemaker.ipynb
เพื่อสร้างไปป์ไลน์ที่รันและปรับใช้โมเดลบน SageMaker ตรวจสอบให้แน่ใจว่าคุณติดตั้งไลบรารี SageMaker เป็นส่วนหนึ่งของเซลล์โน้ตบุ๊กแรก และรีสตาร์ทเคอร์เนลก่อนที่จะเรียกใช้เซลล์โน้ตบุ๊กที่เหลือ - เรียกใช้ตำแหน่งข้อมูล SageMaker - เรียกใช้โน้ตบุ๊ก
STEP1.1_invoke_sagemaker_endpoint.ipynb
เพื่อเรียกใช้และทดสอบจุดสิ้นสุดการอนุมานโมเดลของ SageMaker ที่สร้างขึ้นในโน้ตบุ๊กก่อนหน้า
ในหัวข้อถัดไป เราจะพูดถึงแต่ละขั้นตอนเหล่านี้โดยละเอียด
เรียกใช้สคริปต์การฝึกอบรม PyTorch DDP
ในส่วนหนึ่งของการฝึกอบรมแบบกระจาย เราฝึกอบรมแบบจำลองการจัดหมวดหมู่ที่สร้างโดยโครงข่ายประสาทเทียมแบบง่ายที่ทำงานบนชุดข้อมูล CIFAR10 สคริปต์การฝึกอบรม cifar10-distributed-gpu-final.py
มีเฉพาะไลบรารีโอเพนซอร์สและสามารถทำงานได้ทั้งบนคลัสเตอร์การฝึกอบรม Kubernetes และ SageMaker บนอุปกรณ์ GPU หรืออินสแตนซ์ของ CPU มาดูแง่มุมที่สำคัญบางประการของสคริปต์การฝึกอบรมก่อนที่เราจะเรียกใช้ตัวอย่างสมุดบันทึกของเรา
เราใช้ torch.distributed
โมดูลซึ่งมีการสนับสนุน PyTorch และการสื่อสารแบบพื้นฐานสำหรับการขนานแบบหลายกระบวนการข้ามโหนดในคลัสเตอร์:
เราสร้างโมเดลการจำแนกรูปภาพอย่างง่ายโดยใช้การผสมผสานของเลเยอร์ Convolutional, Max Pooling และ Linear ซึ่ง relu
ฟังก์ชันการเปิดใช้งานถูกนำไปใช้ในการส่งต่อการฝึกโมเดล:
หากคลัสเตอร์การฝึกมี GPU สคริปต์จะเรียกใช้การฝึกบนอุปกรณ์ CUDA และตัวแปรอุปกรณ์จะเก็บอุปกรณ์ CUDA เริ่มต้นไว้:
ก่อนที่คุณจะรันการฝึกอบรมแบบกระจายโดยใช้ PyTorch DistributedDataParallel
ในการรันการประมวลผลแบบกระจายบนหลายโหนด คุณต้องเริ่มต้นสภาพแวดล้อมแบบกระจายโดยการเรียก init_process_group
. ซึ่งจะเริ่มต้นในแต่ละเครื่องของคลัสเตอร์การฝึกอบรม
เรายกตัวอย่างโมเดลลักษณนามและคัดลอกโมเดลไปยังอุปกรณ์เป้าหมาย หากเปิดใช้งานการฝึกอบรมแบบกระจายเพื่อทำงานบนหลายโหนด DistributedDataParallel
คลาสถูกใช้เป็นวัตถุห่อหุ้มรอบๆ วัตถุโมเดล ซึ่งช่วยให้การฝึกแบบกระจายแบบซิงโครนัสข้ามเครื่องหลายเครื่อง ข้อมูลอินพุตถูกแบ่งตามมิติแบทช์และวางแบบจำลองของโมเดลไว้ในแต่ละเครื่องและแต่ละอุปกรณ์ ดูรหัสต่อไปนี้:
สร้างไปป์ไลน์ Kubeflow
โน๊ตบุ๊คใช้ Kubeflow ไปป์ไลน์ SDK และชุดของแพ็คเกจ Python ที่ให้มาเพื่อระบุและเรียกใช้ไปป์ไลน์เวิร์กโฟลว์ ML ในฐานะส่วนหนึ่งของ SDK นี้ เราใช้ตัวตกแต่งแพ็คเกจภาษาเฉพาะโดเมน (DSL) dsl.pipeline
ซึ่งตกแต่งฟังก์ชัน Python เพื่อส่งคืนไปป์ไลน์
ไปป์ไลน์ Kubeflow ใช้คอมโพเนนต์ SageMaker V2 เพื่อส่งการฝึกอบรมไปยัง SageMaker โดยใช้ SageMaker ACK Operators การสร้างแบบจำลอง SageMaker และการปรับใช้แบบจำลองใช้ส่วนประกอบ SageMaker V1 ซึ่งเป็นส่วนประกอบ SageMaker ที่ใช้ Boto3 เราใช้ส่วนประกอบทั้งสองอย่างผสมกันในตัวอย่างนี้เพื่อแสดงให้เห็นถึงความยืดหยุ่นที่คุณเลือก
- โหลดส่วนประกอบ SageMaker โดยใช้รหัสต่อไปนี้:
ในโค้ดต่อไปนี้ เราสร้างไปป์ไลน์ Kubeflow ที่เรารันการฝึกอบรมแบบกระจายของ SageMaker โดยใช้สองอย่าง
ml.p3.2xlarge
ตัวอย่าง:หลังจากกำหนดไปป์ไลน์แล้ว คุณสามารถคอมไพล์ไปป์ไลน์ไปยังข้อกำหนด Argo YAML โดยใช้ Kubeflow Pipelines SDK
kfp.compiler
บรรจุุภัณฑ์. คุณสามารถเรียกใช้ไปป์ไลน์นี้โดยใช้ไคลเอนต์ Kubeflow Pipelines SDK ซึ่งเรียกจุดสิ้นสุดของบริการไปป์ไลน์และส่งผ่านส่วนหัวการรับรองความถูกต้องที่เหมาะสมจากโน้ตบุ๊ก ดูรหัสต่อไปนี้: - เลือก รายละเอียดการวิ่ง ลิงก์ใต้เซลล์สุดท้ายเพื่อดูไปป์ไลน์ Kubeflow ภาพหน้าจอต่อไปนี้แสดงรายละเอียดไปป์ไลน์ของเราสำหรับส่วนประกอบการฝึกอบรมและการปรับใช้ SageMaker
- เลือกขั้นตอนการฝึกอบรมและบน ท่อน แท็บ เลือกลิงก์บันทึก CloudWatch เพื่อเข้าถึงบันทึกของ SageMaker
ภาพหน้าจอต่อไปนี้แสดงบันทึก CloudWatch สำหรับอินสแตนซ์ ml.p3.2xlarge ทั้งสองอินสแตนซ์ - เลือกกลุ่มใดก็ได้เพื่อดูบันทึก
- จับภาพตำแหน่งข้อมูล SageMaker โดยเลือก Sagemaker – ปรับใช้โมเดล ขั้นตอนและคัดลอก
endpoint_name
ค่าสิ่งประดิษฐ์เอาต์พุต
เรียกใช้ตำแหน่งข้อมูล SageMaker
คอมพิวเตอร์พกพา STEP1.1_invoke_sagemaker_endpoint.ipynb
เรียกใช้จุดสิ้นสุดการอนุมานของ SageMaker ที่สร้างขึ้นในขั้นตอนก่อนหน้า ตรวจสอบให้แน่ใจว่าคุณอัปเดตชื่อปลายทาง:
ทำความสะอาด
ในการทำความสะอาดทรัพยากรของคุณ ให้ทำตามขั้นตอนต่อไปนี้:
- เรียกใช้คำสั่งต่อไปนี้ใน AWS Cloud9 เพื่อลบทรัพยากร AWS:
- ลบบทบาท IAM “
sagemakerrole
” โดยใช้คำสั่ง AWS CLI ต่อไปนี้: - ลบตำแหน่งข้อมูล SageMaker โดยใช้คำสั่ง AWS CLI ต่อไปนี้:
สรุป
ในโพสต์นี้ เราได้เน้นย้ำถึงคุณค่าที่ Kubeflow บน AWS 1.6.1 มอบให้ผ่านการผสานรวมบริการที่จัดการโดย AWS ดั้งเดิม เพื่อตอบสนองความต้องการของกรณีการใช้งาน AI และ ML ระดับองค์กร คุณสามารถเลือกจากตัวเลือกการปรับใช้มากมายเพื่อติดตั้ง Kubeflow บน AWS ด้วยการผสานรวมบริการต่างๆ โดยใช้ Terraform, Kustomize หรือ Helm กรณีการใช้งานในโพสต์นี้แสดงให้เห็นถึงการผสานรวม Kubeflow กับ SageMaker ที่ใช้คลัสเตอร์การฝึกอบรมที่มีการจัดการของ SageMaker เพื่อเรียกใช้การฝึกอบรมแบบกระจายสำหรับแบบจำลองการจัดหมวดหมู่ภาพและตำแหน่งข้อมูล SageMaker สำหรับการปรับใช้แบบจำลอง
เรายังจัดให้มี ตัวอย่างท่อส่งตัวอย่าง ที่ใช้ส่วนประกอบ SageMaker ล่าสุด คุณสามารถเรียกใช้งานได้โดยตรงจากแดชบอร์ด Kubeflow ไปป์ไลน์นี้ต้องการ ข้อมูล Amazon S3 และ บทบาท IAM การดำเนินการของ SageMaker เป็นอินพุตที่จำเป็น
หากต้องการเริ่มต้นใช้งาน Kubeflow บน AWS โปรดดูตัวเลือกการปรับใช้ที่ผสานรวมกับ AWS ที่มีให้ใน Kubeflow บน AWS. สามารถติดตาม ที่เก็บ AWS Labs เพื่อติดตามการมีส่วนร่วมของ AWS ทั้งหมดกับ Kubeflow นอกจากนี้คุณยังสามารถพบเราบน Kubeflow #AWS ช่องหย่อน; ความคิดเห็นของคุณจะช่วยให้เราจัดลำดับความสำคัญของฟีเจอร์ถัดไปเพื่อสนับสนุนโครงการ Kubeflow
เกี่ยวกับผู้แต่ง
กันวัลจิต คุรมี เป็นสถาปนิกโซลูชันอาวุโสที่ Amazon Web Services เขาทำงานร่วมกับลูกค้าของ AWS เพื่อให้คำแนะนำและความช่วยเหลือด้านเทคนิคเพื่อช่วยปรับปรุงมูลค่าของโซลูชันเมื่อใช้ AWS Kanwaljit เชี่ยวชาญในการช่วยเหลือลูกค้าด้วยแอพพลิเคชั่นการเรียนรู้แบบตู้คอนเทนเนอร์และแมชชีนเลิร์นนิง
การ์ติก กาลามาดี เป็นวิศวกรพัฒนาซอฟต์แวร์ที่ Amazon AI ขณะนี้มุ่งเน้นไปที่โครงการโอเพ่นซอร์สของ Machine Learning Kubernetes เช่น Kubeflow และ AWS SageMaker Controller สำหรับ k8s ในเวลาว่างฉันชอบเล่นเกม PC และเล่นซอกับ VR โดยใช้ Unity engine
ราหุล คาร์เซ เป็นวิศวกรพัฒนาซอฟต์แวร์ที่ Amazon Web Services งานของเขามุ่งเน้นไปที่การรวมบริการ AWS เข้ากับแพลตฟอร์ม ML Ops แบบคอนเทนเนอร์แบบโอเพ่นซอร์ส เพื่อปรับปรุงความสามารถในการปรับขนาด ความน่าเชื่อถือ และความปลอดภัย นอกเหนือจากการมุ่งเน้นไปที่คำขอคุณสมบัติต่างๆ ของลูกค้าแล้ว ราหุลยังสนุกกับการทดลองกับการพัฒนาเทคโนโลยีล่าสุดในภาคสนามอีกด้วย
- ขั้นสูง (300)
- AI
- ไอ อาร์ต
- เครื่องกำเนิดไออาร์ท
- หุ่นยนต์ไอ
- อเมซอน SageMaker
- ปัญญาประดิษฐ์
- ใบรับรองปัญญาประดิษฐ์
- ปัญญาประดิษฐ์ในการธนาคาร
- หุ่นยนต์ปัญญาประดิษฐ์
- หุ่นยนต์ปัญญาประดิษฐ์
- ซอฟต์แวร์ปัญญาประดิษฐ์
- AWS Machine Learning AWS
- blockchain
- การประชุม blockchain ai
- เหรียญอัจฉริยะ
- ปัญญาประดิษฐ์สนทนา
- การประชุม crypto ai
- ดัล-อี
- การเรียนรู้ลึก ๆ
- google ai
- KubeFlow
- เรียนรู้เครื่อง
- เพลโต
- เพลโตไอ
- เพลโตดาต้าอินเทลลิเจนซ์
- เกมเพลโต
- เพลโตดาต้า
- เพลโตเกม
- ขนาดไอ
- วากยสัมพันธ์
- ลมทะเล