- LLM โอเพนซอร์สของ OpenAI อย่าง GPT-OSS-120B ถูกปรับแต่งให้ทำงานในสภาพแวดล้อม NVIDIA GPU ได้ด้วยประสิทธิภาพการประมวลผล มากกว่า 500 โทเค็นต่อวินาที
- ทดสอบเฟรมเวิร์ก TensorRT-LLM, vLLM, SGLang และเฟรมเวิร์ก การอนุมาน อื่นๆ แบบขนานพร้อมกัน และรองรับสถาปัตยกรรม Hopper กับ Blackwell
- แก้ไขบั๊กความเข้ากันได้ และเพิ่มการรวมรูปแบบการตอบสนองใหม่อย่าง Harmony, KV cache-aware routing และการถอดรหัสแบบคาดการณ์บนพื้นฐาน Eagle ลงในงานปรับแต่งประสิทธิภาพ
- เปรียบเทียบ Tensor Parallelism และ Expert Parallelism แล้วพบว่าเพื่อความหน่วงต่ำให้เลือกการกระจายงานแบบเทนเซอร์ และใช้ TensorRT-LLM MoE Backend ใน Blackwell
- มีแผนปรับปรุงเพิ่มเติมต่อไป โดยรวมถึง Speculative Decoding ที่ใช้โมเดล "draft" ขนาดเล็กเพื่อเพิ่มประสิทธิภาพการทำงาน
ภาพรวม
- เมื่อ GPT-OSS-120B ซึ่งเป็นโมเดลภาษาขนาดใหญ่โอเพนซอร์สล่าสุดของ OpenAI ถูกเผยแพร่พร้อมกัน Baseten ก็ท้าทายเป้าหมายในการสร้างประสิทธิภาพสูงสุด
- Baseten เป็นพันธมิตรเปิดตัวอย่างเป็นทางการของ OpenAI
- จากข้อมูลใช้งานจริงที่เผยแพร่บน OpenRouter แสดงให้เห็นประสิทธิภาพที่เหนือกว่าคู่แข่งในสภาพแวดล้อม NVIDIA GPU
- ด้วยความเชี่ยวชาญของ Flexible Inference Stack และทีมวิศวกรโมเดล ทำให้สามารถปรับปรุงแพตช์ประสิทธิภาพตามเวลาได้อย่างรวดเร็ว
- ภายในเวลาไม่กี่ชั่วโมงระหว่างการเขียนบล็อก ยังเพิ่ม throughput ได้อีก 100 โทเค็นต่อวินาทีและรักษา uptime ที่ 100%
ความพยายามในการเพิ่มประสิทธิภาพการอนุมาน
- ทำการทดสอบและ benchmark กับเฟรมเวิร์กการอนุมานหลากหลาย เช่น TensorRT-LLM, vLLM, SGLang
- ทำงานควบคู่กับการรองรับสถาปัตยกรรม GPU Hopper และ Blackwell
- ผสานเข้ากับส่วนประกอบสำคัญต่างๆ ได้แก่ Baseten Flexible Inference Stack และ NVIDIA Dynamo
- นำเทคนิคการเพิ่มประสิทธิภาพที่ผ่านการตรวจสอบมาใช้ต่อเนื่อง เช่น KV cache-aware routing และ Speculative decoding (Eagle-based)
ด้านล่างคือขั้นตอนสำคัญเพื่อให้ได้ทั้งประสิทธิภาพระดับ SOTA และรองรับ context window แบบครบถ้วนพร้อมกัน
Step 1: การรัน inference ครั้งแรก
- จุดเริ่มต้นคือการรัน baseline inference ให้เร็วที่สุดในวิธีใดก็ได้
- นักวิศวกรหลายคนทำการทดลอง vLLM, SGLang, TensorRT-LLM พร้อมๆ กันบนพื้นฐานการออกแบบจาก GPU
- ปรับระบบให้ TensorRT-LLM ซึ่งมีประสิทธิภาพดีที่สุดสามารถทำงานได้อย่างรวดเร็ว
- ได้รับการรองรับ TensorRT-LLM ทั้งบน Hopper (มี H100 GPU มากที่สุด) และ Blackwell (B200 GPU ที่มีความเร็วสูงกว่า)
- ความยืดหยุ่นของ Baseten Inference Runtime ทำให้รองรับสถาปัตยกรรมแบบใหม่และการสลับเครื่องมือในสแตกได้อย่างรวดเร็ว
Step 2: การแก้บั๊กความเข้ากันได้
- การกำเนิดสถาปัตยกรรมโมเดลใหม่มักมาพร้อมบั๊กที่เกิดจากการผสานเข้ากับเฟรมเวิร์กบ่อยครั้ง
- GPT OSS มีการเพิ่มเทคโนโลยีใหม่ เช่น รูปแบบการตอบกลับ Harmony จึงเกิดบั๊กเมื่อรวมกับเฟรมเวิร์กเดิม
- เพื่อคงความเร็วและความแม่นยำไว้พร้อมกัน มีการแก้ไขและทดสอบซ้ำอย่างต่อเนื่อง และการปรับปรุงที่มีประสิทธิผลถูกส่งกลับเป็นโอเพนซอร์ส
- ผ่านความร่วมมือของชุมชนโอเพนซอร์สทั่วโลก ทำให้เส้นทางการเพิ่มประสิทธิภาพและการแก้บั๊กที่หลากหลายเกิดขึ้นได้อย่างรวดเร็ว
Step 3: การปรับแต่งโมเดล
- แม้ OpenAI จะระบุว่า GPT OSS 120B ทำงานได้บน H100 ตัวเดียว แต่ในการปฏิบัติก็พบว่าการขนานด้วย GPU 4~8 ตัว ให้ผลการทำงานดีกว่า
- Tensor Parallelism มีข้อได้เปรียบด้าน latency ในขณะที่ Expert Parallelism มีข้อได้เปรียบด้าน throughput ของระบบ
- เนื่องจาก Baseten ตั้งเป้าหมายที่การปรับแต่งความหน่วง จึงเลือกใช้ Tensor Parallelism
- บน Blackwell มีการใช้ TensorRT-LLM MoE Backend เพื่อยกระดับประสิทธิภาพ CUDA kernel เมื่อเทียบกับ Triton backend เดิม
- เปิดเผยการตั้งค่าสำหรับ Hopper และ Blackwell โดยแยกตามสภาพแวดล้อม และใน Model API ใช้การตั้งค่าที่อิง Blackwell
การปรับแต่งประสิทธิภาพเพิ่มเติม
- แม้ว่าการปรับแต่งรอบแรกจะทำให้ได้ throughput และ latency ระดับ SOTA แล้ว แต่ยังมีช่องว่างในการพัฒนาปรับปรุงอย่างมาก
- แผนอัปเดตสำคัญถัดไปคือการนำ Speculative Decoding มาใช้
- วิธีนี้ใช้โมเดล "draft" ขนาดเล็กที่เร็วกว่าในการสร้างโทเค็นคาดเดา และให้โมเดลหลักทำการตรวจสอบ
- Baseten แนะนำ Eagle 3 แต่ภายในสแตก inference มีการใช้งานอัลกอริทึมมากกว่า 10 แบบที่ปรับได้ตามสถานการณ์
- Speculative decoding ช่วยเพิ่มความเร็วอย่างมีประสิทธิภาพ โดยประมวลผลการอนุมานหลายโทเค็นในครั้งเดียว
ยังไม่มีความคิดเห็น