AI

بهینه‌سازی هوش مصنوعی لبه: استراتژی‌های AutoML برای استنتاج بلادرنگ بر روی دستگاه‌های IoT با منابع محدود

منظره اینترنت اشیاء (IoT) در حال گذار به یک پارادایم جدید است. ما در حال حرکت از پردازش داده‌های متمرکز بر ابر به سمت هوش توزیع‌شده هستیم، جایی که تصمیمات حیاتی مستقیماً روی دستگاه گرفته می‌شوند. با این حال، استقرار مدل‌های پیچیده یادگیری ماشین بر روی میکروکنترلرها و سیستم‌های تعبیه‌شده کم‌مصرف، مجموعه‌ای منحصر‌به‌فرد از چالش‌ها را ایجاد می‌کند. این دستگاه‌ها اغلب فاقد شتاب‌دهنده GPU و پهنای باند حافظه‌ای هستند که در سرورهای ابری یافت می‌شود و نیازمند تعادل ظریفی بین دقت مدل و کارایی محاسباتی هستند. اینجاست که یادگیری ماشین خودکار (AutoML) از یک مزیت به یک ضرورت استراتژیک تبدیل می‌شود.

منظر محدودیت‌های لبه

قبل از ورود به راه‌حل‌ها، درک «تریاد لبه» شامل محاسبات، حافظه و توان حیاتی است. یک گره IoT معمولی، مانند یک سن هوشمند یا یک پوشیدنی، ممکن است با چند مگابایت RAM و میلی‌وات‌های توان کار کند. مدل‌های استاندارد یادگیری عمیق، مانند ResNet-50، اغلب برای این محیط‌ها بسیار سنگین هستند. تأخیر ناشی از ارسال داده به ابر برای استنتاج، هدف کاربردهای بلادرنگ مانند نگهداری پیش‌بینانه یا رباتیک خودکار را که در آن‌ها زمان‌های واکنش زیر میلی‌ثانیه حیاتی هستند، خنثی می‌کند.

طراحی دستی معماری‌ها برای این محدودیت‌ها نیازمند تخصص عمیق در فشرده‌سازی شبکه‌های عصبی، حذف (pruning) و تقسیم دانش (knowledge distillation) است. این امر برای بسیاری از تیم‌های مهندسی یک گلوگاه محسوب می‌شود. AutoML برای استنتاج لبه، جستجو برای یافتن معماری‌های بهینه مدل را که در بودجه‌های سخت‌افزاری خاص قرار می‌گیرند، خودکار می‌کند.

جستجوی خودکار معماری برای TinyML

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

برای مثال، یک عامل AutoML ممکن است کشف کند که جایگزینی یک لایه کنولوشن استاندارد با یک کنولوشن جداکننده عمقی (depthwise separable convolution)، تعداد پارامترها را تا ۸۰٪ کاهش می‌دهد در حالی که کاهش دقت ناچیز است. ابزارهایی مانند کامپایلر Edge TPU گوگل و افزونه‌های AutoML هگینگ فیس اینتل، این قابلیت‌ها را ادغام می‌کنند تا به طور خودکار مدل‌هایی را متناسب با مجموعه دستورالعمل‌های خاص تراشه هدف تولید کنند.

پیاده‌سازی عملی با TensorFlow Lite

یکی از در دسترس‌ترین روش‌ها برای پیاده‌سازی این گردش کار، از طریق TensorFlow Lite است. این کتابخانه از یک فرآیند بهینه‌سازی خودکار پشتیبانی می‌کند که می‌تواند مدل‌ها را کم‌مقیاس (quantize) کند، که در آن دقت وزن‌ها از اعشار شناور ۳۲-بیتی به اعداد صحیح ۸-بیتی کاهش می‌یابد. این فرآیند که اغلب به عنوان کم‌مقیاس‌سازی پس از آموزش شناخته می‌شود، به طور قابل توجهی اندازه مدل را کاهش داده و سرعت استنتاج را روی میکروکنترلرهای قادر به پردازش صحیح افزایش می‌دهد.

در اینجا یک مثال عملی از نحوه تعریف یک خط لوله بهینه‌سازی مدل با استفاده از بهینه‌ساز مدل TensorFlow Lite ارائه شده است. این اسکریپت تبدیل یک مدل استاندارد Keras به یک مدل TFLite کم‌مقیاس‌شده را نشان می‌دهد:


import tensorflow as tf
import numpy as np

# فرض کنید 'model' مدل آموزش‌دیده Keras شما باشد
# یک مجموعه داده نماینده برای کالیبراسیون بارگذاری کنید (مثلاً ۱۰۰ تصویر)
representative_data_gen = tf.lite.RepresentativeDatasetGenerator(
    dataset_size=100,
    dataset_path='path/to/calibration_data'
)

# گزینه‌های تبدیل برای کم‌مقیاس‌سازی را تعریف کنید
converter = tf.lite.TFLiteConverter.from_keras_model(model)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
converter.representative_dataset = representative_data_gen
converter.target_spec.supported_ops = [tf.lite.OpsSet.TFLITE_BUILTINS_INT8]
converter.inference_input_type = tf.int8
converter.inference_output_type = tf.int8

# مدل را تبدیل کنید
tflite_quantized_model = converter.convert()

# مدل بهینه‌شده را ذخیره کنید
with open('edge_model_quantized.tflite', 'wb') as f:
    f.write(tflite_quantized_model)

غلبه بر ناهمگونی سخت‌افزاری

یک اشتباه رایج در استقرار لبه، فرض یک مدل «یک‌اندازه-مناسب-همه» است. چارچوب‌های AutoML با پروفایل‌گیری از دستگاه هدف این مشکل را حل می‌کنند. برخی از میکروکنترلرها دارای شتاب‌دهنده‌های DSP هستند، در حالی که برخی دیگر به دستورالعمل‌های SIMD متکی‌اند. یک خط لوله هوشمند AutoML ابتدا دستگاه را پروفایل کرده، کارآمدترین هسته‌های عملیاتی را شناسایی می‌کند و سپس معماری را انتخاب می‌کند که حداکثر استفاده را از آن واحدهای سخت‌افزاری خاص به عمل آورد.

برای مثال، روی یک ESP32، فرآیند AutoML ممکن است مدل‌هایی را که از حساب‌گری اعداد صحیح (fixed-point) به جای عملیات اعشاری استفاده می‌کنند، در اولویت قرار دهد تا CPU حداقل چرخه را صرف تبدیل‌های ریاضی کند. این جستجوی آگاهانه از سخت‌افزار، «هزینه جستجو» را کاهش می‌دهد و تضمین می‌کند که مدل حاصل نه تنها کوچک، بلکه سریع نیز باشد.

نتیجه‌گیری

ادغام AutoML در خط لوله‌های استنتاج لبه دیگر یک تجمل نیست، بلکه یک الزام استاندارد برای استقرار هوش مصنوعی مقیاس‌پذیر و بلادرنگ بر روی دستگاه‌های IoT با منابع محدود است. با خودکارسازی وظایف پیچیده جستجوی معماری و فشرده‌سازی مدل، توسعه‌دهندگان می‌توانند بر منطق خاص حوزه و کیفیت داده‌ها تمرکز کنند تا بهینه‌سازی‌های سطح پایین. با ادامه تکامل سخت‌افزار و توانمندتر شدن آن‌ها در اجرای هوش مصنوعی محلی، نقش AutoML گسترش خواهد یافت و شکاف بین هوش سطح ابر و لبه فیزیکی را پر می‌کند. پذیرش این ابزارها امروز، سازمان‌ها را برای رهبری در نسل بعدی اکوسیستم‌های هوشمند، واکنش‌گرا و کارآمد IoT آماده می‌کند.

Share: