วิธีที่ Amazon Search บรรลุการอนุมาน T5 ที่มีเวลาแฝงต่ำและมีปริมาณงานสูงด้วย NVIDIA Triton บน AWS

โหนดต้นทาง: 1227376

วิสัยทัศน์ของ Amazon Search คือการช่วยให้ลูกค้าค้นหาได้อย่างง่ายดาย การแก้ไขการสะกดคำของเราช่วยให้คุณพบสิ่งที่คุณต้องการ แม้ว่าคุณจะไม่ทราบการสะกดคำที่แน่นอนของคำที่ต้องการ ในอดีต เราใช้อัลกอริธึมการเรียนรู้ของเครื่อง (ML) แบบคลาสสิกกับวิศวกรรมคุณลักษณะแบบแมนนวลสำหรับการแก้ไขการสะกดคำ เพื่อให้การก้าวกระโดดในประสิทธิภาพการแก้ไขการสะกดคำนั้น เรากำลังเปิดรับแนวทางการเรียนรู้เชิงลึกจำนวนหนึ่ง ซึ่งรวมถึงแบบจำลองลำดับต่อลำดับ โมเดลการเรียนรู้เชิงลึก (DL) นั้นใช้การคำนวณอย่างเข้มข้นทั้งในการฝึกอบรมและการอนุมาน และค่าใช้จ่ายเหล่านี้ทำให้โมเดล DL ในอดีตไม่สามารถทำได้ในการตั้งค่าการผลิตในระดับของ Amazon ในโพสต์นี้ เรานำเสนอผลลัพธ์ของการทดลองการเพิ่มประสิทธิภาพการอนุมาน โดยที่เราเอาชนะอุปสรรคเหล่านั้นและบรรลุความเร็วการอนุมาน 534% สำหรับ Hugging Face T5 Transformer ยอดนิยม

ท้าทาย

ตัวแปลงข้อความเป็นข้อความ (T5, สำรวจขีดจำกัดของการถ่ายโอนการเรียนรู้ด้วย Unified Text-to-Text TransformerReffel et al) เป็นสถาปัตยกรรมแบบจำลองการประมวลผลภาษาธรรมชาติ (NLP) ที่ล้ำสมัย T5 เป็นสถาปัตยกรรมที่มีแนวโน้มดีสำหรับการแก้ไขการสะกดคำ ซึ่งเราพบว่าทำงานได้ดีในการทดลองของเรา โมเดล T5 นั้นง่ายต่อการค้นคว้า พัฒนา และฝึกอบรม ด้วยเฟรมเวิร์กการเรียนรู้เชิงลึกแบบโอเพนซอร์สและการวิจัยทางวิชาการและองค์กรอย่างต่อเนื่อง

อย่างไรก็ตาม เป็นการยากที่จะบรรลุการอนุมานระดับการผลิตและเวลาแฝงต่ำด้วย T5 ตัวอย่างเช่น การอนุมานเดียวด้วย PyTorch T5 ใช้เวลา 45 มิลลิวินาทีบนหนึ่งในสี่ NVIDIA V100 Tensor Core GPUs ที่ติดตั้งอินสแตนซ์ Amazon Elastic Compute Cloud (EC2) p3.8xlarge (หมายเลขการอนุมานทั้งหมดที่รายงานมีไว้สำหรับอินพุตของโทเค็น 9 รายการและเอาต์พุตของโทเค็น 11 รายการ เวลาแฝงของสถาปัตยกรรม T5 จะไวต่อทั้งความยาวอินพุตและเอาต์พุต)

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

  • ความแอบแฝง – วิธีรับรู้การอนุมาน T5 ในเวลาแฝง P50 น้อยกว่า 99 มิลลิวินาที
  • ทางเข้า – วิธีจัดการกับคำขออนุมานขนาดใหญ่พร้อมกัน
  • ประหยัดต้นทุน – วิธีควบคุมต้นทุนให้อยู่ในการควบคุม

ในส่วนที่เหลือของโพสต์นี้ เราจะอธิบายว่าการเพิ่มประสิทธิภาพการอนุมานของ NVIDIA คือ NVIDIA TensorRT คอมไพเลอร์และโอเพ่นซอร์ส เซิร์ฟเวอร์การอนุมาน NVIDIA Triton—แก้ปัญหาความท้าทายเหล่านั้น อ่าน แถลงข่าวของ NVIDIA เพื่อเรียนรู้เกี่ยวกับการอัปเดต

NVIDIA TensorRT: ลดต้นทุนและเวลาแฝงด้วยการเพิ่มประสิทธิภาพการอนุมาน

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

NVIDIA TensorRT เป็น SDK สำหรับการอนุมานการเรียนรู้เชิงลึกที่มีประสิทธิภาพสูง TensorRT มอบทั้งรันไทม์ที่ปรับให้เหมาะสม โดยใช้เคอร์เนลที่ปรับให้เหมาะสมระดับต่ำที่มีอยู่ใน NVIDIA GPU และกราฟแบบจำลองเฉพาะการอนุมาน ซึ่งจัดเรียงการคำนวณการอนุมานใหม่ตามลำดับที่เหมาะสมที่สุด

ในส่วนต่อไปนี้ เราจะพูดถึงรายละเอียดที่เกิดขึ้นเบื้องหลัง TensorRT และวิธีการเร่งประสิทธิภาพ

  1. ลดความแม่นยำ เพิ่มปริมาณงานสูงสุดด้วย FP16 หรือ INT8 โดยการวัดปริมาณโมเดลในขณะที่ยังคงความถูกต้อง
  2. เลเยอร์และเทนเซอร์ฟิวชั่น เพิ่มประสิทธิภาพการใช้หน่วยความจำ GPU และแบนด์วิดท์โดยการรวมโหนดในเคอร์เนลเพื่อหลีกเลี่ยงเวลาแฝงในการเรียกใช้เคอร์เนล
  3. การปรับเคอร์เนลอัตโนมัติ เลือกชั้นข้อมูลและอัลกอริทึมที่ดีที่สุดตามแพลตฟอร์ม GPU เป้าหมายและรูปร่างเคอร์เนลข้อมูล
  4. หน่วยความจำไดนามิกเทนเซอร์ ลดรอยเท้าของหน่วยความจำโดยเพิ่มการใช้หน่วยความจำที่ไม่จำเป็นของผลลัพธ์ระดับกลาง และนำหน่วยความจำกลับมาใช้ใหม่สำหรับเทนเซอร์อย่างมีประสิทธิภาพ
  5. การดำเนินการหลายสตรีม ใช้การออกแบบที่ปรับขนาดได้เพื่อประมวลผลอินพุตสตรีมหลายรายการควบคู่ไปกับสตรีม CUDA เฉพาะ
  6. ฟิวชั่นเวลา ปรับโครงข่ายประสาทเทียมที่เกิดซ้ำตามขั้นตอนเวลาด้วยเมล็ดที่สร้างขึ้นแบบไดนามิก

T5 ใช้ชั้นหม้อแปลงเป็นตัวสร้างสำหรับสถาปัตยกรรม รุ่นล่าสุดของ NVIDIA TensorRT 8.2 นำเสนอการปรับแต่งใหม่สำหรับรุ่น T5 และ GPT-2 สำหรับการอนุมานแบบเรียลไทม์ ในตารางต่อไปนี้ เราสามารถเห็นการเร่งความเร็วด้วย TensorRT ในรุ่น T5 สาธารณะบางรุ่นที่ทำงานบนอินสแตนซ์ Amazon EC2G4dn ซึ่งขับเคลื่อนโดย NVIDIA T4 GPU และอินสแตนซ์ EC2 G5 ซึ่งขับเคลื่อนโดย NVIDIA A10G GPU

 

รุ่น ตัวอย่าง เวลาแฝง Pytorch พื้นฐาน (มิลลิวินาที) TensorRT 8.2 เวลาแฝง (มิลลิวินาที) เร่งความเร็วเทียบกับพื้นฐาน HF
FP32 FP32 FP16 FP32 FP16
Encoder ถอดรหัส จบสิ้น Encoder ถอดรหัส จบสิ้น Encoder ถอดรหัส จบสิ้น จบสิ้น จบสิ้น
t5-เล็ก g4dn.xlarge 5.98 9.74 30.71 1.28 2.25 7.54 0.93 1.59 5.91 ลด 407.40% ลด 519.34%
g5.xlarge 4.63 7.56 24.22 0.61 1.05 3.99 0.47 0.80 3.19 ลด 606.66% ลด 760.01%
t5-เบส g4dn.xlarge 11.61 19.05 78.44 3.18 5.45 19.59 3.15 2.96 13.76 ลด 400.48% ลด 569.97%
g5.xlarge 8.59 14.23 59.98 1.55 2.47 11.32 1.54 1.65 8.46 ลด 530.05% ลด 709.20%

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเพิ่มประสิทธิภาพและการจำลองแบบของประสิทธิภาพที่แนบ โปรดดูที่ เพิ่มประสิทธิภาพ T5 และ GPT-2 เพื่อการอนุมานแบบเรียลไทม์ด้วย NVIDIA TensorRT.

สิ่งสำคัญคือต้องสังเกตว่าการคอมไพล์จะรักษาความถูกต้องของโมเดลไว้ เนื่องจากทำงานในสภาพแวดล้อมการอนุมานและการจัดตารางการคำนวณ โดยปล่อยให้วิทยาศาสตร์แบบจำลองไม่เปลี่ยนแปลง ต่างจากการบีบอัดเพื่อเอาน้ำหนักออก เช่น การกลั่นหรือการตัดแต่งกิ่ง NVIDIA TensorRT อนุญาตให้รวมการคอมไพล์กับ quantization เพื่อให้ได้กำไรเพิ่มเติม การหาปริมาณมีประโยชน์สองเท่าบนฮาร์ดแวร์ NVIDIA ล่าสุด: ลดการใช้หน่วยความจำและเปิดใช้งานการใช้ NVIDIA Tensor Cores, เซลล์เฉพาะ DL ที่เรียกใช้เมทริกซ์ผสมคูณเพิ่มในความแม่นยำแบบผสม

ในกรณีของการทดลอง Amazon Search กับโมเดล Hugging Face T5 การแทนที่ PyTorch ด้วย TensorRT สำหรับการอนุมานโมเดลจะเพิ่มความเร็วขึ้น 534%

NVIDIA Triton: การให้บริการการอนุมานด้วยอัตราความหน่วงต่ำและปริมาณงานสูง

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

NVIDIA Triton เป็นซอฟต์แวร์อนุมานที่ให้บริการสนับสนุนรันไทม์ของโมเดลอย่างกว้างขวาง (NVIDIA TensorRT, ONNX, PyTorch, XGBoost เป็นต้น) และแบ็กเอนด์โครงสร้างพื้นฐาน รวมถึง GPU, CPU และ AWS Inferentia

ผู้ปฏิบัติงาน ML รัก Triton ด้วยเหตุผลหลายประการ ความสามารถในการแบตช์แบบไดนามิกช่วยให้สามารถรวบรวมคำขอการอนุมานได้ในระหว่างความล่าช้าที่ผู้ใช้กำหนดและภายในขนาดแบตช์สูงสุดที่ผู้ใช้กำหนดเอง ดังนั้นการอนุมาน GPU จะถูกแบทช์ โดยตัดค่าใช้จ่ายการสื่อสารระหว่าง CPU-GPU โปรดทราบว่าการแบทช์แบบไดนามิกเกิดขึ้นที่ฝั่งเซิร์ฟเวอร์และภายในกรอบเวลาที่สั้นมาก ดังนั้นไคลเอ็นต์ที่ร้องขอจะยังคงมีประสบการณ์การเรียกใช้แบบซิงโครนัสที่เกือบจะเรียลไทม์ ผู้ใช้ไทรทันยังเพลิดเพลินกับความสามารถในการเรียกใช้โมเดลพร้อมกัน GPU เป็นมัลติทาสก์ที่ทรงพลังซึ่งยอดเยี่ยมในการดำเนินการปริมาณงานที่มีการประมวลผลสูงแบบคู่ขนาน Triton เพิ่มการใช้งาน GPU และปริมาณงานสูงสุดโดยใช้สตรีม CUDA เพื่อเรียกใช้อินสแตนซ์ของรุ่นหลาย ๆ ตัวพร้อมกัน อินสแตนซ์ของโมเดลเหล่านี้อาจเป็นโมเดลที่แตกต่างจากเฟรมเวิร์กที่แตกต่างกันสำหรับกรณีการใช้งานที่แตกต่างกัน หรือเป็นสำเนาโดยตรงของโมเดลเดียวกัน ซึ่งแปลเป็นการปรับปรุงปริมาณงานโดยตรงเมื่อคุณมีหน่วยความจำ GPU ที่ไม่ได้ใช้งานเพียงพอ นอกจากนี้ เนื่องจาก Triton ไม่ได้ผูกติดอยู่กับเฟรมเวิร์กการพัฒนา DL ที่เฉพาะเจาะจง มันจึงช่วยให้นักวิทยาศาสตร์สามารถแสดงออกอย่างเต็มที่ในเครื่องมือที่พวกเขาเลือก

ด้วย Triton บน AWS Amazon Search คาดว่าจะให้บริการได้ดีขึ้น Amazon.com ลูกค้าและตอบสนองความต้องการแฝงด้วยต้นทุนที่ต่ำ การผสานรวมอย่างแน่นหนาระหว่างรันไทม์ TensorRT และเซิร์ฟเวอร์ Triton ช่วยอำนวยความสะดวกในการพัฒนา การใช้โครงสร้างพื้นฐานระบบคลาวด์ของ AWS ช่วยให้ปรับขนาดขึ้นหรือลงในไม่กี่นาทีโดยอิงตามข้อกำหนดปริมาณงาน ในขณะที่ยังคงรักษาระดับความเชื่อถือได้และความปลอดภัยไว้สูง

AWS ลดอุปสรรคในการเข้าอย่างไร

แม้ว่า Amazon Search จะทำการทดลองนี้บนโครงสร้างพื้นฐานของ Amazon EC2 แต่บริการอื่นๆ ของ AWS ก็มีอยู่เพื่ออำนวยความสะดวกในการพัฒนา ฝึกอบรม และโฮสต์โซลูชันการเรียนรู้เชิงลึกที่ล้ำสมัย

ตัวอย่างเช่น AWS และ NVIDIA ได้ร่วมมือกันเพื่อเผยแพร่การใช้งาน Triton Inference Server ที่ได้รับการจัดการใน อเมซอน SageMaker ; ดูข้อมูลเพิ่มเติมได้ที่ ปรับใช้ AI ที่รวดเร็วและปรับขนาดได้ด้วยเซิร์ฟเวอร์ NVIDIA Triton Inference ใน Amazon SageMaker. นอกจากนี้ AWS ยังร่วมมือกับ Hugging Face เพื่อพัฒนาการผสานรวมที่ได้รับการจัดการและปรับให้เหมาะสมระหว่าง Amazon SageMaker และ Hugging Face Transformers ซึ่งเป็นเฟรมเวิร์กโอเพนซอร์ซซึ่งได้มาจากโมเดล Amazon Search T5 อ่านเพิ่มเติมได้ที่ https://aws.amazon.com/machine-learning/hugging-face/.

เราสนับสนุนให้ลูกค้าที่ใช้แอปพลิเคชันการเรียนรู้เชิงลึกของ CPU และ GPU ที่ไวต่อเวลาแฝงเพื่อพิจารณา NVIDIA TensorRT และ Triton บน AWS แจ้งให้เราทราบสิ่งที่คุณสร้าง!

หลงใหลเกี่ยวกับการเรียนรู้เชิงลึกและการสร้างโซลูชันที่อิงตามการเรียนรู้เชิงลึกสำหรับ Amazon Search หรือไม่ ตรวจสอบของเรา หน้าอาชีพ


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

RJ เป็นวิศวกรในทีม Search M5 ซึ่งเป็นผู้นำในการสร้างระบบการเรียนรู้เชิงลึกขนาดใหญ่สำหรับการฝึกอบรมและการอนุมาน นอกเวลางาน เขาสำรวจอาหารประเภทต่างๆ และเล่นกีฬาแร็กเก็ต

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

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

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

แอนโธนี่ โค ปัจจุบันทำงานเป็นวิศวกรซอฟต์แวร์ที่ Search M5 Palo Alto, CA เขาทำงานเกี่ยวกับการสร้างเครื่องมือและผลิตภัณฑ์สำหรับการปรับใช้โมเดลและการเพิ่มประสิทธิภาพการอนุมาน นอกเวลางาน เขาชอบทำอาหารและเล่นกีฬาแร็กเก็ต

โอลิวิเยร์ ครูแชนท์ เป็นสถาปนิกโซลูชัน Machine Learning Specialist Solutions ที่ AWS ซึ่งตั้งอยู่ในฝรั่งเศส Olivier ช่วยลูกค้า AWS ตั้งแต่สตาร์ทอัพขนาดเล็กไปจนถึงองค์กรขนาดใหญ่ พัฒนาและปรับใช้แอปพลิเคชันแมชชีนเลิร์นนิงระดับการผลิต ในเวลาว่าง เขาชอบอ่านงานวิจัยและสำรวจพื้นที่รกร้างว่างเปล่ากับเพื่อนๆ และครอบครัว

อานิช โมฮัน เป็นสถาปนิก Machine Learning ที่ NVIDIA และเป็นผู้นำด้านเทคนิคสำหรับการมีส่วนร่วม ML และ DL กับลูกค้าในภูมิภาคซีแอตเทิลที่ใหญ่กว่า

เจียหงหลิว เป็น Solution Architect ในทีม Cloud Service Provider ที่ NVIDIA เขาช่วยลูกค้าในการใช้การเรียนรู้ด้วยเครื่องและโซลูชัน AI ที่ใช้ประโยชน์จากการประมวลผลแบบเร่งความเร็วของ NVIDIA เพื่อจัดการกับความท้าทายในการฝึกอบรมและการอนุมาน ในยามว่าง เขาสนุกกับการพับกระดาษ โปรเจกต์ทำเอง และเล่นบาสเก็ตบอล

เอลิยูธ ไตรอานา เป็น Developer Relations Manager ที่ NVIDIA เขาเชื่อมโยงผู้นำผลิตภัณฑ์ Amazon และ AWS นักพัฒนา และนักวิทยาศาสตร์กับนักเทคโนโลยีและผู้นำผลิตภัณฑ์ของ NVIDIA เพื่อเร่งปริมาณงาน Amazon ML/DL, ผลิตภัณฑ์ EC2 และบริการ AWS AI นอกจากนี้ Eliuth ยังเป็นนักขี่จักรยานเสือภูเขา นักเล่นสกี และนักเล่นโป๊กเกอร์ที่หลงใหล

ประทับเวลา:

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