การรันปริมาณงาน Machine Learning (ML) ด้วยคอนเทนเนอร์กำลังกลายเป็นเรื่องปกติ คอนเทนเนอร์สามารถสรุปได้อย่างสมบูรณ์ไม่เพียงแค่โค้ดการฝึกอบรมของคุณเท่านั้น แต่ยังรวมไปถึงการพึ่งพาทั้งหมดลงไปจนถึงไลบรารีฮาร์ดแวร์และไดรเวอร์อีกด้วย สิ่งที่คุณได้รับคือสภาพแวดล้อมการพัฒนา ML ที่มีความสอดคล้องและพกพาได้ เมื่อใช้คอนเทนเนอร์ การปรับขนาดบนคลัสเตอร์จะง่ายขึ้นมาก
ในช่วงปลายปี 2022 AWS ประกาศความพร้อมใช้งานทั่วไปของ อินสแตนซ์ Amazon EC2 Trn1 ขับเคลื่อนด้วย การฝึกอบรม AWS ตัวเร่งความเร็วซึ่งมีจุดประสงค์เพื่อการฝึกอบรมการเรียนรู้เชิงลึกที่มีประสิทธิภาพสูง อินสแตนซ์ Trn1 ช่วยประหยัดค่าใช้จ่ายในการฝึกอบรมได้มากถึง 50% เมื่อเทียบกับอินสแตนซ์อื่นๆ ที่เทียบเคียงได้ อเมซอน อีลาสติก คอมพิวท์ คลาวด์ อินสแตนซ์ (Amazon EC2) นอกจากนี้ AWS Neuron SDK เปิดตัวเพื่อปรับปรุงการเร่งความเร็วนี้ โดยให้เครื่องมือแก่นักพัฒนาในการโต้ตอบกับเทคโนโลยีนี้ เช่น การคอมไพล์ รันไทม์ และโปรไฟล์ เพื่อให้ได้การฝึกโมเดลที่มีประสิทธิภาพสูงและคุ้มค่า
บริการ Amazon Elastic Container (Amazon ECS) คือบริการประสานคอนเทนเนอร์ที่มีการจัดการเต็มรูปแบบ ซึ่งช่วยให้การปรับใช้งาน การจัดการ และการปรับขนาดแอปพลิเคชันในคอนเทนเนอร์ของคุณง่ายขึ้น เพียงอธิบายแอปพลิเคชันของคุณและทรัพยากรที่จำเป็น จากนั้น Amazon ECS จะเปิดตัว ตรวจสอบ และปรับขนาดแอปพลิเคชันของคุณผ่านตัวเลือกการประมวลผลที่ยืดหยุ่นพร้อมการผสานรวมอัตโนมัติกับบริการ AWS ที่รองรับอื่นๆ ที่แอปพลิเคชันของคุณต้องการ
ในโพสต์นี้ เราจะแสดงวิธีรันงานการฝึกอบรม ML ในคอนเทนเนอร์โดยใช้ Amazon ECS เพื่อปรับใช้ จัดการ และปรับขนาดปริมาณงาน ML ของคุณ
ภาพรวมโซลูชัน
เราแนะนำคุณผ่านขั้นตอนระดับสูงดังต่อไปนี้:
- จัดเตรียมคลัสเตอร์ ECS ของอินสแตนซ์ Trn1 ด้วย การก่อตัวของ AWS Cloud.
- สร้างคอนเทนเนอร์อิมเมจแบบกำหนดเองด้วย Neuron SDK แล้วส่งไป การลงทะเบียน Amazon Elastic Container (อเมซอน อีซีอาร์).
- สร้างคำจำกัดความของงานเพื่อกำหนดงานการฝึก ML ที่จะรันโดย Amazon ECS
- รันงาน ML บน Amazon ECS
เบื้องต้น
เพื่อปฏิบัติตาม ความคุ้นเคยกับบริการหลักของ AWS เช่น Amazon EC2 และ Amazon ECS ถือเป็นนัย
จัดเตรียมคลัสเตอร์ ECS ของอินสแตนซ์ Trn1
ในการเริ่มต้นให้เปิดสิ่งที่ให้ไว้ เทมเพลต CloudFormationซึ่งจะจัดเตรียมทรัพยากรที่จำเป็น เช่น VPC, คลัสเตอร์ ECS และอินสแตนซ์ EC2 Trainium
เราใช้ Neuron SDK เพื่อรันปริมาณงานการเรียนรู้เชิงลึก การอนุมาน AWS และอินสแตนซ์ที่ใช้ Trainium โดยจะสนับสนุนคุณในวงจรการพัฒนา ML แบบครบวงจรเพื่อสร้างโมเดลใหม่ ปรับให้เหมาะสม จากนั้นปรับใช้สำหรับการใช้งานจริง หากต้องการฝึกโมเดลของคุณด้วย Trainium คุณจะต้องติดตั้ง Neuron SDK บนอินสแตนซ์ EC2 ซึ่งงาน ECS จะทำงานเพื่อแมป NeuronDevice ที่เชื่อมโยงกับฮาร์ดแวร์ รวมถึงอิมเมจ Docker ที่จะถูกส่งไปยัง Amazon ECR เพื่อเข้าถึงคำสั่ง เพื่อฝึกโมเดลของคุณ
Amazon Linux 2 หรือ Ubuntu 20 เวอร์ชันมาตรฐานไม่ได้ติดตั้งไดรเวอร์ AWS Neuron ไว้ด้วย ดังนั้นเราจึงมีสองตัวเลือกที่แตกต่างกัน
ตัวเลือกแรกคือใช้ Deep Learning Amazon Machine Image (DLAMI) ที่ติดตั้ง Neuron SDK ไว้แล้ว มีตัวอย่างให้ดูที่ repo GitHub. คุณสามารถเลือก DLAMI ตาม ระบบปฏิบัติการ. จากนั้นรันคำสั่งต่อไปนี้เพื่อรับ AMI ID:
ผลลัพธ์จะเป็นดังนี้:
ami-06c40dd4f80434809
AMI ID นี้สามารถเปลี่ยนแปลงได้เมื่อเวลาผ่านไป ดังนั้นโปรดใช้คำสั่งเพื่อรับ AMI ID ที่ถูกต้อง
ตอนนี้คุณสามารถเปลี่ยน AMI ID นี้ในสคริปต์ CloudFormation และใช้ Neuron SDK ที่พร้อมใช้งานได้ เมื่อต้องการทำเช่นนี้ ให้มองหา EcsAmiId
in Parameters
:
ตัวเลือกที่สองคือการสร้างอินสแตนซ์ที่กรอก userdata
ฟิลด์ระหว่างการสร้างสแต็ก คุณไม่จำเป็นต้องติดตั้งเนื่องจาก CloudFormation จะตั้งค่านี้ สำหรับข้อมูลเพิ่มเติม โปรดดูที่ คู่มือการตั้งค่าเซลล์ประสาท.
สำหรับโพสต์นี้ เราใช้ตัวเลือกที่ 2 ในกรณีที่คุณต้องการใช้รูปภาพที่กำหนดเอง ทำตามขั้นตอนต่อไปนี้:
- เปิดเทมเพลต CloudFormation ที่ให้มา
- สำหรับ ชื่อคีย์ป้อนชื่อคู่คีย์ที่คุณต้องการ จากนั้นระบบจะโหลดพารามิเตอร์ล่วงหน้า สำหรับโพสต์นี้เราใช้
trainium-key
. - ป้อนชื่อสำหรับสแต็กของคุณ
- หากคุณกำลังวิ่งอยู่ใน
us-east-1
ภูมิภาค คุณสามารถเก็บค่าไว้ได้ ชื่อ ALB และ AZID ตามค่าเริ่มต้น
หากต้องการตรวจสอบว่า Availability Zone ใดในภูมิภาคที่มี Trn1 ให้รันคำสั่งต่อไปนี้:
- Choose ถัดไป และสร้างสแต็กให้เสร็จสิ้น
เมื่อสแต็กเสร็จสมบูรณ์ คุณสามารถย้ายไปยังขั้นตอนถัดไปได้
เตรียมและพุชอิมเมจ ECR ด้วย Neuron SDK
Amazon ECR คือรีจีสทรีคอนเทนเนอร์ที่มีการจัดการเต็มรูปแบบซึ่งมีการโฮสต์ประสิทธิภาพสูง ดังนั้นคุณจึงสามารถปรับใช้อิมเมจและอาร์ติแฟกต์ของแอปพลิเคชันได้อย่างน่าเชื่อถือทุกที่ เราใช้ Amazon ECR เพื่อจัดเก็บอิมเมจ Docker แบบกำหนดเองซึ่งประกอบด้วยสคริปต์และแพ็คเกจ Neuron ที่จำเป็นในการฝึกโมเดลด้วยงาน ECS ที่ทำงานบนอินสแตนซ์ Trn1 คุณสามารถสร้างที่เก็บ ECR โดยใช้ไฟล์ อินเทอร์เฟซบรรทัดคำสั่ง AWS AWS (AWS CLI) หรือ คอนโซลการจัดการ AWS. สำหรับโพสต์นี้ เราใช้คอนโซล ทำตามขั้นตอนต่อไปนี้:
- บนคอนโซล Amazon ECR ให้สร้างพื้นที่เก็บข้อมูลใหม่
- สำหรับ การตั้งค่าการมองเห็น¸ เลือก ส่วนตัว.
- สำหรับ ชื่อที่เก็บ, ป้อนชื่อ
- Choose สร้างที่เก็บ.
ตอนนี้คุณมีพื้นที่เก็บข้อมูลแล้ว มาสร้างและพุชอิมเมจกัน ซึ่งสามารถสร้างในเครื่อง (ในแล็ปท็อปของคุณ) หรือใน AWS Cloud9 สิ่งแวดล้อม. เรากำลังฝึกอบรมโมเดล Perceptron หลายชั้น (MLP) สำหรับรหัสต้นฉบับ โปรดดูที่ บทช่วยสอนการฝึกอบรม Perceptron หลายชั้น.
สามารถใช้งานร่วมกับ Neuron ได้แล้ว ดังนั้นคุณไม่จำเป็นต้องเปลี่ยนโค้ดใดๆ
- 5 สร้าง a ไฟล์นักเทียบท่า ที่มีคำสั่งให้ติดตั้ง Neuron SDK และสคริปต์การฝึก:
- เนื้อหาที่ขับเคลื่อนด้วย SEO และการเผยแพร่ประชาสัมพันธ์ รับการขยายวันนี้
- เพลโตไอสตรีม. ข้อมูลอัจฉริยะ Web3 ขยายความรู้ เข้าถึงได้ที่นี่.
- การสร้างอนาคตโดย Adryenn Ashley เข้าถึงได้ที่นี่.
- ซื้อและขายหุ้นในบริษัท PRE-IPO ด้วย PREIPO® เข้าถึงได้ที่นี่.
- ที่มา: https://aws.amazon.com/blogs/machine-learning/scale-your-machine-learning-workloads-on-amazon-ecs-powered-by-aws-trainium-instances/