• 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 ช่วยเพิ่มความเร็วอย่างมีประสิทธิภาพ โดยประมวลผลการอนุมานหลายโทเค็นในครั้งเดียว

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น