ช่วยปกป้อง Great Barrier Reef กับ TensorFlow บน Kaggle เข้าร่วมท้าทาย

การเพิ่มประสิทธิภาพการทำงานร่วมกัน

ดูแลโดย Arm ML Tooling

เอกสารนี้ให้ภาพรวมของ API ทดลองสำหรับการรวมเทคนิคต่างๆ เพื่อปรับโมเดลการเรียนรู้ของเครื่องให้เหมาะสมสำหรับการปรับใช้

ภาพรวม

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

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

ปัญหาที่เกิดขึ้นเมื่อพยายามเชื่อมโยงเทคนิคเหล่านี้เข้าด้วยกันคือการใช้เทคนิคโดยทั่วไปจะทำลายผลลัพธ์ของเทคนิคก่อนหน้านี้ ทำให้เสียประโยชน์โดยรวมของการใช้เทคนิคเหล่านี้พร้อมกันทั้งหมด ตัวอย่างเช่น การจัดกลุ่มไม่ได้รักษาความกระจัดกระจายที่แนะนำโดย pruning API เพื่อแก้ปัญหานี้ เราขอแนะนำเทคนิคการเพิ่มประสิทธิภาพการทำงานร่วมกันแบบทดลองต่อไปนี้:

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

collaborative optimization

เส้นทางการปรับใช้โดยตรง quantization-only (หลังการฝึกหรือ QAT) จะถูกละเว้นในรูปด้านบน

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

รูปด้านล่างแสดงแผนภาพความหนาแน่นของเคอร์เนลน้ำหนักตัวอย่างที่ผ่านไปป์ไลน์การเพิ่มประสิทธิภาพการทำงานร่วมกัน

collaborative optimization density plot

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

ผลลัพธ์

ด้านล่างนี้คือผลลัพธ์ด้านความแม่นยำและการบีบอัดที่เราได้รับเมื่อทำการทดลองกับเส้นทางการปรับให้เหมาะสมการทำงานร่วมกันของ PQAT และ CQAT

การฝึกอบรมการรับรู้เชิงปริมาณที่สงวนไว้ชั่วคราว (PQAT)

แบบอย่าง รายการ พื้นฐาน รุ่นตัดแต่ง (50% กระจัดกระจาย) รุ่น QAT รุ่น PQAT
DS-CNN-L ความแม่นยำ FP32 Top1 95.23% 94.80% (INT8) ปลอม 94.721% (INT8) ปลอม 94.128%
INT8 การหาจำนวนเต็มเต็ม 94.48% 93.80% 94.72% 94.13%
การบีบอัด 528,128 → 434,879 (17.66%) 528,128 → 334,154 (36.73%) 512,224 → 403,261 (21.27%) 512,032 → 303,997 (40.63%)
Mobilenet_v1-224 FP32 ความแม่นยำสูงสุด 1 อันดับแรก 70.99% 70.11% (INT8) ปลอม 70.67% (INT8) ปลอม 70.29%
INT8 การหาจำนวนเต็มเต็ม 69.37% 67.82% 70.67% 70.29%
การบีบอัด 4,665,520 → 3,880,331 (16.83%) 4,665,520 → 2,939,734 (37.00%) 4,569,416 → 3,808,781 (16.65%) 4,569,416 → 2,869,600 (37.20%)

การฝึกอบรมการรับรู้การควอนตัมการรักษาคลัสเตอร์ (CQAT)

แบบอย่าง รายการ พื้นฐาน โมเดลคลัสเตอร์ รุ่น QAT รุ่น CQAT
Mobilenet_v1 บน CIFAR-10 ความแม่นยำ FP32 Top1 94.88% 94.48% (INT8) ปลอม 94.80% (ปลอม INT8) 94.60%
INT8 การหาจำนวนเต็มเต็ม 94.65% 94.41% 94.77% 94.52%
ขนาด 3.00 MB 2.00 MB 2.84 MB 1.94 MB
Mobilenet_v1 บน ImageNet FP32 ความแม่นยำสูงสุด 1 อันดับแรก 71.07% 65.30% (INT8) ปลอม 70.39% (INT8) ปลอม 65.35%
INT8 การหาจำนวนเต็มเต็ม 69.34% 60.60% 70.35% 65.42%
การบีบอัด 4,665,568 → 3,886,277 (16.7%) 4,665,568 → 3,035,752 (34.9%) 4,569,416 → 3,804,871 (16.7%) 4,569,472 → 2,912,655 (36.25%)

ตัวอย่าง

สำหรับตัวอย่างแบบ end-to-end ของเทคนิคการเพิ่มประสิทธิภาพการทำงานร่วมกันอธิบายไว้ที่นี่โปรดดูที่ CQAT , PQAT , sparsity รักษาการจัดกลุ่ม และ PCQAT โน๊ตบุ๊คตัวอย่าง