ความประหยัดมาพบกับความแม่นยำ: การฝึกอบรมโมเดล GPT NeoX และ Pythia ที่คุ้มต้นทุนด้วย AWS Trainium | อเมซอนเว็บเซอร์วิส

ความประหยัดมาพบกับความแม่นยำ: การฝึกอบรมโมเดล GPT NeoX และ Pythia ที่คุ้มต้นทุนด้วย AWS Trainium | อเมซอนเว็บเซอร์วิส

โมเดลภาษาขนาดใหญ่ (หรือ LLM) กลายเป็นหัวข้อสนทนาประจำวัน การนำไปใช้อย่างรวดเร็วนั้นเห็นได้จากระยะเวลาที่จำเป็นในการเข้าถึงผู้ใช้ 100 ล้านคน ซึ่งเพิ่มขึ้นจาก “4.5 ปีทาง Facebook” ไปสู่ระดับต่ำสุดตลอดกาลเพียง “2 เดือนโดย ChatGPT” หม้อแปลงไฟฟ้าที่ได้รับการฝึกล่วงหน้าแบบกำเนิด (GPT) ใช้การอัปเดตแบบถดถอยอัตโนมัติเชิงสาเหตุเพื่อทำการคาดการณ์ งานต่างๆ เช่น การรู้จำเสียง การสร้างข้อความ และการตอบคำถาม ได้รับการพิสูจน์แล้วว่ามีประสิทธิภาพที่น่าทึ่งโดยสถาปัตยกรรมแบบจำลองเหล่านี้ รุ่นล่าสุดหลายรุ่นเช่น NeoX, เหยี่ยวนกเขา, ดูรายละเอียด ใช้สถาปัตยกรรม GPT เป็นแกนหลัก LLM การฝึกอบรมต้องใช้เวลาประมวลผลจำนวนมหาศาล ซึ่งมีค่าใช้จ่ายหลายล้านดอลลาร์ ในโพสต์นี้ เราจะสรุปขั้นตอนการฝึกอบรมของ GPT NeoX on การฝึกอบรม AWSซึ่งเป็นตัวเร่งความเร็วการเรียนรู้ของเครื่องจักร (ML) ที่สร้างขึ้นตามวัตถุประสงค์ซึ่งได้รับการปรับให้เหมาะกับการฝึกอบรมการเรียนรู้เชิงลึก เราจะสรุปวิธีที่เราฝึกฝนโมเดลดังกล่าวด้วย AWS Trainium อย่างคุ้มค่า (3.2 ล้านโทเค็น/$) โดยไม่สูญเสียคุณภาพของโมเดลใดๆ

ภาพรวมโซลูชัน

รุ่น GPT NeoX และ Pythia

จีพีที นีโอเอ็กซ์ และ พีเธีย เป็นโมเดลภาษาเชิงสาเหตุแบบโอเพ่นซอร์สโดย Eleuther-AI โดยมีพารามิเตอร์ประมาณ 20 หมื่นล้านพารามิเตอร์ใน NeoX และ 6.9 พันล้านพารามิเตอร์ใน Pythia ทั้งสองรุ่นเป็นโมเดลตัวถอดรหัสซึ่งมีการออกแบบทางสถาปัตยกรรมที่คล้ายคลึงกับ Chat GPT3 อย่างไรก็ตาม ยังมีส่วนเพิ่มเติมอีกหลายรายการ ซึ่งยังใช้กันอย่างแพร่หลายในโมเดลล่าสุด เช่น ลามะ โดยเฉพาะอย่างยิ่ง มีการฝังตำแหน่งแบบหมุน (ROPE) พร้อมการหมุนบางส่วนตามขนาดส่วนหัว รุ่นดั้งเดิม (NeoX และ Pythia 6.9B) ได้รับการฝึกให้ใช้งานได้อย่างเปิดเผย ชุดข้อมูลกอง ด้วยการขจัดข้อมูลซ้ำซ้อนและการใช้แบ็กเอนด์ Megatron และ Deepspeed

เราสาธิตการฝึกอบรมล่วงหน้าและการปรับแต่งโมเดลเหล่านี้อย่างละเอียดบนอินสแตนซ์ Trn1 ที่ใช้ AWS Trainium นิวรอน นีโม ห้องสมุด. ในการสร้างการพิสูจน์แนวคิดและการทำซ้ำอย่างรวดเร็ว เราจะใช้โทเค็นชุดข้อมูล Wikipedia ที่เล็กกว่าซึ่งแปลงเป็นโทเค็นโดยใช้โทเค็นไนเซอร์การเข้ารหัส GPT2 Byte-pair (BPE)

คำแนะนำแบบ

ดาวน์โหลดชุดข้อมูล Wikipedia ที่ได้รับโทเค็นล่วงหน้าตามที่แสดง:

export DATA_DIR=~/examples_datasets/gpt2 mkdir -p ${DATA_DIR} && cd ${DATA_DIR} wget https://s3.amazonaws.com/models.huggingface.co/bert/gpt2-vocab.json
wget https://s3.amazonaws.com/models.huggingface.co/bert/gpt2-merges.txt
aws s3 cp s3://neuron-s3/training_datasets/gpt/wikipedia/my-gpt2_text_document.bin . --no-sign-request
aws s3 cp s3://neuron-s3/training_datasets/gpt/wikipedia/my-gpt2_text_document.idx . --no-sign-request
aws s3 cp s3://neuron-s3/training_datasets/gpt/wikipedia/license.txt . --no-sign-request

ทั้ง NeoX 20B และ Pythia 6.9B ใช้ ROPE ที่มีการหมุนบางส่วน เช่น การหมุน 25% ของขนาดส่วนหัว และทำให้ส่วนที่เหลือไม่มีการหมุน เพื่อใช้งานการหมุนเวียนบางส่วนบน AWS Trainium accelerator อย่างมีประสิทธิภาพ แทนที่จะเชื่อมโยงมิติแบบหมุนและไม่หมุนเข้าด้วยกัน เราจะเพิ่มความถี่เป็นศูนย์ต่อท้ายสำหรับมิติที่ไม่หมุน จากนั้นจึงหมุนชุดขนาดส่วนหัวทั้งหมด เคล็ดลับง่ายๆ นี้ช่วยให้เราปรับปรุงปริมาณงาน (ลำดับที่ประมวลผลต่อวินาที) บน AWS Trainium

ขั้นตอนการฝึกอบรม

ในการดำเนินการฝึกอบรม เราใช้ Amazon Elastic Compute Cloud แบบหลายโหนดที่ได้รับการจัดการ SLURM (Amazon EC2) คลัสเตอร์ Trn1 โดยแต่ละโหนดมีอินสแตนซ์ trn1.32xl แต่ละ trn1.32xl มีเครื่องเร่งความเร็ว 16 เครื่อง โดยมีคนงาน XNUMX คนต่อเครื่องเร่งความเร็ว XNUMX เครื่อง หลังจากดาวน์โหลดตัวล่าสุด นิวรอน นีโม แพ็คเกจให้ใช้ของที่ให้มา นีโอ และ พีเธีย สคริปต์การฝึกอบรมล่วงหน้าและการปรับแต่งอย่างละเอียดด้วยไฮเปอร์พารามิเตอร์ที่ได้รับการปรับปรุง และดำเนินการต่อไปนี้สำหรับการฝึกอบรมสี่โหนด

  1. คอมไพล์: คอมไพล์โมเดลล่วงหน้าด้วยการวนซ้ำรถไฟสามครั้งเพื่อสร้างและบันทึกกราฟ:
    sbatch --nodes 4 compile.slurm ./neoX_20B_slurm.sh

  2. เรียกใช้: ดำเนินการฝึกโดยโหลดกราฟที่แคชไว้ตั้งแต่ขั้นตอนแรก
    sbatch --nodes 4 run.slurm ./neoX_20B_slurm.sh

  3. ติดตามผล
    tensorboard --logdir=nemo_experiments/megatron_neox

ต้องทำตามขั้นตอนเดียวกันสำหรับการรันโมเดล Pythia 6.9B พร้อมการเปลี่ยน neox_20B_slurm.sh by pythia_6.9B_slurm.sh.

การทดลองก่อนการฝึกอบรมและการปรับแต่ง

เราสาธิตการฝึกอบรมล่วงหน้าของโมเดล GPT-NeoX และ Pythia บน AWS Trainium โดยใช้ นิวรอน นีโม ไลบรารีสำหรับการวนซ้ำ 10 ครั้ง และยังแสดงการปรับแต่งโมเดลเหล่านี้อย่างละเอียดใน 1 ขั้นตอน สำหรับการฝึกล่วงหน้า เราใช้โทเค็นไนเซอร์ GPT2 BPE ภายใน NeMo และทำตามแบบเดียวกัน การตั้งค่า เหมือนที่ใช้ในรุ่นเดิม การปรับแต่ง AWS Trainium อย่างละเอียดจำเป็นต้องเปลี่ยนแปลงพารามิเตอร์เล็กน้อย (เช่น ตัวคูณการแบ่งขนาดคำศัพท์) ซึ่งมีอยู่ในสคริปต์การปรับแต่งอย่างละเอียดเพื่อรองรับความแตกต่างระหว่าง Megatron และ NeMo และการเปลี่ยนแปลง GPU กับ AWS Trainium ปริมาณงานการฝึกแบบกระจายแบบหลายโหนดที่มีจำนวนโหนดที่แตกต่างกันแสดงอยู่ในตารางที่ 1

รุ่น เทนเซอร์ขนาน ท่อคู่ขนานline จำนวนอินสแตนซ์ ค่าใช้จ่าย ($/ชั่วโมง) ความยาวลำดับ ขนาดแบตช์ทั่วโลก ปริมาณงาน (วินาที/วินาที) อัตราส่วนต้นทุนต่อปริมาณงาน (โทเค็น/$)
ไพเธีย 6.9B 8 1 1 7.59 2048 256 10.4 10,102,387
8 1 4 30.36 2048 256 35.8 8,693,881
นีโอเอ็กซ์ 20บี 8 4 4 30.36 2048 16384 13.60 3,302,704
8 4 8 60.72 2048 16384 26.80 3,254,134
8 4 16 121.44 2048 16384 54.30 3,296,632
8 4 32 242.88 2048 16384 107.50 3,263,241
8 4 64 485.76 2048 16384 212.00 3,217,708

1 ตาราง การเปรียบเทียบปริมาณงานเฉลี่ยของรุ่น GPT NeoX และ Pythia เพื่อการฝึกฝนสูงสุด 500 ขั้นตอนโดยมีการเปลี่ยนแปลงจำนวนโหนด ที่ ราคา trn1.32xl อิงตามอัตราชั่วโมงที่มีผลจริงที่สงวนไว้ 3 ปี

ต่อไป เรายังประเมินเส้นทางการสูญเสียของการฝึกฝนโมเดลบน AWS Trainium และเปรียบเทียบกับการทำงานที่สอดคล้องกันบนคลัสเตอร์ P4d (คอร์ NVIDIA A100 GPU) นอกจากการสูญเสียการฝึกแล้ว เรายังเปรียบเทียบตัวบ่งชี้ที่มีประโยชน์ เช่น บรรทัดฐานการไล่ระดับสี ซึ่งเป็นบรรทัดฐาน 2 ของการไล่ระดับสีของแบบจำลองที่คำนวณในแต่ละรอบการฝึกเพื่อติดตามความคืบหน้าของการฝึก ผลการฝึกแสดงในรูปที่ 1, 2 และการปรับแต่ง NeoX 20B ในรูปที่ 3

การสูญเสียการฝึกอบรมโดยเฉลี่ยระหว่างพนักงานทั้งหมด (ซ้าย) และเกณฑ์การไล่ระดับสี (ขวา) ในการฝึกอบรมแต่ละขั้นตอน

รูปที่ 1. การสูญเสียการฝึกอบรมโดยเฉลี่ยระหว่างพนักงานทั้งหมด (ซ้าย) และเกณฑ์การไล่ระดับสี (ขวา) ในการฝึกอบรมแต่ละขั้นตอน NeoX 20B ได้รับการฝึกฝนบน 4 โหนดที่มีชุดข้อมูล wiki ขนาดเล็กบน GPU และ Trainium พร้อมด้วยไฮเปอร์พารามิเตอร์การฝึกอบรมเดียวกัน (ขนาดแบตช์ทั่วโลก=256) GPU ใช้ BF16 และความแม่นยำแบบผสมเริ่มต้น ในขณะที่ AWS Trainium ใช้ BF16 เต็มรูปแบบพร้อมการปัดเศษแบบสุ่ม วิถีปกติการสูญเสียและการไล่ระดับสีตรงกับ GPU และ AWS Trainium

การสูญเสียการฝึกอบรมโดยเฉลี่ยระหว่างพนักงานทั้งหมด (ซ้าย) และเกณฑ์การไล่ระดับสี (ขวา) ในการฝึกอบรมแต่ละขั้นตอน (Pythia)

รูปที่ 2. การสูญเสียการฝึกอบรมโดยเฉลี่ยระหว่างพนักงานทั้งหมด (ซ้าย) และเกณฑ์การไล่ระดับสี (ขวา) ในการฝึกอบรมแต่ละขั้นตอน เช่นเดียวกับ GPT NeoX ในรูปที่ 1 Pythia 6.9B ได้รับการฝึกฝนบน 4 โหนดที่มีชุดข้อมูล wiki ขนาดเล็กบน GPU และ Trainium พร้อมด้วยไฮเปอร์พารามิเตอร์การฝึกอบรมเดียวกัน (ขนาดแบตช์ทั่วโลก=256) วิถีนอร์มการสูญเสียและการไล่ระดับสีตรงกับ GPU และ Trainium

การปรับแต่งโมเดล GPT NeoX 20B อย่างละเอียดบน GPU และ AWS Trainium โดยมีการสูญเสียการฝึกโดยเฉลี่ยจากพนักงานทั้งหมด (ซ้าย) และบรรทัดฐานการไล่ระดับสี (ขวา)

รูปที่ 3. การปรับแต่งโมเดล GPT NeoX 20B อย่างละเอียดบน GPU และ AWS Trainium โดยมีการสูญเสียการฝึกโดยเฉลี่ยจากพนักงานทั้งหมด (ซ้าย) และบรรทัดฐานการไล่ระดับสี (ขวา) ชุดข้อมูลวิกิขนาดเล็กใช้สำหรับการสาธิตการปรับแต่งอย่างละเอียด วิถีนอร์มการสูญเสียและการไล่ระดับสีตรงกับ GPU และ AWS Trainium

ในโพสต์นี้ เราได้แสดงการฝึกอบรม LLM ที่คุ้มต้นทุนเกี่ยวกับฮาร์ดแวร์การเรียนรู้เชิงลึกของ AWS เราฝึกอบรมโมเดล GPT NeoX 20B และ Pythia 6.9B บน AWS Trn1 ด้วยไลบรารี Neuron NeMo ปริมาณการประมวลผลที่ปรับให้เป็นมาตรฐานของต้นทุนสำหรับโมเดล 20 หมื่นล้านโมเดลด้วย AWS Trainium อยู่ที่ประมาณ 3.2M โทเค็น/ดอลลาร์ที่ใช้ไป นอกเหนือจากการฝึกอบรมที่คุ้มค่าบน AWS Trainium แล้ว เรายังได้รับความแม่นยำของโมเดลที่คล้ายกัน ซึ่งเห็นได้จากการสูญเสียขั้นตอนการฝึกและวิถีวิถีบรรทัดฐานของการไล่ระดับสี นอกจากนี้เรายังปรับแต่งจุดตรวจสอบที่มีอยู่สำหรับรุ่น NeoX 20B บน AWS Trainium อีกด้วย สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการฝึกอบรมแบบกระจายกับ NeMo Megatron บน AWS Trainium โปรดดู การอ้างอิง AWS Neuron สำหรับ NeMo Megatron. แหล่งข้อมูลที่ดีในการเริ่มต้นการปรับแต่งโมเดล Llama อย่างละเอียดสามารถพบได้ที่นี่ Llama2 การปรับแต่งแบบละเอียด. เพื่อเริ่มต้นใช้งาน AWS Trainium ที่มีการจัดการ อเมซอน SageMakerโปรดดูที่ ฝึกฝนโมเดล ML ของคุณด้วย AWS Trainium และ Amazon SageMaker.


เกี่ยวกับผู้เขียน

ความประหยัดมาพบกับความแม่นยำ: การฝึกอบรมโมเดล GPT NeoX และ Pythia ที่คุ้มต้นทุนด้วย AWS Trainium | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.Gaurav Gupta ปัจจุบันเป็นนักวิทยาศาสตร์ประยุกต์ที่ห้องปฏิบัติการ AI ของ Amazon Web Services (AWS) ดร. Gupta สำเร็จการศึกษาระดับปริญญาเอกจาก USC Viterbi ความสนใจด้านการวิจัยของเขาครอบคลุมขอบเขตของการสร้างแบบจำลองข้อมูลตามลำดับ การเรียนรู้สมการเชิงอนุพันธ์ย่อย ทฤษฎีข้อมูลสำหรับการเรียนรู้ของเครื่อง แบบจำลองไดนามิกเศษส่วน และเครือข่ายที่ซับซ้อน ปัจจุบันเขากำลังทำงานเกี่ยวกับปัญหาประยุกต์และคณิตศาสตร์เกี่ยวกับพฤติกรรมการฝึกอบรม LLM, แบบจำลองการมองเห็นด้วย PDE, แบบจำลองหลายรูปแบบทางทฤษฎีสารสนเทศ ดร. กุปตะมีสิ่งตีพิมพ์ในวารสาร/การประชุมชั้นนำ เช่น Neurips, ICLR, ICML, Nature, IEEE Control Society, ACM cyber-physical Society

ความประหยัดมาพบกับความแม่นยำ: การฝึกอบรมโมเดล GPT NeoX และ Pythia ที่คุ้มต้นทุนด้วย AWS Trainium | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.เบน สไนเดอร์ เป็นนักวิทยาศาสตร์ประยุกต์ที่มี AWS Deep Learning งานวิจัยที่เขาสนใจ ได้แก่ โมเดลพื้นฐาน การเรียนรู้แบบเสริมกำลัง และการเพิ่มประสิทธิภาพแบบอะซิงโครนัส นอกเหนือจากการทำงาน เขาชอบปั่นจักรยานและตั้งแคมป์ในเขตทุรกันดาร

ความประหยัดมาพบกับความแม่นยำ: การฝึกอบรมโมเดล GPT NeoX และ Pythia ที่คุ้มต้นทุนด้วย AWS Trainium | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.อมิธ (ขวา) มามิดาลา เป็นวิศวกรแอปพลิเคชันการเรียนรู้ของเครื่องอาวุโสที่ AWS Annapurna Labs ดร. Mamidala สำเร็จการศึกษาระดับปริญญาเอกจากมหาวิทยาลัยแห่งรัฐโอไฮโอในด้านคอมพิวเตอร์และการสื่อสารประสิทธิภาพสูง ในระหว่างดำรงตำแหน่งที่การวิจัยของ IBM ดร. Mamidala มีส่วนสนับสนุนคอมพิวเตอร์ระดับ BlueGene ซึ่งมักจะเป็นผู้นำในการจัดอันดับซูเปอร์คอมพิวเตอร์ที่ทรงพลังและประหยัดพลังงานสูงสุด 500 อันดับแรก โครงการนี้ได้รับรางวัลเหรียญรางวัลเทคโนโลยีและนวัตกรรมแห่งชาติ ประจำปี 2009 หลังจากทำงานเป็นวิศวกร AI ในกองทุนเฮดจ์ฟันด์ทางการเงินได้ไม่นาน Dr. Mamidala ก็เข้าร่วมห้องทดลอง Annapurna ที่เน้นการฝึกอบรมโมเดลภาษาขนาดใหญ่

ความประหยัดมาพบกับความแม่นยำ: การฝึกอบรมโมเดล GPT NeoX และ Pythia ที่คุ้มต้นทุนด้วย AWS Trainium | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.จุน (ลุค) เฮือน เป็นนักวิทยาศาสตร์หลักที่ AWS AI Labs ดร.หวนทำงานด้าน AI และวิทยาศาสตร์ข้อมูล เขาได้ตีพิมพ์บทความที่มีการทบทวนโดยผู้ทรงคุณวุฒิมากกว่า 180 ฉบับในการประชุมและวารสารชั้นนำ เขาเป็นผู้รับรางวัล NSF Faculty Early Career Development Award ในปี 2009 ก่อนที่จะมาร่วมงานกับ AWS เขาเคยทำงานที่การวิจัยของ Baidu ในฐานะนักวิทยาศาสตร์ที่มีชื่อเสียงและเป็นหัวหน้าของ Baidu Big Data Laboratory เขาก่อตั้งบริษัท StyleAI Inc. ซึ่งเป็นบริษัทสตาร์ทอัพด้าน AI และทำงานเป็น CEO และหัวหน้านักวิทยาศาสตร์ในปี 2019-2021 ก่อนที่จะมาร่วมงานกับอุตสาหกรรม เขาเป็นศาสตราจารย์ Charles E. และ Mary Jane Spahr ในแผนก EECS ที่มหาวิทยาลัยแคนซัส

ความประหยัดมาพบกับความแม่นยำ: การฝึกอบรมโมเดล GPT NeoX และ Pythia ที่คุ้มต้นทุนด้วย AWS Trainium | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.ชรูติ โคปาร์การ์ เป็นผู้จัดการฝ่ายการตลาดผลิตภัณฑ์อาวุโสของ AWS เธอช่วยลูกค้าสำรวจ ประเมิน และนำโครงสร้างพื้นฐานการประมวลผลแบบเร่งความเร็วของ Amazon EC2 มาใช้สำหรับความต้องการแมชชีนเลิร์นนิงของพวกเขา

ประทับเวลา:

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