ระดับเนื้อหา: Overview / Implementation considerations
หลักการและการเลือกใช้
Quantization ลด precision ของน้ำหนักหรือ activation ส่วน pruning ตัดส่วนคำนวณที่เห็นว่าสำคัญน้อย ทั้งสองอาจเปลี่ยนความแม่นยำและไม่จำเป็นต้องทำให้ runtime เร็วขึ้นหากฮาร์ดแวร์ไม่รองรับรูปแบบที่ได้
การปรับโมเดลให้เล็กหรือคำนวณน้อยลงเป็นการแลกเปลี่ยน ไม่ใช่ผลดีที่ไม่มีต้นทุน Quantization เปลี่ยนวิธีแทนตัวเลขให้ละเอียดน้อยลง ส่วน activation คือค่าระหว่างชั้น Pruning ลดบางส่วนตามเกณฑ์ที่เลือก แต่ไฟล์เล็กลงไม่ได้หมายความว่าเส้นทางใช้งานเร็วขึ้นเสมอ ต้องดูว่าตัวประมวลผลใช้รูปแบบนั้นได้จริงและคำตอบเฉพาะงานเปลี่ยนอย่างไร
วิศวกรกำหนดฐานเปรียบเทียบพร้อมข้อมูลนำเข้า runtime และฮาร์ดแวร์เดิม Calibration data ในบริบท quantization ใช้ประมาณช่วงตัวเลข ไม่ใช่การสอบเทียบเกจ ต้องเลือกให้แทนข้อมูลฝึกในขอบเขต ไม่ใช้ test มาตั้งช่วง ตรวจน้ำหนักและค่า activation ที่ผิดช่วง รวมทั้งขั้นแปลงพิกัดหลังโมเดล เพื่อให้ความต่างที่วัดเป็นผลของการปรับจริง ไม่ใช่การเปลี่ยนระบบหลายส่วนพร้อมกัน
เลื่อนแผนภาพซ้าย–ขวาเพื่อดูรายละเอียดครบทุกส่วน
ตัวอย่างในบริบทอุตสาหกรรม
ตัวอย่างเชิงออกแบบ: ทดลอง INT8 กับตัวตรวจเกจ โดยใช้ calibration data ที่ครอบคลุมแสงจริง แล้วตรวจว่าเกจเล็กหรือเข็มบางไม่ได้หายหลังเปลี่ยน precision
INT8 เป็นการแทนตัวเลขจำนวนเต็มความกว้างแปดบิตตามการแปลงที่กำหนด ในสถานการณ์สมมติ โมเดลยังพบหน้าปัดใหญ่แต่พลาดเกจเล็กหลังเปลี่ยนรูปแบบ ค่าเฉลี่ยทั้งชุดอาจต่างน้อยเพราะมีเกจใหญ่มากกว่า ต้องตรวจกลุ่มที่ผู้ใช้ต้องอ่านจริง และพิจารณาว่าภาพที่พลาดจะมีเส้นทางตรวจซ้ำหรือไม่ ไม่ยอมรับเพียงเพราะไฟล์ลดขนาดลง
วิศวกรรันภาพเดียวกันผ่านรุ่นเดิมและรุ่นปรับ แล้วตรวจทั้งผลดิบ กรอบหลังกรอง และค่าปลายทาง หากกรอบหายเพราะคะแนนข้ามเกณฑ์เล็กน้อย ต้องทบทวนเกณฑ์ด้วย validation โดยไม่เลือกจาก test ตรวจ runtime ว่าใช้รูปแบบที่ตั้งใจหรือย้อนคำนวณแบบเดิมบางส่วน แล้ววัดผลบนเครื่องเป้าหมายพร้อมการเตรียมข้อมูล เพื่อแยกประโยชน์จริงจากชื่อวิธีปรับ
ขั้นตอนศึกษาและทดลอง
- 1 ทำ baseline ด้วย weights และ runtime ที่ตรึงไว้
- 2 ปรับทีละปัจจัยและใช้ข้อมูล calibration จาก train ไม่ใช้ test
- 3 เปรียบเทียบ artifact หลัง optimize บน holdout และเครื่องจริง
วิธีประเมินและนิยามผล
บันทึกก่อน/หลังของ task metric, p95 latency, peak memory และกำลังไฟภายใต้ input เดียวกัน พร้อมดูผลรายกลุ่ม ไม่เสนอผลตัวเลขหากยังไม่มีการทดลอง
Task metric ต้องตรงกับหน้าที่โมเดลและผลปลายทาง เช่น กรอบที่อ่านต่อได้หรือความผิดมุม ควรระบุเกณฑ์ยอมรับผลที่ลดลงไว้ก่อน พร้อมจำนวนภาพและกลุ่มที่ตรวจ การเปรียบกำลังไฟต้องระบุขอบเขตอุปกรณ์และภาระงาน ไม่ใช้ขนาดไฟล์หรือจำนวนการคำนวณแทนพลังงานที่วัด และไม่กล่าวอ้างผลประหยัดที่ยังไม่ได้ทดลองจริง
วิศวกรวัดงานต่อเนื่องด้วยข้อมูลและขั้นรับส่งเดียวกัน ตรวจความต่างรายช่วงแสงและขนาดเป้าหมาย รวมกรณีอ่านไม่ได้ หากปรับหลายวิธีต้องทดลองแยกก่อนรวมเพื่อรู้ส่วนที่กระทบผล เก็บ artifact หรือไฟล์พร้อมใช้งานทั้งรุ่นก่อนและหลังพร้อม hash และการตั้งค่า เพื่อให้ตรวจซ้ำและย้อนกลับได้ ไม่ใช้ผลจากรุ่นทดลองหนึ่งแทนไฟล์ที่ติดตั้งคนละเวอร์ชัน
ข้อจำกัดและกรณีผิดพลาด
unstructured sparsity อาจไม่ลดเวลาใน runtime ทั่วไป Quantization error อาจกระทบ output บางช่วงมากกว่าค่าเฉลี่ย
Unstructured sparsity คือการมีค่าว่างหรือศูนย์กระจัดกระจายซึ่งไม่ได้ลดขั้นคำนวณตามโครงสร้างที่อุปกรณ์ใช้เสมอ การตัดส่วนแบบมีโครงสร้างก็อาจเปลี่ยนความสามารถเฉพาะงาน ต้องตรวจทั้งความเข้ากันและผลจริง ไม่ถือว่าค่าที่เป็นศูนย์มากทำให้เร็วขึ้นโดยอัตโนมัติ ส่วนความผิดจากการแทนตัวเลขอาจมีผลมากเมื่อคะแนนอยู่ใกล้เกณฑ์หรือเป้าหมายมีรายละเอียดน้อย
การปรับเพื่อทรัพยากรต้องมีรุ่นเดิมให้ย้อนกลับและการตรวจหลังส่งออก หากผลบางกลุ่มเสียควรจำกัดขอบเขตหรือเลือกวิธีอื่น ไม่ปัดเป็นความต่างเล็กโดยไม่ดูผลกระทบ เอกสาร runtime ช่วยเลือกการทดลอง ไม่ยืนยันว่าฮาร์ดแวร์ทุกชนิดรองรับ หรือว่าผลิตภัณฑ์ใช้ INT8 หรือ pruning แล้ว การรับผลต้องอิงไฟล์จริงและการทดสอบที่มีที่มา ไม่ใช้ชื่อเทคนิคเป็นคำรับรอง
รายการตรวจสอบก่อนนำไปใช้
- เครื่องรองรับ precision ที่เลือกหรือไม่
- มีเกณฑ์ยอมรับ accuracy drop หรือไม่
- เก็บโมเดลเดิมสำหรับ rollback หรือไม่