بازگشت به بلاگ
Mobile

هوش مصنوعی روی دستگاه در Flutter

9 دقیقه مطالعه

چرا استنتاج روی دستگاه مهم است

استنتاج ابری یک رفت‌وبرگشتِ شبکه می‌خواهد، داده‌ی کاربر را در معرض سرور می‌گذارد، و در حالت آفلاین شکست می‌خورد. برای اپ‌های مصرفی مثل پیام‌رسان، سلامت و بهره‌وری، استنتاج روی دستگاه اغلب یک الزام است، نه یک امکانِ خوب‌به‌داشتن.

Gemini Nano و LiteRT

Gemini Nano گوگل یک مدل ۱.۸ میلیارد پارامتری است که کوانتیزه شده تا روی NPU‌های موبایل (واحدهای پردازش عصبی) اجرا شود. یکپارچه‌سازی با Flutter از پکیج google_ai_dart_sdk و GeminiNanoModel استفاده می‌کند و وقتی مدلِ روی دستگاه در دسترس نباشد به استنتاج ابری برمی‌گردد.

LiteRT (همان TensorFlow Lite سابق) بینایی و مدل‌های کوچک سفارشی را مدیریت می‌کند. برای کارهای دسته‌بندی و embedding، یک مدل کوانتیزه‌ی ۵۰ مگابایتی روی یک گوشی اندرویدی میان‌رده در کمتر از ۲۰ میلی‌ثانیه اجرا می‌شود.

تجربه‌ی استریم بدون شبکه

نکته‌ی کلیدی: کاربرها پاسخ کمی کندتر را تحمل می‌کنند اگر ببینند متن توکن‌به‌توکن ظاهر می‌شود. حتی استنتاج روی دستگاه هم می‌تواند استریم کند. Dart SDK مربوط به Gemini Nano متد generateContentStream را در اختیار می‌گذارد. توکن‌ها را مستقیم به یک StreamBuilder در Flutter بدهید تا فارغ از کل زمان تولید، حسی پاسخ‌گو داشته باشید.

مدیریت باتری و دما

استنتاج روی دستگاه تراشه را گرم می‌کند. throttling حرارتی پیاده کنید: DeviceInfo.thermalState را در iOS بررسی کنید یا در اندروید به API باتری گوش بدهید. زیر بار طولانی maxTokens را از ۵۱۲ به ۱۲۸ کم کنید. کارهای استنتاجِ پس‌زمینه را برای زمان شارژ زمان‌بندی کنید. کاربر نه throttling را می‌فهمد و نه زمان‌بندی را؛ فقط وقتی گوشی‌اش داغ شود متوجه می‌شود.