Show HN: ปรับจูน Llama ได้เร็วขึ้น 80% ใช้หน่วยความจำน้อยลง 50% โดยไม่เสียความแม่นยำ
(github.com/unslothai)เพิ่มประสิทธิภาพของการปรับแต่งโมเดล 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 ทำได้เร็วกว่าเดิมมากและมีประสิทธิภาพด้านหน่วยความจำสูงกว่าวิธีเดิมอย่างชัดเจน การปรับแต่งลักษณะนี้ช่วยลดเวลาและต้นทุนในการเทรนโมเดลปัญญาประดิษฐ์ได้อย่างมาก จึงอาจเป็นโซลูชันที่น่าสนใจแม้สำหรับวิศวกรซอฟต์แวร์ระดับเริ่มต้น นอกจากนี้ บทความนี้ยังเป็นตัวอย่างที่น่าสนใจของความก้าวหน้าด้านโอเพนซอร์ส และแสดงให้เห็นว่าสิ่งนี้ช่วยเพิ่มการเข้าถึงเทคโนโลยีได้อย่างไร
ยังไม่มีความคิดเห็น