โมเดลแมชชีนเลิร์นนิง (ML) มีความลึกมากขึ้นในทุกอุตสาหกรรม เวิร์กโฟลว์เริ่มซับซ้อนขึ้น และเวิร์กโหลดทำงานในระดับที่ใหญ่ขึ้น มีการใช้ความพยายามและทรัพยากรอย่างมากในการทำให้โมเดลเหล่านี้มีความแม่นยำมากขึ้น เนื่องจากการลงทุนนี้ส่งผลโดยตรงต่อผลิตภัณฑ์และประสบการณ์ที่ดีขึ้น ในทางกลับกัน การทำให้โมเดลเหล่านี้ทำงานได้อย่างมีประสิทธิภาพในการผลิตนั้นเป็นงานที่ไม่สำคัญซึ่งมักถูกมองข้าม แม้ว่าจะเป็นกุญแจสำคัญในการบรรลุเป้าหมายด้านประสิทธิภาพและงบประมาณก็ตาม ในโพสต์นี้ เราจะกล่าวถึงวิธีการ Exafunction และ การอนุมาน AWS ทำงานร่วมกันเพื่อปลดล็อกการปรับใช้โมเดล ML ที่ง่ายและประหยัดต้นทุนในการผลิต
เอ็กซาฟังก์ชัน เป็นการเริ่มต้นที่เน้นการช่วยให้บริษัทสามารถดำเนินการ ML ได้อย่างมีประสิทธิภาพมากที่สุดเท่าที่จะเป็นไปได้ หนึ่งในผลิตภัณฑ์ของพวกเขาคือ ExaDeployซึ่งเป็นโซลูชัน SaaS ที่ใช้งานง่ายเพื่อรองรับปริมาณงาน ML ตามขนาด ExaDeploy จัดการปริมาณงาน ML ของคุณอย่างมีประสิทธิภาพผ่านทรัพยากรแบบผสม (CPU และตัวเร่งฮาร์ดแวร์) เพื่อเพิ่มการใช้ทรัพยากรให้เกิดประโยชน์สูงสุด นอกจากนี้ยังดูแลการปรับขนาดอัตโนมัติ การคำนวณโคโลเคชั่น ปัญหาเครือข่าย ความทนทานต่อความผิดพลาด และอื่นๆ เพื่อให้การปรับใช้มีประสิทธิภาพและเชื่อถือได้ ตาม AWS Inferentia อินสแตนซ์ Amazon EC2 Inf1 มีจุดประสงค์เพื่อสร้างต้นทุนต่อการอนุมานที่ต่ำที่สุดในระบบคลาวด์ ขณะนี้ ExaDeploy รองรับอินสแตนซ์ Inf1 ซึ่งช่วยให้ผู้ใช้ได้รับทั้งการประหยัดตามฮาร์ดแวร์ของส่วนเร่งและประหยัดตามซอฟต์แวร์ของการปรับทรัพยากรเสมือนจริงและการประสานให้เหมาะสมตามขนาด
ภาพรวมโซลูชัน
ExaDeploy แก้ปัญหาการปรับใช้อย่างมีประสิทธิภาพได้อย่างไร
เพื่อให้แน่ใจว่าการใช้ทรัพยากรการประมวลผลเป็นไปอย่างมีประสิทธิภาพ คุณต้องพิจารณาการจัดสรรทรัพยากรที่เหมาะสม การปรับขนาดอัตโนมัติ ตำแหน่งร่วมของคอมพิวเตอร์ ต้นทุนเครือข่ายและการจัดการเวลาแฝง ความทนทานต่อข้อผิดพลาด การกำหนดเวอร์ชันและความสามารถในการทำซ้ำ และอื่นๆ ในระดับหนึ่ง ความไร้ประสิทธิภาพใดๆ ส่งผลกระทบอย่างมากต่อต้นทุนและเวลาแฝง และบริษัทขนาดใหญ่หลายแห่งได้จัดการกับความไร้ประสิทธิภาพเหล่านี้ด้วยการสร้างทีมงานภายในและความเชี่ยวชาญ อย่างไรก็ตาม ไม่ใช่เรื่องจริงสำหรับบริษัทส่วนใหญ่ที่จะถือว่าค่าใช้จ่ายทางการเงินและองค์กรนี้มาจากการสร้างซอฟต์แวร์ที่สามารถใช้งานทั่วไปได้ ซึ่งไม่ใช่ความสามารถหลักที่บริษัทต้องการ
ExaDeploy ได้รับการออกแบบมาเพื่อแก้ไขจุดบอดด้านประสิทธิภาพการปรับใช้เหล่านี้ รวมถึงที่พบในปริมาณงานที่ซับซ้อนที่สุดบางส่วน เช่น ในแอปพลิเคชัน Autonomous Vehicle และการประมวลผลภาษาธรรมชาติ (NLP) ในปริมาณงาน ML จำนวนมาก ExaDeploy ลดต้นทุนได้มากกว่า 85% โดยไม่สูญเสียเวลาแฝงหรือความแม่นยำ โดยมีเวลาการผสานรวมต่ำเพียงหนึ่งวันวิศวกร ExaDeploy ได้รับการพิสูจน์แล้วว่าปรับขนาดอัตโนมัติและจัดการอินสแตนซ์ทรัพยากรตัวเร่งความเร็วฮาร์ดแวร์พร้อมกันหลายพันรายการโดยไม่ทำให้ระบบเสื่อมประสิทธิภาพ
คุณสมบัติที่สำคัญของ ExaDeploy รวมถึง:
- ทำงานในระบบคลาวด์ของคุณ: โมเดล อินพุต หรือเอาต์พุตของคุณไม่เคยออกจากเครือข่ายส่วนตัวของคุณ ใช้ส่วนลดผู้ให้บริการคลาวด์ของคุณต่อไป
- ทรัพยากรตัวเร่งความเร็วที่ใช้ร่วมกัน: ExaDeploy เพิ่มประสิทธิภาพตัวเร่งที่ใช้โดยเปิดใช้งานโมเดลหรือปริมาณงานหลายตัวเพื่อแบ่งปันทรัพยากรตัวเร่งความเร็ว นอกจากนี้ยังสามารถระบุได้ว่าปริมาณงานหลายรายการปรับใช้โมเดลเดียวกันหรือไม่ จากนั้นจึงแชร์โมเดลกับปริมาณงานเหล่านั้น ซึ่งจะเป็นการเพิ่มประสิทธิภาพตัวเร่งความเร็วที่ใช้ ความสามารถในการปรับสมดุลอัตโนมัติและการระบายโหนดช่วยเพิ่มการใช้ประโยชน์สูงสุดและลดต้นทุน
- โมเดลการปรับใช้แบบไร้เซิร์ฟเวอร์ที่ปรับขนาดได้: ExaDeploy ปรับขนาดอัตโนมัติตามความอิ่มตัวของทรัพยากรตัวเร่งความเร็ว ลดขนาดแบบไดนามิกเป็น 0 หรือมากถึงหลายพันทรัพยากร
- รองรับประเภทการคำนวณที่หลากหลาย: คุณสามารถโหลดโมเดลการเรียนรู้เชิงลึกจากเฟรมเวิร์ก ML ที่สำคัญทั้งหมด รวมถึงโค้ด C++, เคอร์เนล CUDA, ops แบบกำหนดเอง และฟังก์ชัน Python ตามอำเภอใจ
- การลงทะเบียนโมเดลไดนามิกและการกำหนดเวอร์ชัน: โมเดลใหม่หรือเวอร์ชันของโมเดลสามารถลงทะเบียนและรันได้โดยไม่ต้องสร้างใหม่หรือปรับใช้ระบบใหม่
- การดำเนินการแบบจุดต่อจุด: ไคลเอนต์เชื่อมต่อโดยตรงกับทรัพยากรตัวเร่งความเร็วระยะไกล ซึ่งช่วยให้มีเวลาแฝงต่ำและปริมาณงานสูง พวกเขาสามารถจัดเก็บรัฐได้จากระยะไกล
- การดำเนินการแบบอะซิงโครนัส: ExaDeploy รองรับการดำเนินการแบบอะซิงโครนัสของโมเดล ซึ่งช่วยให้ไคลเอ็นต์สามารถขนานการประมวลผลแบบโลคัลด้วยงานรีซอร์สตัวเร่งระยะไกล
- ไปป์ไลน์ระยะไกลที่ทนต่อความผิดพลาด: ExaDeploy ช่วยให้ไคลเอนต์สร้างการคำนวณระยะไกลแบบไดนามิก (แบบจำลอง การประมวลผลล่วงหน้า ฯลฯ) ลงในไปป์ไลน์ที่มีการรับประกันความผิดพลาด ระบบ ExaDeploy จัดการกับความล้มเหลวของพ็อดหรือโหนดด้วยการกู้คืนอัตโนมัติและการเล่นซ้ำ ดังนั้นนักพัฒนาจึงไม่ต้องคิดเกี่ยวกับการรับรองความทนทานต่อข้อผิดพลาด
- การตรวจสอบนอกกรอบ: ExaDeploy มีเมตริก Prometheus และแดชบอร์ด Grafana เพื่อแสดงภาพการใช้ทรัพยากรตัวเร่งความเร็วและเมตริกระบบอื่นๆ
ExaDeploy รองรับ AWS Inferentia
อินสแตนซ์ Amazon EC2 Inf1 ที่ใช้ AWS Inferentia ได้รับการออกแบบมาสำหรับปริมาณงานการอนุมานเฉพาะสำหรับการเรียนรู้เชิงลึก อินสแตนซ์เหล่านี้ให้ทรูพุตสูงถึง 2.3 เท่าและประหยัดค่าใช้จ่ายได้มากถึง 70% เมื่อเทียบกับอินสแตนซ์การอนุมาน GPU รุ่นปัจจุบัน
ขณะนี้ ExaDeploy รองรับ AWS Inferentia และร่วมกันปลดล็อกประสิทธิภาพที่เพิ่มขึ้นและการประหยัดต้นทุนที่ทำได้ผ่านการเร่งฮาร์ดแวร์ที่สร้างขึ้นตามวัตถุประสงค์และการจัดการทรัพยากรที่ปรับให้เหมาะสมตามขนาด มาดูประโยชน์รวมของ ExaDeploy และ AWS Inferentia โดยพิจารณาจากปริมาณงาน ML สมัยใหม่ที่พบได้บ่อยมาก: ปริมาณงานแบบผสมและแบบผสม
ลักษณะภาระงานสมมุติ:
- 15 มิลลิวินาทีของกระบวนการก่อนการประมวลผล/หลังการประมวลผลของ CPU เท่านั้น
- การอนุมานโมเดล (15 ms บน GPU, 5 ms บน AWS Inferentia)
- ไคลเอ็นต์ 10 ราย แต่ละรายส่งคำขอทุกๆ 20 มิลลิวินาที
- ค่าใช้จ่ายสัมพัทธ์โดยประมาณของ CPU:Inferentia:GPU คือ 1:2:4 (อิงตามราคา Amazon EC2 On-Demand สำหรับ c5.xlarge, inf1.xlarge และ g4dn.xlarge)
ตารางด้านล่างแสดงให้เห็นว่าแต่ละตัวเลือกมีรูปร่างอย่างไร:
การติดตั้ง | ทรัพยากรที่จำเป็น | ราคา | ความแอบแฝง |
GPU ที่ไม่มี ExaDeploy | 2 CPU, 2 GPU ต่อไคลเอนต์ (รวม 20 CPU, 20 GPU) | 100 | ms 30 |
GPU พร้อม ExaDeploy | 8 GPU ที่ใช้ร่วมกันใน 10 ไคลเอนต์ 1 CPU ต่อไคลเอนต์ | 42 | ms 30 |
AWS Inferentia ที่ไม่มี ExaDeploy | 1 CPU, 1 AWS Inferentia ต่อไคลเอ็นต์ (รวม 10 CPU, 10 Inferentia) | 30 | ms 20 |
AWS Inferentia พร้อม ExaDeploy | 3 AWS Inferentia ที่ใช้ร่วมกันใน 10 ไคลเอ็นต์ 1 CPU ต่อไคลเอ็นต์ | 16 | ms 20 |
ตัวอย่าง ExaDeploy บน AWS Inferentia
ในส่วนนี้ เราจะอธิบายขั้นตอนการกำหนดค่า ExaDeploy ผ่านตัวอย่างที่มีโหนด inf1 บนโมเดล BERT PyTorch เราเห็นปริมาณงานเฉลี่ย 1140 ตัวอย่าง/วินาทีสำหรับโมเดล bert-base ซึ่งแสดงให้เห็นว่า ExaDeploy นำเสนอโอเวอร์เฮดเพียงเล็กน้อยหรือไม่มีเลยสำหรับโมเดลเดียว สถานการณ์เวิร์กโหลดเดียว
ขั้นตอนที่ 1: ตั้งค่า บริการ Amazon Elastic Kubernetes (Amazon EKS) คลัสเตอร์
สามารถนำคลัสเตอร์ Amazon EKS มาใช้กับเราได้ โมดูล Terraform AWS. สำหรับตัวอย่างของเรา เราใช้ an inf1.xlarge
สำหรับ AWS Inferentia
ขั้นตอนที่ 2: ตั้งค่า ExaDepoy
ขั้นตอนที่สองคือการตั้งค่า ExaDeploy โดยทั่วไป การปรับใช้ ExaDeploy บนอินสแตนซ์ inf1 นั้นตรงไปตรงมา การตั้งค่าส่วนใหญ่จะทำตามขั้นตอนเดียวกับที่ทำกับอินสแตนซ์หน่วยประมวลผลกราฟิก (GPU) ข้อแตกต่างหลักคือการเปลี่ยนแท็กโมเดลจาก GPU เป็น AWS Inferentia และคอมไพล์โมเดลอีกครั้ง ตัวอย่างเช่น การย้ายจากอินสแตนซ์ g4dn เป็น inf1 โดยใช้ Application Programming Interfaces (API) ของ ExaDeploy จำเป็นต้องเปลี่ยนโค้ดประมาณ 10 บรรทัดเท่านั้น
- วิธีง่ายๆ วิธีหนึ่งคือใช้ Exafunction's โมดูล Terraform AWS Kubernetes or แผนภูมิหางเสือ. สิ่งเหล่านี้ปรับใช้ส่วนประกอบ ExaDeploy หลักเพื่อทำงานในคลัสเตอร์ Amazon EKS
- รวบรวมโมเดลเป็นรูปแบบซีเรียลไลซ์ (เช่น TorchScript, โมเดลที่บันทึก TF, ONNX เป็นต้น) สำหรับ AWS Inferentia เราทำตาม บทช่วยสอนนี้.
- ลงทะเบียนโมเดลที่คอมไพล์ในที่เก็บโมดูลของ ExaDeploy
- เตรียมข้อมูลสำหรับโมเดล (เช่น ไม่ใช่
ExaDeploy-specific
).
- เรียกใช้โมเดลจากระยะไกลจากไคลเอนต์
ExaDeploy และ AWS Inferentia: ทำงานร่วมกันได้ดีขึ้น
AWS Inferentia กำลังขยายขอบเขตของปริมาณงานสำหรับการอนุมานแบบจำลองและมอบต้นทุนต่อการอนุมานที่ต่ำที่สุดในระบบคลาวด์ ดังที่ได้กล่าวไปแล้ว บริษัทต่างๆ จำเป็นต้องมีการจัดการที่เหมาะสมเพื่อให้ได้รับประโยชน์จากประสิทธิภาพด้านราคาของ Inf1 ในวงกว้าง การให้บริการ ML เป็นปัญหาที่ซับซ้อนซึ่งหากจัดการภายในองค์กร ต้องใช้ความเชี่ยวชาญซึ่งไม่ได้มาจากเป้าหมายของบริษัท และมักจะทำให้ลำดับเวลาของผลิตภัณฑ์ล่าช้า ExaDeploy ซึ่งเป็นโซลูชันซอฟต์แวร์การปรับใช้ ML ของ Exafunction ได้กลายเป็นผู้นำในอุตสาหกรรม ให้บริการแม้กระทั่งปริมาณงาน ML ที่ซับซ้อนที่สุด ในขณะที่มอบประสบการณ์การผสานรวมที่ราบรื่นและการสนับสนุนจากทีมงานระดับโลก เมื่อทำงานร่วมกัน ExaDeploy และ AWS Inferentia จะปลดล็อกประสิทธิภาพที่เพิ่มขึ้นและประหยัดค่าใช้จ่ายสำหรับปริมาณงานการอนุมานตามขนาด
สรุป
ในโพสต์นี้ เราได้แสดงให้คุณเห็นว่า Exafunction รองรับ AWS Inferentia สำหรับ ML ประสิทธิภาพได้อย่างไร สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างแอปพลิเคชันด้วย Exafunction โปรดไปที่ เอ็กซาฟังก์ชัน. สำหรับแนวทางปฏิบัติที่ดีที่สุดในการสร้างปริมาณงานการเรียนรู้เชิงลึกบน Inf1 โปรดไปที่ อินสแตนซ์ Amazon EC2 Inf1
เกี่ยวกับผู้เขียน
Nicholas Jiang วิศวกรซอฟต์แวร์ Exafunction
Jonathan Ma วิศวกรซอฟต์แวร์ Exafunction
เปรม แนร์ วิศวกรซอฟต์แวร์ Exafunction
Ansul Ramachandran วิศวกรซอฟต์แวร์ Exafunction
Shruti Koparkar ผู้จัดการอาวุโสฝ่ายการตลาดผลิตภัณฑ์ AWS
- AI
- ไอ อาร์ต
- เครื่องกำเนิดไออาร์ท
- หุ่นยนต์ไอ
- ปัญญาประดิษฐ์
- ใบรับรองปัญญาประดิษฐ์
- ปัญญาประดิษฐ์ในการธนาคาร
- หุ่นยนต์ปัญญาประดิษฐ์
- หุ่นยนต์ปัญญาประดิษฐ์
- ซอฟต์แวร์ปัญญาประดิษฐ์
- การอนุมาน AWS
- AWS Machine Learning AWS
- blockchain
- การประชุม blockchain ai
- เหรียญอัจฉริยะ
- ปัญญาประดิษฐ์สนทนา
- การประชุม crypto ai
- โซลูชั่นสำหรับลูกค้า
- ดัล-อี
- การเรียนรู้ลึก ๆ
- google ai
- เรียนรู้เครื่อง
- เพลโต
- เพลโตไอ
- เพลโตดาต้าอินเทลลิเจนซ์
- เกมเพลโต
- เพลโตดาต้า
- เพลโตเกม
- ขนาดไอ
- วากยสัมพันธ์
- ลมทะเล