Site icon Anat Obom

Quantization AI คืออะไร? บีบอัดสมองกลขนาดยักษ์ให้ใส่ในมือถือและนาฬิกาได้ อธิบายให้เด็กเข้าใจแบบจัดกระเป๋าเดินทาง

“กระเป๋าใบนี้น้ำหนักเกินแน่ๆ” ภรรยาผมพูดพลางนั่งทับฝากระเป๋าเดินทางที่ปิดไม่ลง คืนก่อนบินไปญี่ปุ่นห้าวัน สายการบินราคาประหยัดให้โหลดได้แค่ยี่สิบกิโลกรัม แต่กระเป๋าของสามคนพ่อแม่ลูกหนักเกือบยี่สิบเจ็ด

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

ลูกพูดขึ้นมาว่า “นี่เหมือนที่ครูคอมเล่าเรื่องทำ AI ให้เล็กลงเลย” คืนนั้นเลยกลายเป็นคืนที่เราคุยเรื่อง Model Compression กันบนพื้นห้องนอน ท่ามกลางกองเสื้อผ้า

ของที่ต้องจัดลงกระเป๋าในบทความนี้

ทำไมโมเดล AI ถึงใหญ่นัก

โมเดล AI ประกอบด้วยตัวเลขจำนวนมหาศาลที่เรียกว่าพารามิเตอร์ หรือน้ำหนัก ตัวเลขเหล่านี้คือสิ่งที่โมเดลเรียนรู้มา เหมือนเส้นทางเชื่อมต่อในสมอง โมเดลภาษาขนาดใหญ่มีพารามิเตอร์หลายพันล้านถึงหลายแสนล้านตัว

ในการฝึกโมเดล แต่ละพารามิเตอร์มักถูกเก็บเป็นตัวเลขทศนิยมแบบละเอียด เช่น รูปแบบ FP32 ที่ใช้พื้นที่ 32 บิต หรือ 4 ไบต์ต่อหนึ่งตัวเลข ลองคิดดู โมเดลที่มีเจ็ดพันล้านพารามิเตอร์ ถ้าเก็บแบบ FP32 จะใช้พื้นที่ราว 28 กิกะไบต์ ซึ่งใหญ่กว่าหน่วยความจำของมือถือส่วนใหญ่หลายเท่า

นี่คือเหตุผลที่ AI ส่วนใหญ่ต้องทำงานบนเซิร์ฟเวอร์ในศูนย์ข้อมูล ถ้าอยากให้มันมาอยู่ในมือถือหรือนาฬิกา เราต้องจัดกระเป๋าใหม่

Model Compression คืออะไร

Model Compression หรือการบีบอัดโมเดล คือกลุ่มเทคนิคที่ทำให้โมเดล AI มีขนาดเล็กลง ใช้หน่วยความจำน้อยลง ทำงานเร็วขึ้น และกินพลังงานน้อยลง โดยพยายามรักษาความสามารถของโมเดลไว้ให้ได้มากที่สุด

เทคนิคหลักมีสามแบบ ซึ่งตรงกับวิธีจัดกระเป๋าของบ้านเราพอดี

Quantization: ลดทศนิยมจาก FP32 สู่ INT8

Quantization คือการลดความละเอียดของตัวเลขที่ใช้เก็บพารามิเตอร์ในโมเดล เช่น เปลี่ยนจากตัวเลขทศนิยมแบบ 32 บิต เป็นจำนวนเต็มแบบ 8 บิต หรือ INT8 ทำให้โมเดลเล็กลงราวสี่เท่า และคำนวณได้เร็วขึ้นบนชิปที่รองรับ

ผมอธิบายให้ลูกฟังด้วยตัวอย่างง่ายๆ สมมติน้ำหนักตัวหนึ่งในโมเดลคือ 0.73829164 ถ้าเราปัดเหลือ 0.74 ตัวเลขก็ยังใกล้เคียงเดิมมาก แต่ใช้ที่เก็บน้อยลงเยอะ เมื่อทำแบบนี้กับตัวเลขหลายพันล้านตัว ขนาดโมเดลก็ลดลงมหาศาล

โมเดลเจ็ดพันล้านพารามิเตอร์ที่เคยใหญ่ 28 กิกะไบต์ เมื่อบีบเป็น INT4 จะเหลือราวสี่กิกะไบต์ ใส่ในคอมพิวเตอร์หรือมือถือรุ่นใหม่ได้แล้ว

ความสูงชั้นพิมพ์ 3D: ละเอียดน้อยลงแต่ยังสวย

เวลาสั่งพิมพ์งาน 3 มิติ มีค่าหนึ่งที่ผมต้องเลือกทุกครั้ง คือความสูงของแต่ละชั้น หรือ Layer Height ถ้าตั้งไว้ 0.1 มิลลิเมตร ผิวงานจะเนียนละเอียดมาก แต่ใช้เวลาพิมพ์นานหลายชั่วโมง ถ้าตั้งไว้ 0.2 หรือ 0.3 มิลลิเมตร งานจะเสร็จเร็วกว่าสองสามเท่า แต่ถ้ามองใกล้ๆ จะเห็นเส้นชั้นชัดขึ้นเล็กน้อย

ผมพิมพ์ตัวหมากรุกให้ลูกดูสองตัว ตัวหนึ่ง 0.1 อีกตัว 0.28 แล้วถามว่าต่างกันไหม ลูกต้องยกขึ้นมาส่องใกล้ๆ ถึงจะเห็นความต่าง สำหรับตัวหมากที่ใช้เล่นจริง แบบ 0.28 ดีพอทุกประการ และพิมพ์เสร็จในหนึ่งในสามของเวลา

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

Pruning: ตัดกิ่งที่ไม่จำเป็น

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

งานวิจัยชื่อ Deep Compression ที่เผยแพร่ในช่วงปี 2015 ถึง 2016 แสดงให้เห็นว่า เมื่อใช้ Pruning ร่วมกับ Quantization และเทคนิคบีบอัดอื่น โมเดลจดจำภาพที่มีชื่อเสียงในยุคนั้นมีขนาดเล็กลงหลายสิบเท่า โดยความแม่นยำแทบไม่ลดลง

Knowledge Distillation: ให้ครูสอนนักเรียนตัวเล็ก

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

เหมือนตอนที่ภรรยาผมจัดกระเป๋าใบเล็กสำหรับวันเดินเที่ยว โดยดูจากกระเป๋าใบใหญ่ว่าอะไรคือของที่ใช้บ่อยที่สุด แล้วหยิบมาเฉพาะสิ่งนั้น

ประหยัดแบตเตอรี่และพลังงานได้อย่างไร

นี่คือเหตุผลที่นาฬิกาอัจฉริยะทุกวันนี้ตรวจจับการหกล้ม จับคำสั่งเสียง หรือวิเคราะห์การนอนได้ในตัวเครื่อง โดยแบตยังอยู่ได้ทั้งวัน วงการนี้มีชื่อเรียกว่า TinyML หรือ AI บนอุปกรณ์ขนาดจิ๋ว

ราคาที่ต้องจ่ายเมื่อบีบอัด

เหมือนกระเป๋าที่จัดแน่นเกินไป สุดท้ายอาจลืมอะไรสำคัญไว้ บ้านเราเกือบลืมยาประจำตัวของคุณย่าเพราะมัวแต่ลดน้ำหนักกระเป๋า โชคดีที่ลูกเช็กรายการซ้ำก่อนออกจากบ้าน

สรุปเทคนิคจัดกระเป๋า AI

คำถามชวนลูกคิดระหว่างจัดกระเป๋า

สิบเก้ากิโลครึ่งที่ครบทุกอย่าง

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

ตอนรอขึ้นเครื่องกลับบ้าน เขาบอกผมว่า “AI ในมือถือหนูก็เป็นกระเป๋าที่จัดเก่งๆ นี่แหละ ของไม่ครบเท่าบ้าน แต่มีสิ่งที่ต้องใช้” บางครั้งการเข้าใจเทคโนโลยีที่ซับซ้อนที่สุด ก็เริ่มจากกระเป๋าเดินทางที่ปิดไม่ลงใบเดียว

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

Exit mobile version