بهینه سازی مشارکتی

نگهداری شده توسط Arm ML Tooling

این سند یک نمای کلی از API های آزمایشی برای ترکیب تکنیک های مختلف برای بهینه سازی مدل های یادگیری ماشین برای استقرار ارائه می دهد.

بررسی اجمالی

بهینه‌سازی مشارکتی یک فرآیند فراگیر است که شامل تکنیک‌های مختلفی برای تولید مدلی است که در هنگام استقرار، بهترین توازن ویژگی‌های هدف مانند سرعت استنتاج، اندازه مدل و دقت را نشان می‌دهد.

ایده بهینه‌سازی‌های مشارکتی این است که بر روی تکنیک‌های فردی با بکارگیری آنها یکی پس از دیگری برای دستیابی به اثر بهینه‌سازی انباشته بنا شود. ترکیب های مختلفی از بهینه سازی های زیر امکان پذیر است:

موضوعی که هنگام تلاش برای زنجیره‌ای کردن این تکنیک‌ها به یکدیگر مطرح می‌شود این است که استفاده از یکی معمولاً نتایج تکنیک قبلی را از بین می‌برد و مزیت کلی استفاده همزمان از همه آنها را از بین می‌برد. به عنوان مثال، خوشه بندی، پراکندگی معرفی شده توسط Pruning API را حفظ نمی کند. برای حل این مشکل، تکنیک‌های بهینه‌سازی مشارکتی تجربی زیر را معرفی می‌کنیم:

اینها چندین مسیر استقرار را ارائه می دهند که می توانند برای فشرده سازی یک مدل یادگیری ماشینی و استفاده از شتاب سخت افزاری در زمان استنتاج استفاده شوند. نمودار زیر چندین مسیر استقرار را نشان می‌دهد که می‌توان آنها را در جستجوی مدلی با ویژگی‌های استقرار مورد نظر کاوش کرد، جایی که گره‌های برگ مدل‌های آماده استقرار هستند، به این معنی که به طور جزئی یا کامل کمی و در قالب tflite هستند. پر کردن سبز نشان دهنده مراحلی است که در آن بازآموزی/تنظیم دقیق مورد نیاز است و یک مرز قرمز نقطه چین مراحل بهینه سازی مشترک را برجسته می کند. تکنیک مورد استفاده برای به دست آوردن یک مدل در یک گره معین در برچسب مربوطه نشان داده شده است.

collaborative optimization

مسیر استقرار مستقیم، فقط کمی (پس از آموزش یا QAT) در شکل بالا حذف شده است.

ایده رسیدن به مدل کاملاً بهینه شده در سطح سوم درخت استقرار فوق است. با این حال، هر یک از سطوح دیگر بهینه‌سازی می‌تواند رضایت‌بخش باشد و به معاوضه تأخیر/دقت استنتاج مورد نیاز دست یابد، در این صورت به بهینه‌سازی بیشتری نیاز نیست. فرآیند آموزشی توصیه شده این است که به طور مکرر از سطوح درخت استقرار قابل اعمال برای سناریوی استقرار هدف عبور کنید و ببینید که آیا مدل الزامات تأخیر استنتاج را برآورده می کند یا خیر و در غیر این صورت، از تکنیک بهینه سازی مشارکتی مربوطه برای فشرده سازی بیشتر مدل و تکرار استفاده می شود. تا زمانی که مدل به طور کامل بهینه شود (هرس، خوشه بندی و کوانتیزه شود)، در صورت نیاز.

شکل زیر نمودارهای چگالی هسته وزن نمونه را نشان می دهد که از خط لوله بهینه سازی مشارکتی عبور می کند.

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 Top 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 مگابایت 2.00 مگابایت 2.84 مگابایت 1.94 مگابایت
Mobilenet_v1 در ImageNet FP32 Top 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%)

نتایج CQAT و PCQAT برای مدل‌های خوشه‌بندی شده در هر کانال

نتایج زیر با تکنیک خوشه بندی در هر کانال به دست آمده است. آنها نشان می‌دهند که اگر لایه‌های کانولوشنال مدل در هر کانال خوشه‌بندی شوند، دقت مدل بالاتر است. اگر مدل شما دارای لایه های کانولوشن زیادی است، توصیه می کنیم در هر کانال خوشه بندی کنید. نسبت تراکم ثابت باقی می ماند، اما دقت مدل بالاتر خواهد بود. خط لوله بهینه‌سازی مدل در آزمایش‌های ما «خوشه‌بندی شده -> QAT حفظ خوشه‌ای -> کمی‌سازی پس از آموزش، int8» است.

مدل Clustered -> CQAT، int8 کوانتیزه شده خوشه بندی شده در هر کانال -> CQAT، int8 کوانتیزه شده است
DS-CNN-L 95.949٪ 96.44٪
MobileNet-V2 71.538٪ 72.638٪
MobileNet-V2 (هرس شده) 71.45٪ 71.901%

مثال ها

برای مثال‌های سرتاسری از تکنیک‌های بهینه‌سازی مشارکتی که در اینجا توضیح داده شده است، لطفاً به نوت‌بوک‌های CQAT ، PQAT ، خوشه‌بندی حفظ پراکندگی، و نمونه‌نویس‌های PCQAT مراجعه کنید.