ดูแลโดย Arm ML Tooling
เอกสารนี้ให้ภาพรวมของ API ทดลองสำหรับการรวมเทคนิคต่างๆ เพื่อปรับโมเดลการเรียนรู้ของเครื่องให้เหมาะสมสำหรับการปรับใช้
ภาพรวม
การเพิ่มประสิทธิภาพการทำงานร่วมกันเป็นกระบวนการที่ครอบคลุมซึ่งครอบคลุมเทคนิคต่างๆ เพื่อสร้างแบบจำลองที่เมื่อนำไปใช้จริง แสดงให้เห็นถึงความสมดุลที่ดีที่สุดของคุณลักษณะเป้าหมาย เช่น ความเร็วในการอนุมาน ขนาดโมเดล และความแม่นยำ
แนวคิดของการเพิ่มประสิทธิภาพการทำงานร่วมกันคือการสร้างเทคนิคแต่ละอย่างโดยใช้เทคนิคทีละอย่างเพื่อให้ได้ผลการเพิ่มประสิทธิภาพที่สะสมไว้ การผสมผสานของการเพิ่มประสิทธิภาพต่อไปนี้เป็นไปได้หลายอย่าง:
- การตัดแต่งกิ่งน้ำหนัก
- การจัดกลุ่มน้ำหนัก
การหาปริมาณ
ปัญหาที่เกิดขึ้นเมื่อพยายามเชื่อมโยงเทคนิคเหล่านี้เข้าด้วยกันคือการใช้เทคนิคโดยทั่วไปจะทำลายผลลัพธ์ของเทคนิคก่อนหน้านี้ ทำให้เสียประโยชน์โดยรวมของการใช้เทคนิคเหล่านี้พร้อมกันทั้งหมด ตัวอย่างเช่น การจัดกลุ่มไม่ได้รักษาความกระจัดกระจายที่แนะนำโดย pruning API เพื่อแก้ปัญหานี้ เราขอแนะนำเทคนิคการเพิ่มประสิทธิภาพการทำงานร่วมกันแบบทดลองต่อไปนี้:
- Sparsity รักษาคลัสเตอร์
- Sparsity รักษา quantization ฝึกอบรมตระหนักถึง (PQAT)
- คลัสเตอร์รักษา quantization ฝึกอบรมตระหนักถึง (CQAT)
- การฝึกอบรมการรับรู้เชิงปริมาณที่กระจัดกระจายและคลัสเตอร์
สิ่งเหล่านี้มีเส้นทางการปรับใช้หลายเส้นทางที่สามารถใช้ในการบีบอัดโมเดลการเรียนรู้ของเครื่องและใช้ประโยชน์จากการเร่งฮาร์ดแวร์ในเวลาอนุมาน ไดอะแกรมด้านล่างแสดงเส้นทางการปรับใช้หลายเส้นทางที่สามารถสำรวจได้ในการค้นหาแบบจำลองที่มีลักษณะการปรับใช้ที่ต้องการ โดยโหนดปลายสุดเป็นโมเดลที่พร้อมสำหรับการปรับใช้ ซึ่งหมายความว่ามีปริมาณบางส่วนหรือทั้งหมดและอยู่ในรูปแบบ tflite การเติมสีเขียวระบุถึงขั้นตอนที่จำเป็นต้องมีการฝึกใหม่/การปรับละเอียด และเส้นขอบสีแดงที่ขีดจะเน้นที่ขั้นตอนการเพิ่มประสิทธิภาพการทำงานร่วมกัน เทคนิคที่ใช้เพื่อให้ได้โมเดลที่โหนดที่กำหนดจะระบุไว้ในฉลากที่เกี่ยวข้อง
เส้นทางการปรับใช้โดยตรง quantization-only (หลังการฝึกหรือ QAT) จะถูกละเว้นในรูปด้านบน
แนวคิดคือการเข้าถึงโมเดลที่ปรับให้เหมาะสมอย่างสมบูรณ์ที่ระดับที่สามของแผนผังการปรับใช้ด้านบน อย่างไรก็ตาม ระดับอื่นๆ ของการเพิ่มประสิทธิภาพสามารถพิสูจน์ได้ว่าเป็นที่น่าพอใจและบรรลุความหน่วงแฝงในการอนุมานที่ต้องการ/การแลกเปลี่ยนความแม่นยำ ซึ่งในกรณีนี้ไม่จำเป็นต้องปรับให้เหมาะสมเพิ่มเติม กระบวนการฝึกอบรมที่แนะนำคือการทำซ้ำผ่านระดับของแผนผังการปรับใช้ที่ใช้ได้กับสถานการณ์การปรับใช้เป้าหมาย และดูว่าโมเดลตรงตามข้อกำหนดเวลาแฝงของการอนุมานหรือไม่ และหากไม่เป็นเช่นนั้น ให้ใช้เทคนิคการเพิ่มประสิทธิภาพการทำงานร่วมกันที่เกี่ยวข้องเพื่อบีบอัดโมเดลเพิ่มเติมและทำซ้ำ จนกว่าโมเดลจะได้รับการปรับให้เหมาะสมที่สุด (ตัดแต่ง คลัสเตอร์ และ quantized) หากจำเป็น
รูปด้านล่างแสดงแผนภาพความหนาแน่นของเคอร์เนลน้ำหนักตัวอย่างที่ผ่านไปป์ไลน์การเพิ่มประสิทธิภาพการทำงานร่วมกัน
ผลลัพธ์ที่ได้คือโมเดลการปรับใช้เชิงปริมาณโดยมีค่าที่ไม่ซ้ำกันลดลง รวมถึงน้ำหนักแบบเบาบางจำนวนมาก ขึ้นอยู่กับความกระจัดกระจายของเป้าหมายที่ระบุในเวลาฝึก นอกเหนือจากข้อได้เปรียบในการบีบอัดโมเดลที่สำคัญแล้ว การสนับสนุนฮาร์ดแวร์เฉพาะสามารถใช้ประโยชน์จากโมเดลแบบคลัสเตอร์ที่กระจัดกระจายเหล่านี้เพื่อลดเวลาแฝงของการอนุมานได้อย่างมาก
ผลลัพธ์
ด้านล่างนี้คือผลลัพธ์ด้านความแม่นยำและการบีบอัดที่เราได้รับเมื่อทำการทดลองกับเส้นทางการปรับให้เหมาะสมการทำงานร่วมกันของ 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 โน๊ตบุ๊คตัวอย่าง