เพิ่มประสิทธิภาพของการปรับแต่งโมเดล QLoRA

  • โมเดล QLoRA/LoRA ทำความเร็วได้เพิ่มขึ้น 80% และใช้หน่วยความจำน้อยลง 50% ผ่านขั้นตอน backpropagation ที่ออกแบบขึ้นแบบกำหนดเอง
  • เคอร์เนลทั้งหมดที่เขียนด้วยภาษา Triton ของ OpenAI ได้รับการปรับแต่งโดยไม่สูญเสียความถูกต้อง
  • ใช้งานได้บน NVIDIA GPU โดยไม่ต้องเปลี่ยนฮาร์ดแวร์ (รุ่นตั้งแต่ปี 2018 เป็นต้นไป และรองรับ CUDA 7.5+)
  • รองรับ Flash Attention และการทำ LoRA fine-tuning แบบ 4 บิตและ 16 บิต เพื่อให้เทรนโมเดลได้อย่างมีประสิทธิภาพ
  • สามารถเทรนโมเดล Slim Orca ในสภาพแวดล้อมโลคัลได้โดยลดเวลาจาก 1301 ชั่วโมงเหลือ 260 ชั่วโมงอย่างมาก
  • เวอร์ชันโอเพนซอร์สให้การเทรนเร็วขึ้น 5 เท่า ขณะที่ code path ของ Unsloth Pro และ Max ให้การเทรนเร็วขึ้นได้สูงสุด 30 เท่า

คำแนะนำการติดตั้ง

  • Unsloth รองรับเฉพาะลินุกซ์ดิสทริบิวชันและ Pytorch เวอร์ชัน 2.1 ขึ้นไป
  • สามารถติดตั้งผ่าน Conda และ Pip โดยเลือกติดตั้งแพ็กเกจที่เหมาะสมตามเวอร์ชัน CUDA

ตัวอย่างโมเดล Alpaca

  • ใช้ FastLlamaModel เพื่อโหลดโมเดล Llama และลดการใช้หน่วยความจำด้วยการทำ quantization แบบ 4 บิต
  • เพิ่มประสิทธิภาพด้วยการแพตช์โมเดลและเพิ่มน้ำหนัก LoRA แบบรวดเร็ว
  • สามารถเทรนโมเดลได้โดยใช้ Trainer ของ Huggingface และการโหลดชุดข้อมูล

เป้าหมายและข้อจำกัดในอนาคต

  • มีแผนรองรับ sqrt gradient checkpointing ซึ่งจะช่วยลดการใช้หน่วยความจำลงได้อีก 25%
  • ปัจจุบันรองรับเฉพาะโมเดล Llama แต่มีแผนจะรองรับโมเดลอื่นในอนาคต

การเปรียบเทียบประสิทธิภาพ

  • เมื่อใช้ Tesla T4 GPU, Unsloth แสดงเวลา epoch ที่เร็วกว่าและใช้หน่วยความจำน้อยกว่าเมื่อเทียบกับ Huggingface
  • ทั้งในระบบ GPU เดี่ยวและหลาย GPU, เวอร์ชัน Pro และ Max ของ Unsloth ให้ประสิทธิภาพสูงกว่า

การแก้ปัญหา

  • มีแนวทางแก้ไขเมื่อ bitsandbytes หรือ xformers เชื่อมต่อได้ไม่ถูกต้อง
  • ขณะนี้ยังไม่รองรับ Windows และเมื่อ Xformers กับ Triton รองรับ Windows อย่างเป็นทางการแล้ว Unsloth ก็มีแผนจะรองรับด้วย
  • หากมีปัญหาในการติดตั้ง การอัปเดต pip อาจช่วยแก้ปัญหาได้

ความเห็นของ GN⁺

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

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

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