โมเดลและแพลตฟอร์ม AI
TensorRT-LLM: คู่มือการใช้งานแบบครอบคลุมสำหรับการเพิ่มประสิทธิภาพโมเดลภาษาขนาดใหญ่สำหรับการทำงานที่มีประสิทธิภาพสูงสุด
เมื่อความต้องการโมเดลภาษาขนาดใหญ่ (LLM) เพิ่มขึ้นอย่างต่อเนื่อง การรับประกันความเร็ว ประสิทธิภาพ และความสามารถในการปรับขนาดที่ดีได้กลายเป็นสิ่งสำคัญมากกว่าที่เคย NVIDIA’s (NVDA ) TensorRT-LLM เข้ามาแก้ไขปัญหานี้โดยให้เครื่องมือและ tối ưu hóaที่มีประสิทธิภาพซึ่งออกแบบมาเฉพาะสำหรับการทำงานของ LLM TensorRT-LLM เสนอการปรับปรุงประสิทธิภาพที่น่าประทับใจ เช่น การปรับขนาด การรวมเคอร์เนล การจัดกลุ่มแบบเรียลไทม์ และการสนับสนุน GPU หลายตัว ซึ่งช่วยให้สามารถบรรลุความเร็วในการทำงานได้เร็วขึ้น 8 เท่าเมื่อเทียบกับวิธีการแบบดั้งเดิมที่ใช้ CPU
คู่มือการใช้งานแบบครอบคลุมนี้จะสำรวจทุกด้านของ TensorRT-LLM ตั้งแต่สถาปัตยกรรมและคุณลักษณะหลักไปจนถึงตัวอย่างเชิงปฏิบัติสำหรับการใช้แบบจำลอง ไม่ว่าคุณจะเป็นนักวิศวกร AI นักพัฒนาโปรแกรม หรือนักวิจัย คู่มือนี้จะให้ความรู้แก่คุณในการใช้ TensorRT-LLM เพื่อปรับโมเดล LLM สำหรับการทำงานที่มีประสิทธิภาพสูงสุดบน GPU ของ NVIDIA
การเพิ่มความเร็วในการทำงานของ LLM ด้วย TensorRT-LLM
TensorRT-LLM ส่งมอบการปรับปรุงประสิทธิภาพที่น่าประทับใจสำหรับการทำงานของ LLM ตามการทดสอบของ NVIDIA แอปพลิเคชันที่ใช้ TensorRT มีความเร็วในการทำงานที่เร็วขึ้น 8 เท่า เมื่อเทียบกับแพลตฟอร์มที่ใช้ CPU เท่านั้น ซึ่งเป็นความก้าวหน้าที่สำคัญสำหรับการใช้งานแบบเรียลไทม์ เช่น แชทบอท ระบบแนะนำ และระบบอัตโนมัติที่ต้องการการตอบสนองที่รวดเร็ว
วิธีการทำงาน
TensorRT-LLM เพิ่มความเร็วในการทำงานโดยการปรับโมเดลประสาทเทียมในช่วงการปรับใช้โดยใช้เทคนิค เช่น
- การปรับขนาด: ลดความแม่นยำของน้ำหนักและการกระตุ้น ทำให้ขนาดของโมเดลลดลงและความเร็วในการทำงานดีขึ้น
- การรวมและฟิวชั่นของเลเยอร์: รวมการดำเนินการต่างๆ เช่น ฟังก์ชันการกระตุ้นและคูณเมทริกซ์เข้าด้วยกันในหนึ่งการดำเนินการ
- การปรับแต่งเคอร์เนล: เลือกเคอร์เนล CUDA ที่เหมาะสมที่สุดสำหรับการคำนวณ GPU ซึ่งช่วยลดเวลาในการดำเนินการ
การปรับแต่งเหล่านี้รับประกันว่าโมเดล LLM ของคุณจะทำงานได้อย่างมีประสิทธิภาพบนแพลตฟอร์มการปรับใช้หลากหลาย – ตั้งแต่ศูนย์ข้อมูลขนาดใหญ่ไปจนถึงระบบฝังตัว
การเพิ่มประสิทธิภาพการทำงานด้วย TensorRT
ที่สร้างขึ้นบนโมเดลการเขียนโปรแกรมแบบขนาน CUDA ของ NVIDIA TensorRT ให้การปรับแต่งที่มีประสิทธิภาพสูงสำหรับการทำงานบน GPU ของ NVIDIA โดยการปรับกระบวนการต่างๆ เช่น การปรับขนาด การฟิวชั่นของการดำเนินการต่างๆ และการปรับแต่งเคอร์เนล TensorRT รับประกันว่า LLM จะทำงานได้ด้วยความหน่วงต่ำ
การเร่งการทำงาน AI ด้วย TensorRT
TensorRT เร่งการทำงาน AI โดยรวมการปรับแต่งความแม่นยำ เช่น INT8 และ FP16 รูปแบบที่มีความแม่นยำลดลงเหล่านี้ช่วยให้สามารถทำงานได้เร็วขึ้นโดยที่ยังคงความแม่นยำ
การปรับใช้ เริ่มต้น และการปรับขนาดด้วย NVIDIA Triton
เมื่อโมเดลของคุณได้รับการปรับแต่งด้วย TensorRT-LLM คุณสามารถปรับใช้ เริ่มต้น และปรับขนาดได้อย่างง่ายดายโดยใช้ NVIDIA Triton Inference Server Triton เป็นซอฟต์แวร์โอเพ่นซอร์สที่รองรับการทำงานแบบแบทช์แบบไดนามิก การทำงานแบบแบทช์แบบไดนามิก และการทำงานแบบหลายโมเดล
คุณลักษณะหลักของ TensorRT-LLM สำหรับการทำงานของ LLM
API แบบ Python ที่เปิดกว้าง
TensorRT-LLM มี API แบบ Python ที่มีโครงสร้างแบบโมดูลาร์ ซึ่งทำให้กระบวนการในการกำหนด การปรับแต่ง และการทำงานของ LLM ง่ายขึ้น
การจัดกลุ่มแบบเรียลไทม์และการดูแลความสนใจแบบหน้า
หนึ่งในคุณลักษณะที่โดดเด่นของ TensorRT-LLM คือ การจัดกลุ่มแบบเรียลไทม์ ซึ่งปรับแต่งการสร้างข้อความโดยการประมวลผลคำขอหลายๆ คำขอพร้อมกัน
การทำงานหลาย GPU และการทำงานหลายโหนด
สำหรับโมเดลที่ใหญ่ขึ้นหรือการทำงานที่ซับซ้อน TensorRT-LLM รองรับการทำงานหลาย GPU และการทำงานหลายโหนด
การสนับสนุน FP8
ด้วยการมาถึงของ FP8 (8 บิต 浮動小数点) TensorRT-LLM ใช้ GPU H100 ของ NVIDIA เพื่อแปลงน้ำหนักของโมเดลเป็นรูปแบบนี้สำหรับการทำงานที่ได้รับการปรับแต่ง
สถาปัตยกรรมและองค์ประกอบของ TensorRT-LLM
การกำหนดโมเดล
TensorRT-LLM ช่วยให้คุณสามารถกำหนด LLM โดยใช้ API แบบ Python ที่เรียบง่าย
การผูกน้ำหนัก
ก่อนที่จะคอมไพล์โมเดล น้ำหนัก (หรือพารามิเตอร์) จะต้องถูกผูกเข้ากับเครือข่าย
การค้นหารูปแบบและการรวม
การรวมการดำเนินการต่างๆ เช่น ฟังก์ชันการกระตุ้นและการคูณเมทริกซ์เข้าด้วยกันในเคอร์เนล CUDA เดียว
ปลั๊กอิน
คุณสามารถขยายความสามารถของ TensorRT ได้โดยการเขียน ปลั๊กอิน – เคอร์เนลที่กำหนดเองซึ่งสามารถใช้เพื่อปรับแต่งเฉพาะหรือการดำเนินการต่างๆ
การเปรียบเทียบประสิทธิภาพ: การเพิ่มประสิทธิภาพของ TensorRT-LLM
TensorRT-LLM แสดงให้เห็นถึงการเพิ่มประสิทธิภาพที่สำคัญสำหรับการทำงานของ LLM บน GPU ของ NVIDIA
การเริ่มต้นใช้งาน: การติดตั้งและการสร้าง TensorRT-LLM
ขั้นตอนที่ 1: สร้างสภาพแวดล้อมแบบคอนเทนเนอร์
TensorRT-LLM ให้ภาพ Docker เพื่อสร้างสภาพแวดล้อมที่ควบคุมสำหรับการสร้างและทำงานของโมเดล
ขั้นตอนที่ 2: เริ่มต้นคอนเทนเนอร์
เริ่มต้นคอนเทนเนอร์การพัฒนาโดยมีการเข้าถึง GPU ของ NVIDIA
ขั้นตอนที่ 3: สร้าง TensorRT-LLM จากแหล่งที่มา
ภายในคอนเทนเนอร์ คอมไพล์ TensorRT-LLM โดยใช้คำสั่ง
ขั้นตอนที่ 4: ลิงก์ runtime C++ ของ TensorRT-LLM
เมื่อผสาน TensorRT-LLM เข้ากับโครงการ C++ ของคุณ ให้แน่ใจว่าพาธการรวมของโครงการของคุณชี้ไปที่ไดเรกทอรี cpp/include
คุณลักษณะขั้นสูงของ TensorRT-LLM
1. การจัดกลุ่มแบบเรียลไทม์
การจัดกลุ่มแบบเรียลไทม์เปลี่ยนแปลงวิธีการจัดกลุ่มแบบดั้งเดิมโดยเริ่มการทำงานแบบเรียลไทม์สำหรับคำขอที่เสร็จสมบูรณ์ภายในกลุ่ม
2. การดูแลความสนใจแบบหน้า
การดูแลความสนใจแบบหน้าเป็นเทคนิคการปรับแต่งหน่วยความจำสำหรับการจัดการลำดับข้อมูลเข้าขนาดใหญ่
3. ปลั๊กอินแบบกำหนดเอง
TensorRT-LLM ช่วยให้คุณสามารถขยายความสามารถด้วย ปลั๊กอินแบบกำหนดเอง – เคอร์เนลที่กำหนดเองซึ่งสามารถใช้เพื่อปรับแต่งเฉพาะหรือการดำเนินการต่างๆ
4. ความแม่นยำ FP8 บน NVIDIA H100
ด้วยความแม่นยำ FP8 TensorRT-LLM ใช้ GPU H100 ของ NVIDIA เพื่อแปลงน้ำหนักของโมเดลเป็นรูปแบบ 8 บิต 浮動小数点
ตัวอย่าง: การปรับใช้ TensorRT-LLM ด้วย Triton Inference Server
ขั้นตอนที่ 1: ตั้งค่าพื้นที่เก็บโมเดล
สร้างพื้นที่เก็บโมเดลสำหรับ Triton ซึ่งจะเก็บไฟล์โมเดล TensorRT-LLM ของคุณ
ขั้นตอนที่ 2: สร้างไฟล์การกำหนดค่า Triton
ในไดเรกทอรี model_repository/gpt2/ เดียวกัน สร้างไฟล์การกำหนดค่า config.pbtxt ที่บอก Triton ว่าจะโหลดและทำงานโมเดลอย่างไร
ขั้นตอนที่ 3: เริ่มต้นเซิร์ฟเวอร์ Triton
ใช้คำสั่ง Docker ต่อไปนี้เพื่อเริ่มต้นเซิร์ฟเวอร์ Triton โดยมีพื้นที่เก็บโมเดล
ขั้นตอนที่ 4: ส่งคำขอการทำงานให้ Triton
เมื่อเซิร์ฟเวอร์ Triton เริ่มต้นแล้ว คุณสามารถส่งคำขอการทำงานให้กับมันโดยใช้ HTTP หรือ gRPC
แนวทางปฏิบัติที่ดีที่สุดสำหรับการปรับแต่งการทำงานของ LLM ด้วย TensorRT-LLM
1. โปรไฟล์โมเดลของคุณก่อนการปรับแต่ง
ก่อนที่จะใช้การปรับแต่ง เช่น การปรับขนาดหรือการฟิวชั่นของการดำเนินการต่างๆ ใช้เครื่องมือการโปรไฟล์ของ NVIDIA เพื่อทำความเข้าใจจุดอ่อนของโมเดลของคุณ
2. ใช้ความแม่นยำแบบผสมสำหรับการทำงานที่ดีที่สุด
เมื่อปรับแต่งโมเดลด้วย TensorRT-LLM การใช้ ความแม่นยำแบบผสม (การผสมระหว่าง FP16 และ FP32) จะให้ความเร็วที่เพิ่มขึ้นโดยไม่สูญเสียความแม่นยำมาก
3. ใช้การดูแลความสนใจแบบหน้าสำหรับลำดับขนาดใหญ่
สำหรับงานที่เกี่ยวข้องกับลำดับขนาดใหญ่ เช่น การสรุปเอกสารหรือการสนทนาที่มีหลายรอบ ให้ใช้ การดูแลความสนใจแบบหน้า เพื่อปรับแต่งการใช้หน่วยความจำ
4. ปรับแต่งความขนานสำหรับการตั้งค่าหลาย GPU
เมื่อปรับใช้ LLM บนหลาย GPU หรือโหนด ให้ปรับแต่งการตั้งค่าสำหรับ ความขนานของเทนเซอร์ และ ความขนานของ파이프ไลน์ เพื่อให้เหมาะสมกับงานของคุณ
สรุป
TensorRT-LLM เป็นตัวแทนของการเปลี่ยนแปลงในแนวคิดในการปรับแต่งและปรับใช้โมเดลภาษาขนาดใหญ่ ด้วยคุณลักษณะขั้นสูง เช่น การปรับขนาด การฟิวชั่นของการดำเนินการต่างๆ ความแม่นยำ FP8 และการสนับสนุนหลาย GPU TensorRT-LLM ช่วยให้โมเดล LLM สามารถทำงานได้เร็วขึ้นและมีประสิทธิภาพมากขึ้นบน GPU ของ NVIDIA












