เร่งความเร็ว PyTorch ด้วย DeepSpeed ​​เพื่อฝึกโมเดลภาษาขนาดใหญ่ด้วยอินสแตนซ์ DL1 EC2 ที่ใช้ Intel Habana Gaudi | บริการเว็บอเมซอน

เร่งความเร็ว PyTorch ด้วย DeepSpeed ​​เพื่อฝึกโมเดลภาษาขนาดใหญ่ด้วยอินสแตนซ์ DL1 EC2 ที่ใช้ Intel Habana Gaudi | บริการเว็บอเมซอน

การฝึกอบรมโมเดลภาษาขนาดใหญ่ (LLM) ที่มีพารามิเตอร์หลายพันล้านตัวอาจเป็นเรื่องที่ท้าทาย นอกเหนือจากการออกแบบสถาปัตยกรรมแบบจำลองแล้ว นักวิจัยจำเป็นต้องตั้งค่าเทคนิคการฝึกอบรมที่ล้ำสมัยสำหรับการฝึกอบรมแบบกระจาย เช่น การสนับสนุนความแม่นยำแบบผสม การสะสมการไล่ระดับสี และการตรวจสอบ ด้วยโมเดลขนาดใหญ่ การตั้งค่าการฝึกจะท้าทายยิ่งขึ้น เนื่องจากหน่วยความจำที่มีอยู่ในอุปกรณ์เร่งความเร็วเครื่องเดียวจะจำกัดขนาดของโมเดลที่ฝึกโดยใช้ข้อมูลแบบขนานเท่านั้น และการใช้การฝึกแบบขนานของโมเดลจำเป็นต้องมีการปรับเปลี่ยนระดับเพิ่มเติมในโค้ดการฝึก ห้องสมุดเช่น ความเร็วลึก (ไลบรารีการปรับแต่งการเรียนรู้เชิงลึกแบบโอเพ่นซอร์สสำหรับ PyTorch) จัดการกับความท้าทายเหล่านี้ และสามารถช่วยเร่งการพัฒนาและฝึกอบรมโมเดล

ในโพสต์นี้ เราได้จัดเตรียมการฝึกอบรมเกี่ยวกับ Intel Habana Gaudi-based อเมซอน อีลาสติก คอมพิวท์ คลาวด์ (อเมซอน อีซี2) DL1 อินสแตนซ์และประเมินประโยชน์ของการใช้เฟรมเวิร์กการปรับขนาด เช่น DeepSpeed เรานำเสนอผลการปรับขนาดสำหรับรุ่นหม้อแปลงชนิดเข้ารหัส (BERT ที่มีพารามิเตอร์ 340 ล้านถึง 1.5 พันล้านตัว) สำหรับโมเดล 1.5 พันล้านพารามิเตอร์ เราบรรลุประสิทธิภาพการปรับขนาด 82.7% ใน 128 ตัวเร่งความเร็ว (16 dl1.24xlarge อินสแตนซ์) โดยใช้ ดีพสปีด ซีโร การเพิ่มประสิทธิภาพขั้นที่ 1 สถานะเครื่องมือเพิ่มประสิทธิภาพถูกแบ่งพาร์ติชันโดย DeepSpeed ​​เพื่อฝึกโมเดลขนาดใหญ่โดยใช้กระบวนทัศน์คู่ขนานของข้อมูล วิธีการนี้ได้รับการขยายเพื่อฝึกโมเดล 5 พันล้านพารามิเตอร์โดยใช้ข้อมูลคู่ขนาน เรายังใช้การสนับสนุนแบบเนทีฟของ Gaudi สำหรับประเภทข้อมูล BF16 สำหรับขนาดหน่วยความจำที่ลดลงและเพิ่มประสิทธิภาพการฝึกอบรมเมื่อเทียบกับการใช้ประเภทข้อมูล FP32 เป็นผลให้เราบรรลุการบรรจบกันของโมเดลก่อนการฝึกอบรม (ระยะที่ 1) ภายใน 16 ชั่วโมง (เป้าหมายของเราคือการฝึกโมเดลขนาดใหญ่ภายในหนึ่งวัน) สำหรับโมเดล BERT 1.5 พันล้านพารามิเตอร์โดยใช้ ชุดข้อมูล wikicorpus

การตั้งค่าการฝึกอบรม

เราจัดเตรียมคลัสเตอร์การประมวลผลที่มีการจัดการซึ่งประกอบด้วยอินสแตนซ์ 16 dl1.24xlarge โดยใช้ ชุด AWS. เราได้พัฒนา การประชุมเชิงปฏิบัติการ AWS Batch ที่แสดงขั้นตอนในการตั้งค่าคลัสเตอร์การฝึกอบรมแบบกระจายด้วย AWS Batch แต่ละอินสแตนซ์ dl1.24xlarge มีตัวเร่งความเร็ว Habana Gaudi แปดตัว โดยแต่ละตัวมีหน่วยความจำ 32 GB และเครือข่าย RoCE แบบเมชเต็มรูปแบบระหว่างการ์ดที่มีแบนด์วิดท์การเชื่อมต่อระหว่างกันแบบสองทิศทางรวม 700 Gbps ต่อตัว (ดู อินสแตนซ์ Amazon EC2 DL1 Deep Dive สำหรับข้อมูลเพิ่มเติม). คลัสเตอร์ dl1.24xlarge ยังใช้สี่ อะแดปเตอร์ AWS Elastic Fabric (EFA) โดยมีการเชื่อมต่อระหว่างโหนดทั้งหมด 400 Gbps

เวิร์กชอปการฝึกอบรมแบบกระจายจะแสดงขั้นตอนในการตั้งค่าคลัสเตอร์การฝึกอบรมแบบกระจาย การประชุมเชิงปฏิบัติการแสดงการตั้งค่าการฝึกอบรมแบบกระจายโดยใช้ AWS Batch และโดยเฉพาะอย่างยิ่ง คุณสมบัติงานแบบขนานหลายโหนดเพื่อเปิดใช้งานการฝึกอบรมในคอนเทนเนอร์ขนาดใหญ่บนคลัสเตอร์ที่มีการจัดการเต็มรูปแบบ โดยเฉพาะอย่างยิ่ง สภาพแวดล้อมการประมวลผล AWS Batch ที่มีการจัดการเต็มรูปแบบนั้นถูกสร้างขึ้นด้วยอินสแตนซ์ DL1 คอนเทนเนอร์ถูกดึงออกมาจาก การลงทะเบียน Amazon Elastic Container (Amazon ECR) และเปิดใช้งานโดยอัตโนมัติในอินสแตนซ์ในคลัสเตอร์ตามข้อกำหนดงานแบบขนานหลายโหนด การประชุมเชิงปฏิบัติการสรุปโดยการเรียกใช้การฝึกอบรมแบบขนานข้อมูลหลายโหนดหลาย HPU ของโมเดล BERT (340 ล้านถึง 1.5 พันล้านพารามิเตอร์) โดยใช้ PyTorch และ DeepSpeed

BERT 1.5B การฝึกล่วงหน้าด้วย DeepSpeed

บานา ไซแนปส์เอไอ เวอร์ชัน 1.5 และ v1.6 รองรับการปรับแต่ง DeepSpeed ​​ZeRO1 เดอะ ทางแยก Habana ของที่เก็บ DeepSpeed ​​GitHub รวมถึงการดัดแปลงที่จำเป็นเพื่อรองรับตัวเร่ง Gaudi มีการสนับสนุนเต็มรูปแบบของข้อมูลแบบขนานแบบกระจาย (หลายการ์ด หลายอินสแตนซ์) การเพิ่มประสิทธิภาพ ZeRO1 และประเภทข้อมูล BF16

คุณสมบัติทั้งหมดนี้เปิดใช้งานบน ที่เก็บข้อมูลอ้างอิงรุ่น BERT 1.5Bซึ่งแนะนำโมเดลเอนโค้ดเดอร์แบบสองทิศทาง 48 เลเยอร์ 1600 มิติและ 25 หัว ซึ่งได้มาจากการปรับใช้ BERT พื้นที่เก็บข้อมูลยังมีการใช้โมเดลพื้นฐาน BERT Large: สถาปัตยกรรมโครงข่ายประสาทเทียม 24 เลเยอร์ 1024 ซ่อน 16 หัว 340 ล้านพารามิเตอร์ สคริปต์การสร้างแบบจำลองก่อนการฝึกอบรมได้มาจาก ที่เก็บ NVIDIA Deep Learning Examples เพื่อดาวน์โหลดข้อมูล wikicorpus_en ประมวลผลข้อมูลดิบล่วงหน้าเป็นโทเค็น และแบ่งข้อมูลออกเป็นชุดข้อมูล h5 ที่เล็กลงสำหรับการฝึกแบบกระจายข้อมูลแบบขนาน คุณสามารถนำแนวทางทั่วไปนี้ไปใช้ในการฝึกสถาปัตยกรรมโมเดล PyTorch ที่กำหนดเองโดยใช้ชุดข้อมูลของคุณโดยใช้อินสแตนซ์ DL1

ผลการปรับขนาดก่อนการฝึกอบรม (ระยะที่ 1)

สำหรับการฝึกอบรมโมเดลขนาดใหญ่ล่วงหน้า เรามุ่งเน้นไปที่สองด้านของโซลูชันเป็นหลัก ได้แก่ ประสิทธิภาพการฝึกอบรมที่วัดได้จากเวลาในการฝึกอบรม และความคุ้มค่าในการมาถึงโซลูชันที่ครบวงจร ต่อไป เราจะลงลึกในเมตริกทั้งสองนี้ด้วยตัวอย่างก่อนการฝึก BERT 1.5B

เพิ่มประสิทธิภาพและเวลาในการฝึกอบรม

เราเริ่มต้นด้วยการวัดประสิทธิภาพของการใช้งาน BERT Large เป็นพื้นฐานสำหรับความสามารถในการปรับขนาด ตารางต่อไปนี้แสดงปริมาณงานที่วัดได้ของลำดับต่อวินาทีจากอินสแตนซ์ 1-8 dl1.24xlarge (ที่มีอุปกรณ์เร่งความเร็วแปดตัวต่ออินสแตนซ์) ด้วยการใช้ทรูพุตแบบอินสแตนซ์เดียวเป็นพื้นฐาน เราวัดประสิทธิภาพของการปรับสเกลในหลายอินสแตนซ์ ซึ่งเป็นเครื่องมือสำคัญในการทำความเข้าใจเมตริกการฝึกอบรมด้านประสิทธิภาพด้านราคา

จำนวนอินสแตนซ์ จำนวนตัวเร่งความเร็ว ลำดับต่อวินาที ลำดับต่อวินาทีต่อตัวเร่งความเร็ว ประสิทธิภาพการปรับขนาด
1 8 1,379.76 172.47 100.0%
2 16 2,705.57 169.10 98.04%
4 32 5,291.58 165.36 95.88%
8 64 9,977.54 155.90 90.39%

รูปต่อไปนี้แสดงประสิทธิภาพการปรับสเกล

เร่งความเร็ว PyTorch ด้วย DeepSpeed ​​เพื่อฝึกฝนโมเดลภาษาขนาดใหญ่ด้วยอินสแตนซ์ DL1 EC2 ที่ใช้ Intel Habana Gaudi Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.

สำหรับ BERT 1.5B เราได้แก้ไขไฮเปอร์พารามิเตอร์สำหรับโมเดลในที่เก็บข้อมูลอ้างอิงเพื่อรับประกันการบรรจบกัน ขนาดแบตช์ที่มีประสิทธิภาพต่อตัวเร่งถูกกำหนดเป็น 384 (สำหรับการใช้หน่วยความจำสูงสุด) โดยมีไมโครแบทช์ 16 ต่อขั้นและ 24 ขั้นของการสะสมเกรเดียนต์ อัตราการเรียนรู้ 0.0015 และ 0.003 ใช้สำหรับ 8 และ 16 โหนดตามลำดับ ด้วยการกำหนดค่าเหล่านี้ เราบรรลุการบรรจบกันของการฝึกล่วงหน้าเฟส 1 ของ BERT 1.5B ในอินสแตนซ์ 8 dl1.24xlarge (64 ตัวเร่งความเร็ว) ในเวลาประมาณ 25 ชั่วโมง และ 15 ชั่วโมงใน 16 dl1.24xlarge อินสแตนซ์ (128 ตัวเร่งความเร็ว) รูปต่อไปนี้แสดงการสูญเสียโดยเฉลี่ยตามฟังก์ชันของจำนวนช่วงเวลาการฝึก ขณะที่เราเพิ่มจำนวนตัวเร่งความเร็ว

เร่งความเร็ว PyTorch ด้วย DeepSpeed ​​เพื่อฝึกฝนโมเดลภาษาขนาดใหญ่ด้วยอินสแตนซ์ DL1 EC2 ที่ใช้ Intel Habana Gaudi Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.

ด้วยการกำหนดค่าที่อธิบายไว้ก่อนหน้านี้ เราได้รับประสิทธิภาพการปรับขนาดที่แข็งแกร่ง 85% ด้วยตัวเร่งความเร็ว 64 ตัว และ 83% ด้วยตัวเร่งความเร็ว 128 ตัว จากพื้นฐานที่มีตัวเร่งความเร็ว 8 ตัวในอินสแตนซ์เดียว ตารางต่อไปนี้สรุปพารามิเตอร์

จำนวนอินสแตนซ์ จำนวนตัวเร่งความเร็ว ลำดับต่อวินาที ลำดับต่อวินาทีต่อตัวเร่งความเร็ว ประสิทธิภาพการปรับขนาด
1 8 276.66 34.58 100.0%
8 64 1,883.63 29.43 85.1%
16 128 3,659.15 28.59 82.7%

รูปต่อไปนี้แสดงประสิทธิภาพการปรับสเกล

เร่งความเร็ว PyTorch ด้วย DeepSpeed ​​เพื่อฝึกฝนโมเดลภาษาขนาดใหญ่ด้วยอินสแตนซ์ DL1 EC2 ที่ใช้ Intel Habana Gaudi Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.

สรุป

ในโพสต์นี้ เราได้ประเมินการรองรับ DeepSpeed ​​โดย Habana SynapseAI v1.5/v1.6 และวิธีที่ช่วยขยายการฝึกอบรม LLM บนเครื่องเร่ง Habana Gaudi การฝึกอบรมล่วงหน้าสำหรับโมเดล BERT 1.5 พันล้านพารามิเตอร์ใช้เวลา 16 ชั่วโมงในการรวมเข้ากับคลัสเตอร์ของ Gaudi Accelerator 128 ตัว โดยมีสเกลที่แข็งแกร่ง 85% เราขอแนะนำให้คุณดูสถาปัตยกรรมที่แสดงให้เห็นใน การประชุมเชิงปฏิบัติการ AWS และพิจารณานำไปใช้เพื่อฝึกสถาปัตยกรรมโมเดล PyTorch แบบกำหนดเองโดยใช้อินสแตนซ์ DL1


เกี่ยวกับผู้แต่ง

เร่งความเร็ว PyTorch ด้วย DeepSpeed ​​เพื่อฝึกฝนโมเดลภาษาขนาดใหญ่ด้วยอินสแตนซ์ DL1 EC2 ที่ใช้ Intel Habana Gaudi Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.มหาเทวัน บาละสุบรามาเนียม เป็น Principal Solutions Architect for Autonomous Computing ด้วยประสบการณ์เกือบ 20 ปีในด้านการเรียนรู้เชิงลึกที่สร้างและปรับใช้ระบบดิจิทัลสำหรับระบบอุตสาหกรรมในขนาดต่างๆ Mahadevan สำเร็จการศึกษาระดับปริญญาเอกสาขาวิศวกรรมเครื่องกลจากสถาบันเทคโนโลยีแมสซาชูเซตส์ และมีสิทธิบัตรและสิ่งพิมพ์มากกว่า 25 รายการให้เครดิตของเขา

เร่งความเร็ว PyTorch ด้วย DeepSpeed ​​เพื่อฝึกฝนโมเดลภาษาขนาดใหญ่ด้วยอินสแตนซ์ DL1 EC2 ที่ใช้ Intel Habana Gaudi Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.RJ เป็นวิศวกรในทีม Search M5 ซึ่งเป็นผู้นำในการสร้างระบบการเรียนรู้เชิงลึกขนาดใหญ่สำหรับการฝึกอบรมและการอนุมาน นอกเวลางาน เขาสำรวจอาหารประเภทต่างๆ และเล่นกีฬาแร็กเก็ต

เร่งความเร็ว PyTorch ด้วย DeepSpeed ​​เพื่อฝึกฝนโมเดลภาษาขนาดใหญ่ด้วยอินสแตนซ์ DL1 EC2 ที่ใช้ Intel Habana Gaudi Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.ซุนดาร์ รังคนาธาน เป็นหัวหน้าฝ่ายพัฒนาธุรกิจ ML Frameworks ในทีม Amazon EC2 เขามุ่งเน้นไปที่ปริมาณงาน ML ขนาดใหญ่ในบริการต่างๆ ของ AWS เช่น Amazon EKS, Amazon ECS, Elastic Fabric Adapter, AWS Batch และ Amazon SageMaker ประสบการณ์ของเขารวมถึงบทบาทความเป็นผู้นำในการจัดการผลิตภัณฑ์และการพัฒนาผลิตภัณฑ์ที่ NetApp, Micron Technology, Qualcomm และ Mentor Graphics

เร่งความเร็ว PyTorch ด้วย DeepSpeed ​​เพื่อฝึกฝนโมเดลภาษาขนาดใหญ่ด้วยอินสแตนซ์ DL1 EC2 ที่ใช้ Intel Habana Gaudi Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.อภินันทน์ ปัตนี เป็นวิศวกรซอฟต์แวร์อาวุโสที่ Amazon Search เขามุ่งเน้นไปที่การสร้างระบบและเครื่องมือสำหรับการฝึกอบรมการเรียนรู้เชิงลึกแบบกระจายที่ปรับขนาดได้และการอนุมานแบบเรียลไทม์

เร่งความเร็ว PyTorch ด้วย DeepSpeed ​​เพื่อฝึกฝนโมเดลภาษาขนาดใหญ่ด้วยอินสแตนซ์ DL1 EC2 ที่ใช้ Intel Habana Gaudi Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.ปิแอร์-อีฟ อากีลันตี เป็นหัวหน้าฝ่ายโซลูชัน Frameworks ML ที่ Amazon Web Services ซึ่งเขาช่วยพัฒนาโซลูชัน ML Frameworks บนระบบคลาวด์ที่ดีที่สุดในอุตสาหกรรม ภูมิหลังของเขาคือการทำงานด้านคอมพิวเตอร์ประสิทธิภาพสูง และก่อนที่จะเข้าร่วม AWS นั้น Pierre-Yves เคยทำงานในอุตสาหกรรมน้ำมันและก๊าซมาก่อน ปิแอร์-อีฟส์มีพื้นเพมาจากฝรั่งเศสและสำเร็จการศึกษาระดับปริญญาเอก ในวิทยาการคอมพิวเตอร์จากมหาวิทยาลัยลีล

ประทับเวลา:

เพิ่มเติมจาก AWS Machine Learning AWS

ตรวจสอบเอกสารอัตโนมัติและตรวจจับการฉ้อโกงในกระบวนการพิจารณาสินเชื่อที่อยู่อาศัยโดยใช้บริการ AWS AI: ตอนที่ 1 | บริการเว็บอเมซอน

โหนดต้นทาง: 1839931
ประทับเวลา: May 24, 2023

Amazon Q Business และ Amazon Q ใน QuickSight ช่วยให้พนักงานขับเคลื่อนข้อมูลได้มากขึ้น และตัดสินใจได้ดีขึ้นและเร็วขึ้นโดยใช้ความรู้ของบริษัท | อเมซอนเว็บเซอร์วิส

โหนดต้นทาง: 1969885
ประทับเวลา: เมษายน 30, 2024

ลดความซับซ้อนในการพัฒนาโมเดลแมชชีนเลิร์นนิ่งแบบวนซ้ำโดยเพิ่มคุณสมบัติให้กับกลุ่มคุณสมบัติที่มีอยู่ใน Amazon SageMaker Feature Store

โหนดต้นทาง: 1603886
ประทับเวลา: สิงหาคม 1, 2022