التدريب على علم الكمي

تمت صيانتها بواسطة تحسين نموذج TensorFlow

هناك نوعان من التكميم: التكميم بعد التدريب والتدريب على الوعي الكمي. ابدأ بتكميم ما بعد التدريب لأنه أسهل في الاستخدام ، على الرغم من أن التدريب المدرك للتكميم غالبًا ما يكون أفضل من أجل دقة النموذج.

تقدم هذه الصفحة نظرة عامة على التدريب الواعي للتكميم لمساعدتك على تحديد مدى ملاءمته لحالة الاستخدام الخاصة بك.

ملخص

يحاكي التدريب المدرك للكمية تكميم وقت الاستدلال ، مما يخلق نموذجًا ستستخدمه أدوات المصب لإنتاج نماذج كمية في الواقع. تستخدم النماذج الكمية دقة أقل (على سبيل المثال 8 بت بدلاً من 32 بت عائم) ، مما يؤدي إلى فوائد أثناء النشر.

نشر مع الكم

يحقق التكميم تحسينات عن طريق ضغط النموذج وتقليل زمن الوصول. مع الإعدادات الافتراضية لواجهة برمجة التطبيقات ، يتقلص حجم النموذج بمقدار 4x ، ونرى عادةً ما بين 1.5 - 4x تحسينات في زمن انتقال وحدة المعالجة المركزية في الخلفيات المختبرة. في النهاية ، يمكن رؤية تحسينات زمن الوصول على مسرعات التعلم الآلي المتوافقة ، مثل EdgeTPU و NNAPI.

تستخدم هذه التقنية في الإنتاج في الكلام والرؤية والنص وحالات استخدام الترجمة. يدعم الكود حاليًا مجموعة فرعية من هذه النماذج .

جرب التكميم والأجهزة المرتبطة بها

يمكن للمستخدمين تكوين معلمات التكميم (مثل عدد البتات) وإلى حد ما ، الخوارزميات الأساسية. لاحظ أنه مع هذه التغييرات من الإعدادات الافتراضية لواجهة برمجة التطبيقات ، لا يوجد حاليًا مسار مدعوم للنشر في الخلفية. على سبيل المثال ، يدعم تحويل TFLite وتطبيقات النواة فقط تكميم 8 بت.

واجهات برمجة التطبيقات الخاصة بهذا التكوين تجريبية ولا تخضع للتوافق مع الإصدارات السابقة.

توافق API

يمكن للمستخدمين تطبيق التكميم باستخدام واجهات برمجة التطبيقات التالية:

  • بناء النموذج: tf.keras مع النماذج المتسلسلة tf.keras فقط.
  • إصدارات TensorFlow: TF 2.x لـ tf-nightly.
  • وضع تنفيذ TensorFlow: تنفيذ حريص

يوجد في خارطة الطريق لدينا لإضافة الدعم في المجالات التالية:

  • بناء النموذج: وضح كيف اقتصرت نماذج التصنيف الفرعي على عدم الدعم
  • التدريب الموزع: tf.distribute

مصفوفة الدعم العام

يتوفر الدعم في المجالات التالية:

  • تغطية النموذج: النماذج التي تستخدم الطبقات المسموح بها ، BatchNormalization عندما تتبع طبقات Conv2D و DepthwiseConv2D ، وفي حالات محدودة ، Concat .
  • تسريع الأجهزة: تتوافق الإعدادات الافتراضية لواجهة برمجة التطبيقات لدينا مع التسريع على واجهات EdgeTPU و NNAPI و TFLite وغيرها. انظر التحذير في خارطة الطريق.
  • الانتشار مع التكميم: يتم دعم التكميم لكل محور فقط للطبقات التلافيفية ، وليس تكميم كل موتر.

يوجد في خارطة الطريق لدينا لإضافة الدعم في المجالات التالية:

  • تغطية النموذج: امتدت لتشمل RNN / LSTMs ودعم Concat العام.
  • تسريع الأجهزة: تأكد من أن محول TFLite يمكنه إنتاج نماذج كاملة العدد. انظر هذه القضية للحصول على التفاصيل.
  • جرب حالات استخدام التكميم:
    • جرب خوارزميات التكميم التي تغطي طبقات Keras أو تتطلب خطوة التدريب.
    • استقرار واجهات برمجة التطبيقات.

نتائج

تصنيف الصور بالأدوات

نموذج دقة Top-1 غير محددة الكمية دقة مقدارها 8 بت
MobilenetV1224 71.03٪ 71.06٪
ريسنت v1 50 76.3٪ 76.1٪
MobilenetV2224 70.77٪ 70.01٪

تم اختبار النماذج على Imagenet وتقييمها في كل من TensorFlow و TFLite.

تصنيف الصورة للتقنية

نموذج دقة Top-1 غير محددة الكمية دقة كمية 8 بت
ناسنت موبايل 74٪ 73٪
Resnet-v2 50 75.6٪ 75٪

تم اختبار النماذج على Imagenet وتقييمها في كل من TensorFlow و TFLite.

أمثلة

بالإضافة إلى مثال التدريب الواعي للتكميم ، انظر الأمثلة التالية:

  • نموذج CNN على مهمة تصنيف الأرقام المكتوبة بخط اليد MNIST مع التكميم: الكود

للحصول على معلومات أساسية عن شيء مشابه ، راجع التكمية والتدريب للشبكات العصبية من أجل ورقة استدلال حسابي صحيح فعال . تقدم هذه الورقة بعض المفاهيم التي تستخدمها هذه الأداة. التنفيذ ليس هو نفسه تمامًا ، وهناك مفاهيم إضافية مستخدمة في هذه الأداة (مثل تكميم كل محور).