Amazon Search M5 ประหยัดค่าใช้จ่ายการฝึกอบรม LLM ได้ 30% โดยใช้ AWS Trainium | ได้อย่างไร อเมซอนเว็บเซอร์วิส

Amazon Search M5 ประหยัดค่าใช้จ่ายการฝึกอบรม LLM ได้ 30% โดยใช้ AWS Trainium | ได้อย่างไร อเมซอนเว็บเซอร์วิส

เป็นเวลาหลายทศวรรษที่ Amazon เป็นผู้บุกเบิกและสร้างสรรค์การเรียนรู้ของเครื่อง (ML) ซึ่งนำประสบการณ์ที่น่าพึงพอใจมาสู่ลูกค้า ตั้งแต่วันแรกๆ Amazon ได้ใช้ ML สำหรับการใช้งานที่หลากหลาย เช่น คำแนะนำหนังสือ การค้นหา และการตรวจจับการฉ้อโกง เช่นเดียวกับส่วนอื่นๆ ในอุตสาหกรรม ความก้าวหน้าของฮาร์ดแวร์เร่งความเร็วทำให้ทีม Amazon สามารถติดตามสถาปัตยกรรมโมเดลโดยใช้โครงข่ายประสาทเทียมและการเรียนรู้เชิงลึก (DL)

โปรแกรม M5 ภายใน Amazon Search เป็นเจ้าของกลยุทธ์การเรียนรู้เชิงค้นพบสำหรับ Amazon และสร้างโมเดลขนาดใหญ่ในหลายภาษา หลายภาษา หลายเอนทิตี มัลติทาสก์ และหลายรูปแบบ เช่น ข้อความ รูปภาพ และวิดีโอ โปรแกรม M5 ให้บริการการฝังแบบสากลและโมเดลพื้นฐานขนาดใหญ่แก่ทีม ML หลายร้อยทีมทั่ว Amazon ขณะเดียวกันก็รักษาการควบคุมต้นทุนให้เหมาะสมอย่างเข้มงวด เพื่อให้บรรลุเป้าหมายนี้ ทีมงาน M5 จะประเมินเทคนิคใหม่ๆ อย่างสม่ำเสมอเพื่อลดต้นทุน

เช่นเดียวกับองค์กร ML อื่นๆ ตัวเร่งความเร็วส่วนใหญ่จะใช้เพื่อเร่งการฝึกอบรมและการอนุมาน DL เมื่อ AWS เปิดตัวตัวเร่งความเร็วที่สร้างขึ้นตามวัตถุประสงค์ด้วยการเปิดตัวครั้งแรกของ การอนุมาน AWS ในปี 2020 ทีม M5 ได้เริ่มต้นอย่างรวดเร็ว ใช้เพื่อปรับใช้ปริมาณงานการผลิตได้อย่างมีประสิทธิภาพมากขึ้นประหยัดทั้งต้นทุนและลดความหน่วง เมื่อปีที่แล้ว AWS ได้เปิดตัว การฝึกอบรม AWS ตัวเร่งความเร็วซึ่งปรับประสิทธิภาพต่อต้นทุนให้เหมาะสมสำหรับการพัฒนาและสร้างโมเดล DL รุ่นต่อไป ในโพสต์นี้ เราจะพูดคุยกันว่า M5 สามารถลดต้นทุนในการฝึกโมเดลลง 30% ได้อย่างไร และแบ่งปันแนวทางปฏิบัติที่ดีที่สุดบางส่วนที่เราได้เรียนรู้ไปพร้อมกัน

ตัวอย่าง Trainium

ด้วยความก้าวหน้าในตัวเร่งความเร็วที่สร้างขึ้นตามวัตถุประสงค์ Amazon ยังมอบตัวเร่งความเร็วที่น่าสนใจในรูปแบบของ AWS Inferentia และ Trainium ตามที่ชื่อบอกเป็นนัย ชิปเหล่านี้ได้รับการปรับให้เหมาะสมเพื่อให้เกินความต้องการปริมาณงานการอนุมานและการฝึกอบรมตามลำดับ Trainium สำหรับการฝึกฝนโมเดลพื้นฐานขนาดใหญ่ที่มีขนาดพารามิเตอร์นับพันล้านรายการ อินสแตนซ์ Trn1 และ Trn1n เป็นตัวเลือกในอุดมคติเนื่องจากมีลักษณะเฉพาะ อินสแตนซ์ Trn1 ขับเคลื่อนโดยเทคโนโลยีล้ำสมัย NeuronCore-v2และมีตัวเร่งประมวลผลและหน่วยความจำจำนวนมาก สามารถเลือกอินสแตนซ์ Trn1n สำหรับแบนด์วิธเครือข่ายที่มากขึ้น (1,600 Gbs) ได้ ดังนั้นจึงเหมาะอย่างยิ่งสำหรับการฝึกอบรมด้านประสิทธิภาพโดยคำนึงถึงการเพิ่มประสิทธิภาพต้นทุน

หากต้องการใช้ตัวเร่งความเร็ว คุณต้องมีเลเยอร์ซอฟต์แวร์เพื่อรองรับ ด้วยชิป Trn และ Inf AWS Neuron SDK ปลดล็อคตัวเร่งความเร็วที่สร้างขึ้นโดยเฉพาะของ Amazon ด้วยความช่วยเหลือของ PyTorch XLA PyTorch XLA แปลงโหมดกระตือรือร้นของ PyTorch เป็นการใช้งานกราฟตามโหมดขี้เกียจ จากนั้นกราฟเหล่านี้จะถูกนำมาใช้และเรียบเรียงเพิ่มเติมเพื่อใช้ร่วมกับตัวเร่งความเร็ว PyTorch Neuron (ส่วนหนึ่งของ Neuron SDK) ช่วยให้ผู้ใช้ PyTorch สามารถฝึกฝนโมเดลของตนบน Trainium NeuronCores ด้วยโค้ดเพียงไม่กี่บรรทัด

รูปแบบและภาระงาน

ทีม M5 ฝึกอบรมและปรับใช้โมเดลพื้นฐานและการนำเสนอแบบสากลเพื่อช่วยทีมต่างๆ ทั่ว Amazon ในการนำความสุขมาสู่ Amazon.com ลูกค้า โมเดลหนึ่งดังกล่าวคือโมเดลตัวเข้ารหัสข้อความตามด้วย Multi-layer Perceptron (MLP) พร้อมการโต้ตอบของฟีเจอร์ที่ชัดเจนหรือโดยนัยที่กำหนดโดยสถาปัตยกรรมเครือข่ายประสาทเทียมพร้อมพารามิเตอร์ที่ฝึกได้หลายร้อยล้านรายการ โมเดลนี้ได้รับการฝึกฝนเกี่ยวกับโทเค็นนับพันล้าน และใช้เพื่อสร้างการฝังนับล้านรายการในการตั้งค่าการอนุมานแบบกลุ่มออฟไลน์ การฝังเหล่านี้เป็นอินพุตสำหรับบริการ Amazon ระดับ 1 ที่ต้องพบปะกับลูกค้า

โครงสร้างพื้นฐานสำหรับการใช้งานไปป์ไลน์การผลิต ชุด AWS กับ กลยุทธ์การเข้าคิวส่วนแบ่งที่ยุติธรรมโดยใช้คลัสเตอร์ trn1.32xlarge หลายโหนดที่เปิดใช้งาน EFA เป็นการประมวลผลสำหรับการฝึกโมเดล ในด้านการใช้งาน ไปป์ไลน์การผลิตจะดำเนินการฝึกอบรมโมเดลแบบเพิ่มหน่วย การประเมินโมเดลที่ได้รับการฝึกอบรม และการอนุมานแบทช์ออฟไลน์บนโมเดลที่ได้รับการฝึกอบรม ทั้งหมดนี้ใช้ PyTorch เป็นไลบรารี DL พื้นฐาน

เป้าหมาย

การสร้างความพึงพอใจให้กับลูกค้าถือเป็นหลักสำคัญที่สุด เมื่อพิจารณาถึงลักษณะของไปป์ไลน์ที่ต้องพบปะกับลูกค้า จึงจำเป็นอย่างยิ่งที่จะต้องปฏิบัติตามข้อตกลงระดับการบริการ (SLA) ทั้งหมดโดยไม่มีการถดถอย เราได้ระบุเกณฑ์การยอมรับที่สำคัญสองประการเพื่อปรับขั้นตอนการผลิต GPU ที่มีอยู่ของเราและเปลี่ยนไปใช้ Trainium:

  • คุณภาพของรุ่น – คุณภาพของแบบจำลองของเราส่งผลโดยตรงต่อประสบการณ์ของลูกค้า เรากำหนดให้คุณภาพของโมเดลระหว่าง GPU และ Trainium ควรมีความแตกต่างน้อยกว่า 0.1%
  • ปริมาณงานการฝึกอบรม – เราฝึกอบรมโมเดลของเราซ้ำๆ เป็นระยะๆ เพื่อมอบประสบการณ์ที่สดใหม่ที่สุดแก่ลูกค้าของเรา เราต้องการให้การบรรจบกันของโมเดลต้องบรรลุผลภายในระยะเวลาที่กำหนดไว้ล่วงหน้า (เช่น 1 สัปดาห์) เพื่อให้เป็นไปตาม SLA การผลิตของเรา

ในส่วนต่อไปนี้ เราจะแบ่งปันการเดินทางของเราในการทำงานแบบย้อนกลับจากเกณฑ์นี้ และการเรียนรู้ของเราเพื่อสนับสนุนปริมาณงานการผลิตในระดับ Amazon

สคริปต์การฝึกอบรม

ก่อนที่จะเริ่มต้นด้วยการฝึกโมเดล เราจำเป็นต้องเปลี่ยนแปลงสคริปต์การฝึกเพื่อให้เป็นไปตามมาตรฐาน XLA เมื่อพิจารณาถึงขนาดของโมเดล เราใช้ข้อมูลแบบกระจายแบบขนาน (DDP) เพื่อฝึกโมเดล DDP ช่วยให้เราเพิ่มปริมาณงานของการฝึกฝนโมเดลโดยการเพิ่มจำนวนเครื่องที่ใช้ในการรันการฝึกโมเดล โดยไม่ต้องเปลี่ยนแปลงโค้ดใดๆ เราทำตามคำแนะนำที่ให้ไว้ใน บทช่วยสอนการฝึกอบรม Neuron PyTorch MLP เพื่อเพิ่มโครงสร้างเฉพาะของ XLA ในสคริปต์การฝึกอบรมของเรา การเปลี่ยนแปลงโค้ดเหล่านี้นำไปปฏิบัติได้โดยตรง ต่อไปนี้คือการเรียนรู้ทางเทคนิคที่สำคัญบางส่วนจากแบบฝึกหัดซึ่งปรับปรุงปริมาณงานของโมเดลของเราอย่างมาก:

  • ตำแหน่งของ xm.mark_step() - xm.mark_step() รวบรวมและรันกราฟการคำนวณที่รวบรวมอย่างเกียจคร้าน การอัญเชิญ mark_step หลายครั้งเกินไปจะทำให้ได้กราฟขนาดเล็กจำนวนมากขึ้น ในขณะที่การเรียกใช้น้อยเกินไปจะทำให้เกิดกราฟน้อยแต่มีขนาดใหญ่ ปริมาณงานและการใช้งานการฝึกโมเดลของคุณจะแตกต่างกันไปตามตำแหน่งของคุณ ขึ้นอยู่กับแอปพลิเคชันของคุณ xm.mark_step(). การนำไปปฏิบัติของเรามีที่หนึ่ง xm.mark_step() หลังจากการส่งต่อและย้อนกลับ และอีกหนึ่งรายการหลังจากขั้นตอนการเพิ่มประสิทธิภาพ
  • การห่อตัวโหลดข้อมูลด้วยตัวโหลดอุปกรณ์มัลติโปรเซสเซอร์ XLA – นี่เป็นขั้นตอนสำคัญที่สามารถพลาดได้ง่าย ตัวโหลดอุปกรณ์มัลติโปรเซสเซอร์ torch_xla.distributed.parallel_loader.MpDeviceLoader โหลดข้อมูลการฝึกบนอุปกรณ์ XLA แต่ละตัวพร้อมตัวเลือกในการโหลดล่วงหน้าและทับซ้อนการโหลดข้อมูลกับการทำงานของอุปกรณ์เพื่อปรับปรุงปริมาณงาน ตัวโหลดอุปกรณ์ก็เรียกใช้เช่นกัน xm.mark_step() จึงสามารถสร้างกราฟสำหรับโหลดข้อมูลลงเครื่องจากโฮสต์ได้

การรวบรวม Trainium

โดยปกติแล้ว วงจรการพัฒนาโมเดลด้วย GPU เกี่ยวข้องกับการเปลี่ยนแปลงโมเดลหรือสคริปต์การฝึกอบรม และเรียกใช้งานบนอุปกรณ์ GPU โดยตรง ตัวเร่งความเร็ว เช่น Trainium ที่ใช้ XLA จำเป็นต้องมีขั้นตอนเพิ่มเติมก่อนจึงจะสามารถเรียกใช้การฝึกโมเดลบนตัวเร่งความเร็วได้ กราฟการคำนวณ XLA สามารถทำงานได้หลังจากคอมไพล์แล้วเท่านั้น โดยทั่วไป มีสองวิธีในการดำเนินการคอมไพล์นี้: Ahead of Time (AOT) โดยที่คุณติดตามและคอมไพล์กราฟทั้งหมดก่อนแล้วจึงเรียกใช้ หรือ Just In Time (JIT) โดยที่กราฟจะถูกติดตาม คอมไพล์ และรันตามที่กราฟสร้างขึ้น กำลังเผชิญอยู่ Neuron SDK นำเสนอทั้งสองสิ่งนี้ทันที โดยปกติแล้ว การรวบรวม AOT จะดำเนินการก่อน จากนั้นกราฟจะถูกรันหลังจากการคอมไพล์นี้ หากพบกราฟใหม่ รันไทม์ของ Neuron จะเรียกใช้การคอมไพล์ JIT ก่อนที่จะรันกราฟเหล่านั้น Neuron SDK จัดเตรียมไว้เพื่อดำเนินการรวบรวม AOT neuron_parallel_compileซึ่งเป็นยูทิลิตี้การคอมไพล์ที่แยกกราฟจากการรันสคริปต์การฝึกแบบทดลอง และทำการคอมไพล์ AOT แบบขนาน

สิ่งสำคัญของการรวบรวม AOT คือต้องแน่ใจว่าไม่มีการสร้างกราฟการคำนวณใหม่ตลอดหลักสูตรการฝึกอบรม แหล่งที่มาหนึ่งของกราฟการคำนวณใหม่ (และการคอมไพล์ใหม่) คือรูปร่างแบบไดนามิกของชุดการฝึกระหว่างการฝึกโมเดล เราพบว่าการใช้รูปร่างคงที่และชุดงานที่มีขนาดคงที่ช่วยลดการรวบรวมเวลาการฝึกอบรม และปรับปรุงปริมาณงานการฝึกอบรมได้อย่างมาก โดยไม่ส่งผลกระทบต่อความแม่นยำของแบบจำลอง โดยการบังคับใช้ข้อจำกัดดังกล่าวในการฝึกอบรม เราสังเกตว่ามีเพียง 4-5 ขั้นตอนของการฝึกโมเดล การตรวจสอบโมเดลหนึ่งขั้นตอน และการตรวจสอบโมเดลเพียงครั้งเดียวเท่านั้นที่จำเป็นสำหรับการติดตามกราฟทั้งหมดระหว่างการรวบรวม AOT สิ่งสำคัญที่ควรทราบคือ Neuron SDK มีการพัฒนาอย่างต่อเนื่อง และในอนาคตจะรองรับรูปร่างแบบไดนามิกด้วยเช่นกัน

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

export NEURON_COMPILE_CACHE_URL="s3://BUCKET/KEY"

คอมไพเลอร์ Neuron ยังมีสามอย่าง ตัวเลือกการเพิ่มประสิทธิภาพระดับคอมไพเลอร์ (O1, O2, O3) เพื่อปรับสมดุลเวลาในการคอมไพล์และทรูพุตการรันโมเดล O1 เปิดใช้งานการเพิ่มประสิทธิภาพคอร์บนกราฟคำนวณและลดเวลาในการคอมไพล์ O3 ให้ทรูพุตการรันโมเดลที่ได้รับการปรับปรุงโดยมีต้นทุนเวลาในการคอมไพล์ที่สูงขึ้น และ O2 (ตัวเลือกเริ่มต้น) คือความสมดุลระหว่างทั้งสอง สำหรับกรณีการใช้งานของเรา เราใช้การปรับให้เหมาะสม O1 และพบว่าเวลาในการรวบรวมลดลง 86% โดยไม่มีการเปลี่ยนแปลงการวัดความแม่นยำของโมเดล ในขณะที่สังเกตปริมาณการประมวลผลที่ลดลงประมาณ 5–7% เมื่อเทียบกับการปรับให้เหมาะสมเริ่มต้น (O2) คุณสามารถเลือกระดับการเพิ่มประสิทธิภาพที่แตกต่างกันได้ ขึ้นอยู่กับกรณีการใช้งาน

โดยสรุป เราใช้แฟล็กต่อไปนี้ในการรวบรวม:

NEURON_CC_FLAGS="--target trn1 --auto-cast all --auto-cast-type bf16 --model-type transformer --optlevel O1"

ความเข้ากันได้ของจุดตรวจ

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

เนื่องจากโมเดล GPU ได้รับการบันทึกโดยใช้ยูทิลิตี้การบันทึกโมเดล PyTorch มาตรฐาน เราจึงสามารถใช้ยูทิลิตี้การโหลดจุดตรวจ PyTorch เพื่อโหลดโมเดล GPU บนอุปกรณ์ Trainium

ตัวอย่างเช่น บน GPU/CPU คุณสามารถบันทึกโมเดลด้วยโค้ดต่อไปนี้:

torch.save(model.state_dict(), PATH)

จากนั้นคุณโหลดโมเดลกลับมาบน Trainium:

import torch_xla.core.xla_model as xm
xla_device = xm.xla_device()
model = MyModel(*args, **kwargs)
model.load_state_dict(torch.load(PATH))
model.to(xla_device)

ในทำนองเดียวกัน คุณสามารถบันทึกโมเดลบน Trainium ด้วยโค้ดต่อไปนี้:

import torch_xla.core.xla_model as xm
# automatically moves the data to CPU for the master device
xm.save(model.state_dict(), PATH) 

และโหลดโมเดลกลับมาบน GPU/CPU:

model = MyModel(*args, **kwargs)
model.load_state_dict(torch.load(PATH))
model.to(device) # can be any device

เนื่องจากเราใช้ DDP สำหรับการฝึกโมเดล การโหลดโมเดลจึงไม่ขึ้นอยู่กับจำนวนเครื่องที่ใช้ในการฝึกจุดตรวจสอบก่อนหน้า ซึ่งช่วยให้เราสามารถปรับขนาดฟลีต Trn1 ในแนวนอนโดยไม่มีการเปลี่ยนแปลงโค้ดหรือส่งผลเสียต่อการฝึกฝนโมเดล จุดตรวจสอบที่ใช้ PyTorch เหล่านี้สามารถใช้ได้โดยตรงหรือเขียนสคริปต์คบเพลิงสำหรับกรณีการใช้งานอนุมานบน AWS Inferentia2 หรือตัวเร่งความเร็วอื่นๆ

เสถียรภาพในการทำงาน

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

เช่นเดียวกับไปป์ไลน์ที่ใช้ GPU ที่มีอยู่ เราได้เพิ่มกลไกมากมายเพื่อทำให้ไปป์ไลน์มีความเสถียรในการปฏิบัติงาน ก่อนที่จะเริ่มการฝึกโมเดล เราทำการทดสอบสุขภาพหลายครั้งเพื่อประเมินความสมบูรณ์ของเครื่องจักร การทดสอบเหล่านี้โดยทั่วไปประกอบด้วยการทำงานของเทนเซอร์อย่างง่าย ๆ เพื่อตรวจสอบความสมบูรณ์ของอุปกรณ์คันเร่ง เราสังเกตเห็นว่าสำหรับการฝึกอบรมแบบกระจาย การดำเนินการทดสอบเพื่อตรวจสอบการสื่อสารโดยรวมระหว่างอินสแตนซ์ก็เป็นสิ่งสำคัญเช่นกัน เราใช้ ชุดทดสอบ NCCOM จาก Neuron SDK เพื่อให้บรรลุเป้าหมายนี้ โดยดำเนินการต่างๆ มากมาย เช่น รวบรวมทั้งหมด ลดทั้งหมด และลดกระจาย

แม้จะทำตามคำแนะนำที่เรากล่าวถึงแล้ว แต่เราพบว่าปัญหาชั่วคราวเป็นสิ่งที่หลีกเลี่ยงไม่ได้ในไปป์ไลน์ใดๆ โดยไม่คำนึงถึงตัวเร่งที่สำคัญ เพื่อสร้างความยืดหยุ่นในไปป์ไลน์การฝึกอบรม เราขอแนะนำให้สร้างกลไกการลองใหม่เพื่อแก้ไขปัญหาที่อาจเกิดขึ้นเหล่านี้ เราใช้ การลองใหม่อัตโนมัติของ AWS Batch เพื่อลองงานที่พบกับความล้มเหลวชั่วคราวระหว่างการฝึกโมเดลอีกครั้ง การรีสตาร์ทเหล่านี้อาจมีค่าใช้จ่ายสูงหากพบความล้มเหลวในช่วงสิ้นสุดการฝึกอบรม เพื่อแก้ไขปัญหานี้ เราได้ปรับสคริปต์การฝึกอบรมของเราเพื่อโหลดจุดตรวจสอบโมเดลที่ได้รับการฝึกอบรมก่อนหน้านี้ และฝึกอบรมต่อจากจุดนั้น ด้วยฟังก์ชันการทำงานนี้ เราจึงสามารถเริ่มงานการฝึกอบรมที่ล้มเหลวอีกครั้งได้ในเชิงรุกโดยมีค่าใช้จ่ายน้อยที่สุด

ด้วยกลไกความยืดหยุ่นเหล่านี้ เราจึงสามารถบรรลุอัตราความสำเร็จ 98.5% สำหรับปริมาณงานของเราบน Trn1 ซึ่งเทียบได้กับอัตราความสำเร็จไปป์ไลน์ GPU ที่มีอยู่ของเรา

ผลสอบ

เพื่อตรวจสอบความถูกต้องแม่นยำของโมเดลของเรา เราได้เริ่มต้นโมเดลสองโมเดลจากจุดตรวจสอบ GPU เดียวกัน และฝึกอบรมโมเดลหนึ่งบน Trainium และอีกโมเดลหนึ่งบน GPU ที่เทียบเคียงได้ ทั้งสองรุ่นได้รับการฝึกด้วยไฮเปอร์พารามิเตอร์การฝึกเหมือนกัน ชุดข้อมูลที่ใช้สำหรับการคำนวณหน่วยเมตริกเป็นชุดข้อมูลที่เก็บไว้ และเราประเมินความแม่นยำของโมเดลในชุดข้อมูลนี้ทุก N ขั้นตอนทั่วโลก แกน X คือขั้นตอนส่วนกลาง และแกน Y คือความแม่นยำของโมเดล เราสังเกตเห็นความแตกต่างน้อยกว่า 0.1% ในความแม่นยำของแบบจำลองในแต่ละจุดในกราฟต่อไปนี้

Amazon Search M5 ประหยัดค่าใช้จ่ายการฝึกอบรม LLM ได้ 30% โดยใช้ AWS Trainium | ได้อย่างไร Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.

นอกจากนี้ เพื่อประเมินความคุ้มทุนของการฝึกโมเดล เราต้องการเปรียบเทียบเวลานาฬิกาแขวนที่ใช้เพื่อให้โมเดลลู่เข้ากัน เราเชื่อว่าสิ่งนี้ให้มุมมองที่เป็นประโยชน์มากขึ้นเกี่ยวกับการประหยัดต้นทุน เมื่อเทียบกับมาตรการต่างๆ เช่น ต้นทุนต่อโทเค็น ความสำเร็จ FLOPS/ดอลลาร์ และปัจจัยอื่นๆ โดยพิจารณาจากระยะเวลาการฝึกของ trn1.32xl และเทียบเคียงได้ อเมซอน อีลาสติก คอมพิวท์ คลาวด์ (Amazon EC2) เราพบว่า Trainium เสนอต้นทุนที่ถูกกว่าถึง 30% ในการจำลองการหลอมรวม

สรุป

มีหลายปัจจัยที่ต้องพิจารณาเมื่อประเมินตัวเร่งความเร็วต่างๆ สำหรับปริมาณงาน DL ของคุณ สิ่งที่สำคัญที่สุดบางประการคือคุณภาพของโมเดล ปริมาณงาน ต้นทุน และความพร้อมใช้งาน สิ่งสำคัญคือต้องทำให้แน่ใจว่าคุณภาพและปริมาณงานของโมเดลของคุณจะไม่ลดลงตามตัวเร่งความเร็วที่คุณเลือก

ต้องขอบคุณความร่วมมือและความร่วมมือของเรากับทีม Annapurna Neuron ทำให้ทีม Amazon Search M5 สามารถประหยัดต้นทุนได้สูงสุดถึง 30% โดยการย้ายมาที่ Trainium ทีมงานสามารถใช้ Trainium และบรรลุคุณภาพของโมเดลและความเท่าเทียมกันของปริมาณงานกับตัวเร่งความเร็วที่เทียบเคียงได้ในตลาด ความสามารถในการทำงานร่วมกันของ Checkpoint และการเปลี่ยนแปลงโค้ดเพียงเล็กน้อยด้วยการรองรับ XLA ทำให้ M5 สามารถเลือกระหว่างตัวเร่งความเร็วหลายตัวสำหรับปริมาณงานของตนได้ สิ่งนี้ทำให้ทีม M5 สามารถใช้ประโยชน์จากพลังการประมวลผลขนาดใหญ่ของ Trainium และสร้างโซลูชันที่ไม่เชื่อเรื่องตัวเร่งความเร็วเพื่อสร้างความพึงพอใจให้กับลูกค้า Amazon.com จากจุดยืนด้านการปฏิบัติงาน Trainium ได้รับการพิสูจน์แล้วว่าสามารถรองรับบริการระดับ 1 ในระดับ Amazon ได้ ทีม M5 ยังคงย้ายปริมาณงานมากขึ้นไปยัง Trainium เพื่อมอบโมเดลที่ดีที่สุดสำหรับ Amazon ด้วยต้นทุนที่ต่ำที่สุด

โดยสรุป ทีม M5 สามารถดำเนินการฝึกอบรม ML ระดับการผลิตที่คุ้มต้นทุนได้โดยการเพิ่ม Trainium ให้กับกลุ่มเครื่องเร่งความเร็ว เราขอแนะนำให้คุณดู Trainium และอุปกรณ์ Neuron อื่นๆ เช่น AWS Inferentia เพื่อเก็บเกี่ยวผลประโยชน์จากซิลิคอน Amazon ที่สร้างขึ้นตามวัตถุประสงค์สำหรับปริมาณงาน ML เริ่มต้นอย่างง่ายดายด้วยหนึ่งในบทช่วยสอนที่มีโมเดลต่างๆ มากมาย เช่น Llama 2 มีอยู่ใน Trainium.


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

Amazon Search M5 ประหยัดค่าใช้จ่ายการฝึกอบรม LLM ได้ 30% โดยใช้ AWS Trainium | ได้อย่างไร Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.อภินันทน์ ปัตนี เป็นวิศวกรซอฟต์แวร์อาวุโสที่ Amazon Search เขามุ่งเน้นไปที่การสร้างระบบและเครื่องมือสำหรับการฝึกอบรมการเรียนรู้เชิงลึกแบบกระจายที่ปรับขนาดได้และการอนุมานแบบเรียลไทม์

Amazon Search M5 ประหยัดค่าใช้จ่ายการฝึกอบรม LLM ได้ 30% โดยใช้ AWS Trainium | ได้อย่างไร Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.เจมส์พาร์ค เป็นสถาปนิกโซลูชันที่ Amazon Web Services เขาทำงานร่วมกับ Amazon.com เพื่อออกแบบ สร้าง และปรับใช้โซลูชันเทคโนโลยีบน AWS และมีความสนใจเป็นพิเศษในด้าน AI และการเรียนรู้ของเครื่อง ในเวลาว่างเขาสนุกกับการแสวงหาวัฒนธรรมใหม่ ประสบการณ์ใหม่ และติดตามเทรนด์เทคโนโลยีล่าสุด คุณสามารถพบเขาได้ที่ LinkedIn.

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

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

Amazon Search M5 ประหยัดค่าใช้จ่ายการฝึกอบรม LLM ได้ 30% โดยใช้ AWS Trainium | ได้อย่างไร Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.RJ เป็นวิศวกรใน Amazon เขาสร้างและปรับระบบให้เหมาะสมสำหรับระบบแบบกระจายสำหรับการฝึกอบรม และทำงานในการเพิ่มประสิทธิภาพระบบการนำมาใช้เพื่อลดเวลาในการตอบสนองสำหรับการอนุมาน ML ภายนอกงาน เขากำลังสำรวจการใช้ Generative AI เพื่อสร้างสูตรอาหาร

ประทับเวลา:

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