เมื่อ AI ฉลาดขึ้น ทำไมต้องลดความละเอียดข้อมูล? ไขปริศนา Quantization

เมื่อ AI ฉลาดขึ้น ทำไมต้องลดความละเอียดข้อมูล? ไขปริศนา Quantization

Quantization คืออะไร? เบื้องหลังการทำงานของ AI ที่ต้องเจอ

เวลาที่ AI เรียนรู้และทำงาน โดยเฉพาะในโมเดล Deep Learning ขนาดใหญ่ ข้อมูลทั้งหมด ไม่ว่าจะเป็นน้ำหนัก (weights) ของเครือข่าย หรือค่าการกระตุ้น (activations) จะถูกจัดเก็บและประมวลผลด้วย ตัวเลข Floating-point (FP32)

ตัวเลขเหล่านี้มีความละเอียดสูงมาก ทำให้โมเดลมีความแม่นยำ แต่ก็แลกมาด้วยการใช้ หน่วยความจำ จำนวนมหาศาล และต้องใช้พลังประมวลผลที่สูงมากเช่นกัน

Quantization คือเทคนิคสุดฉลาด ที่เข้ามาช่วยแปลงความละเอียดของตัวเลขเหล่านี้ จาก FP32 ที่ปกติใช้ 32 บิต ให้กลายเป็น จำนวนเต็ม 8 บิต (INT8) หรือในบางกรณีอาจลดลงเหลือ 4 บิต

ลองนึกภาพเหมือนการบีบอัดไฟล์รูปภาพ จากไฟล์ต้นฉบับความละเอียดสูงมากๆ ให้กลายเป็นไฟล์ที่เล็กลง เพื่อให้โหลดเร็วขึ้น แชร์ง่ายขึ้น แม้รายละเอียดเล็กๆ น้อยๆ อาจหายไปบ้าง แต่ภาพรวมยังคงใช้งานได้ดีเยี่ยม

ประโยชน์ที่ได้จากการ Quantization: เล็ก เร็ว แรง ประหยัด

การทำ Quantization นำมาซึ่งข้อดีมากมายที่ตอบโจทย์การนำ โมเดล AI ไปใช้งานจริง โดยเฉพาะในโลกที่ทรัพยากรมีจำกัดและทุกอย่างต้องการความรวดเร็ว

ประการแรก คือการ ลดขนาดโมเดล ลงอย่างมหาศาล ทำให้โมเดลใช้พื้นที่เก็บข้อมูลน้อยลง โหลดเร็วขึ้น และใช้ หน่วยความจำ ในการรันน้อยลง

ประการที่สอง คือการเพิ่ม ความเร็ว ใน การอนุมาน (Inference) หรือการที่ AI เอาโมเดลไปใช้งานจริง การคำนวณด้วย จำนวนเต็ม ทำได้เร็วกว่าการคำนวณด้วย Floating-point อย่างเห็นได้ชัดบนฮาร์ดแวร์สมัยใหม่ที่ออกแบบมาเพื่อสิ่งนี้โดยเฉพาะ

ประการที่สาม ส่งผลให้ ลดการใช้พลังงาน ลงได้ เพราะการประมวลผลที่ใช้บิตน้อยกว่า ย่อมกินพลังงานน้อยกว่า เหมาะอย่างยิ่งสำหรับการนำ AI ไปใช้งานบน Edge devices เช่น สมาร์ทโฟน กล้องวงจรปิด หรืออุปกรณ์ IoT ที่มีข้อจำกัดเรื่องแบตเตอรี่และพลังประมวลผล

สิ่งที่ต้องแลก: ความแม่นยำที่อาจลดลง

แน่นอนว่า ของดีมักไม่มีของฟรี การลดความละเอียดของข้อมูลย่อมมี “ราคา” ที่ต้องจ่าย นั่นคือการที่ ความแม่นยำ ของ โมเดล AI อาจลดลงได้

นี่คือ Trade-off สำคัญที่นักพัฒนาต้องพิจารณา การลดบิตลงย่อมหมายถึงการสูญเสียข้อมูลบางส่วนไป ซึ่งอาจส่งผลต่อ ประสิทธิภาพ โดยรวมของโมเดล ทำให้ผลลัพธ์ที่ได้อาจคลาดเคลื่อนไปจากเดิมเล็กน้อย

คำถามสำคัญจึงอยู่ที่ “เสียความแม่นยำไปแค่ไหน” และ “การเสียไปนั้นคุ้มค่ากับประโยชน์ที่ได้มาหรือไม่” เพราะเป้าหมายคือการหาจุดสมดุลที่ดีที่สุด

ประเภทของ Quantization: เลือกให้เหมาะกับงาน

เพื่อให้การทำ Quantization มีประสิทธิภาพและลดผลกระทบต่อ ความแม่นยำ น้อยที่สุด จึงมีหลายวิธีให้เลือกใช้

วิธีแรกคือ Post-training Quantization (PTQ) เป็นการนำโมเดลที่ฝึกเสร็จสมบูรณ์แล้วมาทำการ Quantize วิธีนี้ทำง่าย สะดวก แต่ก็มีโอกาสที่ ความแม่นยำ จะลดลงค่อนข้างมาก หากโมเดลนั้นไวต่อการเปลี่ยนแปลงความละเอียดข้อมูล

อีกวิธีหนึ่งที่ซับซ้อนกว่า แต่ให้ผลลัพธ์ด้าน ความแม่นยำ ที่ดีกว่าคือ Quantization-aware Training (QAT) โดยวิธีนี้จะจำลองกระบวนการ Quantize เข้าไปในขั้นตอนการฝึกโมเดลตั้งแต่แรก ทำให้โมเดลเรียนรู้ที่จะปรับตัวกับการใช้ข้อมูลบิตต่ำตั้งแต่เริ่มต้น จึงรักษาระดับ ประสิทธิภาพ ได้ดีกว่า

การปรับสมดุลระหว่างขนาด ความเร็ว และ ความแม่นยำ คือหัวใจสำคัญในการนำ AI ไปใช้งานจริงอย่างประสบความสำเร็จบนแพลตฟอร์มต่างๆ การเข้าใจว่า Quantization ทำงานอย่างไร และมีผลกระทบอย่างไร จะช่วยให้ตัดสินใจเลือกวิธีการที่ดีที่สุดสำหรับแต่ละโปรเจกต์ได้ เพื่อให้ได้โมเดลที่ตอบโจทย์ทั้งด้านเทคนิคและประโยชน์ใช้สอย