آموزش TensorFlow Lite هوش مصنوعی در گوشیهای موبایل!

TensorFlow Lite چیست و چه هدفی دارد؟ آکادمی EITCA

همچنین تا عرضه نسخه نهایی TensorFlow Lite فاصله زیادی مانده و در آینده تعداد مدل های این کتاب خانه افزایش خواهد یافتد. اما در حال حاضر برنامه با مدل پردازش زبان های طبیعی MobileNet ،Inception v3 و Smart Reply کار می کند. TF 2.0 بهبودهای قابل توجهی روی TF serving ایجاد کرده است که یکی از قدرتمندترین ابزارها در کل فرایند یادگیری ماشین محسوب می‌شود. کد بالا، مثالی از آموزش یک مدل در Collab به حساب می‌آید که فوق‌العاده عالی و کوتاه است و تنها چیزی است که باید در تنسورفلو «وارد» (Import) کرد. «کراس» (Keras) به طور جداگانه ایمپورت نشده است، زیرا اکنون به صورت توکار در TF 2.0 وجود دارد. بنابراین، با استفاده از TF 2.0 می‌توان یک شبکه عصبی را تنها با چند خط کد با بهره‌گیری از API متوالی کراس ساخت.

گوگل به طور رسمی الگوریتم «رنک‌برین» (RankBrain) را ۲۶ اکتبر ۲۰۱۵ منتشر کرد که توسط تنسورفلو حمایت می‌شد. همچنین، «کلبریتوری» (Colaboratory | Colab) که یک «محیط نوت‌بوک ژوپیتر تنسورفلو» (TensorFlow Jupyter Notebook Environment) است را معرفی کرد که برای استفاده از آن، نیازی به نصب نیست. Verbose مفهومی عمومی در برنامه‌نویسی است که به تولید حجم زیادی از لوگ‌های خروجی اشاره دارد. در واقع، می توان از برنامه درخواست کرد که «همه چیز را درباره کاری که در کل مدت زمان انجام می‌دهد بگوید». گزینه دیگر برای حصول اطمینان از صحت نصب، باز کردن «ژوپیتر نوت‌بوک» (Jupyter Notebook) و اجرای دستورات زیر است. API Rest Vision انواع بسیاری از درخواست‌ها را شامل می‌شود که اطلاعات مربوط به برچسب‌ها، متن، ویژگی‌های تصاویر و موارد دیگر را در بر می‌گیرد.

«آموزش رایگان مقدمه‌ای بر TensorFlow Lite» شامل 4 درس بوده، که در درس اول دوره تحت‌عنوان «مقدمه‌ای بر TensorFlow Lite» شما با نحوه عملکرد TensorFlow در زیر کاپوت آشنا خواهید ‌شد. ضمن این درس شما همچنین می‌توانید بیاموزید چگونه مدل‌ها را کوانتیزه کنید یا آنکه چگونه مدل‌های TF Lite خود را در پایتون آزمایش نمایید. به اعتقاد گوگل نسخه اسمارت فون های TensorFlow تحولی برای این کتاب خانه نرم افزاری به حساب می آید. بد نیست بدانید آن ها پیشتر گفته بودند که این فریم ورک هوش مصنوعی به موبایل های آینده قابلیت های بیشتری در حوزه پردازش گفتار، جستجوی تصویری، واقعیت افزوده و موارد مشابه اضافه می کند. مهم‌ترین مساله آن است که این کار در محیط تولید به وقوع می‌پیوندد، در حالیکه کاربر به طور طبیعی و مانند همیشه خدمات دریافت می‌کند.

با TensorFlow Lite، توسعه‌دهندگان می‌توانند به راحتی تکنیک‌های یادگیری انتقال را ادغام کنند و به مدل اجازه می‌دهند تا روی خود دستگاه به‌خوبی تنظیم شود. این قابلیت به ویژه در برنامه‌هایی مانند سیستم‌های توصیه شخصی یا دستیارهای صوتی مفید است، جایی که داده‌های خاص کاربر می‌توانند عملکرد مدل را افزایش دهند. در پایان این کتاب، مهارت‌های ساخت و استقرار برنامه‌های کاربردی تلفن همراه یادگیری عمیق را در iOS و Android خواهید داشت. TensorFlow Lite دیوایس‌های مجهز به هوش مصنوعی را تبدیل به دستگاه‌های کاربردی روزمره می‌کند. هنگامی که فایل مدل TensorFlow Lite را دارید، می توانید آن را در برنامه تلفن همراه خود ادغام کنید. API به شما امکان می دهد یک تصویر را به عنوان ورودی به مدل ارسال کنید و احتمالات کلاس پیش بینی شده را به عنوان خروجی دریافت کنید.

Inception v3 یک معماری شبکه عصبی کانولوشن عمیق (CNN) است که بر روی مجموعه داده ImageNet آموزش داده شده است. این توسط گوگل توسعه داده شده است و به طور گسترده ای برای کارهای تشخیص تصویر استفاده می شود. Inception v3 به دلیل دقت بالا و توانایی طبقه بندی تصاویر در تعداد زیادی از دسته ها شناخته شده است. این شامل چندین لایه عملیات کانولوشن و ادغام است که به دنبال آن لایه‌های کاملاً متصل و softmax برای طبقه‌بندی قرار می‌گیرد. نسخه جدید با تمرکز بر افزایش بهره‌وری توسعه‌دهندگان، سادگی و سهولت استفاده طراحی شده است. همچنین، تغییرات متعددی در API آن انجام شده که از آن جمله می‌توان به مرتب‌سازی مجدد آرگومان‌ها، حذف API‌های زائد، تغییر نام سمبل‌ها و تغییر مقادیر پیش‌فرض برای پارامترها اشاره کرد.

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

این بهینه‌سازی‌ها شامل کوانتیزاسیون مدل است که دقت پارامترهای مدل را به 8 بیت یا کمتر کاهش می‌دهد و در نتیجه اندازه مدل کوچک‌تر و محاسبات سریع‌تر می‌شود. ابتدا، آنها مدل های یادگیری ماشین خود را با استفاده از TensorFlow، یک چارچوب منبع باز قدرتمند برای ساخت و آموزش شبکه های عصبی عمیق، آموزش و بهینه سازی می کنند. پس از آموزش مدل، می توان آن را با استفاده از تبدیل TensorFlow Lite به قالب TensorFlow Lite تبدیل کرد. این مبدل بهینه سازی های مختلفی مانند کوانتیزاسیون و هرس وزنی را برای کاهش اندازه مدل و بهبود کارایی آن اعمال می کند. سپس مدل TensorFlow Lite حاصل می‌تواند با استفاده از مترجم TensorFlow Lite، که یک API برای اجرای وظایف استنتاج ارائه می‌کند، در یک برنامه تلفن همراه یا جاسازی شده ادغام شود.

این هدف قادر به استقرار کارآمد مدل‌های یادگیری ماشینی در پلت‌فرم‌های محدود به منابع، مانند گوشی‌های هوشمند، تبلت‌ها، پوشیدنی‌ها و دستگاه‌های IoT است. این چارچوب فشرده و بهینه‌شده، قدرت TensorFlow را به این دستگاه‌ها می‌آورد و به آن‌ها اجازه می‌دهد تا وظایف پیچیده هوش مصنوعی را به صورت محلی، بدون تکیه بر اتصال ثابت اینترنت یا پردازش مبتنی بر ابر انجام دهند. با TensorFlow Lite، تیم Google TensorFlow تکامل بعدی چارچوب یادگیری عمیق TensorFlow را معرفی کرده، که به‌طور خاص برای فعال‌ کردن یادگیری ماشین با تأخیر کم، در دستگاه‌های تلفن‌ همراه و جاسازی‌شده طراحی گردیده است. این دوره به‌عنوان یک رویکرد عملی، به‌منظور استقرار مدل برای توسعه‌دهندگان نرم‌افزار ایجاد ‌شده و تجربه عملی در استقرار مدل‌های یادگیری عمیق در اندروید، iOS و حتی پلتفرم لینوکس را ارائه می‌دهد. شما همین امروز می‌توانید آموزش‌های این دوره همگام شوید تا با روش‌های پیشرفته یادگیری ماشین آشنا شوید.

الگوریتم‌های یادگیری ماشینی می‌توانند تجزیه و تحلیل الگوهای رفتار کاربر را انجام داده و درخواست‌های جستجو را برای ارائه پیشنهاداتی انجام دهند. تشخیص فیلم و صدا نیز حتی نوعی ML است که در حوزه سرگرمی مانند Snapchat مورد استفاده قرار می‌گیرد. هنگامی که یک مدل آموزش داده شد و پارامترهای آن بهینه شد، مدل را می توان به قالبی تبدیل کرد که با TensorFlow Lite برای استقرار در دستگاه های تلفن همراه سازگار است. TensorFlow Lite از ابزارها و مبدل های مختلفی برای تبدیل مدل های TensorFlow به قالبی که می تواند برای استنتاج در دستگاه های تلفن همراه استفاده شود، پشتیبانی می کند. این فرآیند تبدیل، مدل را برای اجرا بر روی سخت‌افزار موبایل بهینه می‌کند و از عملکرد کارآمد و تأخیر کم اطمینان می‌دهد.

«تنسورفلو» (TensorFlow)، یک کتابخانه رایگان و «متن‌باز» (Open Source) برای «برنامه‌نویسی جریان داده» ( Dataflow Programming) و «برنامه‌نویسی متمایزگر» (Differentiable Programming)، جهت انجام طیف وسیعی از وظایف است. تنسورفلو، کتابخانه‌ای برای «ریاضیات نمادین» (Symbolic Math) محسوب می‌شود و کاربردهای گوناگونی در «یادگیری ماشین» (Machine Learning) دارد که از آن جمله می‌توان به پیاده‌سازی «شبکه‌های عصبی» (Neural Networks) اشاره کرد. این کتابخانه توسط تیم «گوگل برین» (Google Brain)، برای مصارف داخلی گوگل توسعه داده شده بود؛ ولی در نهم نوامبر سال ۲۰۱۵ با گواهینامه «آپاچی ۲.۰ متن‌باز» منتشر شد. در حال حاضر، کتابخانه تنسورفلو، در گوگل هم برای پروژه‌های تحقیقاتی و هم پروژه‌های عملیاتی مورد استفاده قرار می‌گیرد. اهمیت TensorFlow Lite برای دستگاه های تلفن همراه و جاسازی شده از چندین عامل کلیدی ناشی می شود.

اکنون، می‌توان به مزایای افزودن قابلیت «حالت اجرای مشتاقانه» (Eager Execution Mode) به تنسورفلو ۲.۰ پرداخت. برای مثال، در گراف تنسورفلو، عملیات tf.square مرتبط به یک گره مجرد با دو یال ورودی است (ماتریس مشابهی دو برابر شده است) و یک یال خروجی (نتیجه توان دو). اما پرسشی که در این وهله مطرح می‌شود این است که چرا TF 1.0 از Dataflow استفاده می‌کند. با توجه به آنکه «قوانین نام‌گذاری» (Naming Convention) خاص متعددی برای تنسورفلو وجود دارد، در بسیاری از موارد، کاربران هنگام استفاده از تنسورفلو نمی‌دانند که دقیقا از کدام API استفاده کنند. توصیه می‌شود که اگر کاربران قصد نصب این نسخه را روی کامپیوتر محلی خود برای ساخت یک محیط جدای پایتون/conda دارند، آن را فعال کرده و با وارد کردن و اجرای دستورات زیر در ترمینال، نصب را انجام دهند. پیش از ادامه این مبحث لازم است یادآور شویم که می‌توانید TensorFlow را با استفاده از مجموعه آموزش تنسورفلو TensorFlow، مقدماتی تا پیشرفته فرادرس یاد بگیرید.

سپس، نسخه ۲.۰ از این کتابخانه که اخیرا منتشر شده و تغییرات قابل توجهی نسبت به نسخه‌های پیشین داشته است به صورت جامع بررسی شد و تغییراتی که در آن نسبت به نسخه ۱.۰ اتفاق افتاده‌اند، به طور کامل و همراه با ذکر مثال‌هایی بیان شدند. به طور کلی می‌توان گفت که در TensorFlow 2.0، کارایی، شفافیت و انعطاف‌پذیری به طور قابل توجهی افزایش یافته است. همچنین، قابلیت «اجرای مشتاقانه» (Eager Execution) به آن افزوده شده و API‌های سطح بالای آن بهبود یافته‌اند که در نهایت منجر به ساده شدن پیاده‌سازی و اجرای سریع مدل‌های یادگیری ماشین شده است. آموزش مدل های یادگیری ماشین معمولاً به منابع محاسباتی قابل توجهی نیاز دارد، به ویژه برای مدل های پیچیده و مجموعه داده های بزرگ. آموزش یک مدل شامل بهینه سازی تکراری پارامترهای مدل با استفاده از مقادیر زیادی از داده های آموزشی است که از نظر محاسباتی فشرده و وقت گیر است. در نتیجه، آموزش مدل‌های یادگیری ماشین معمولاً روی سرورها یا ایستگاه‌های کاری قدرتمند با GPU یا TPU با کارایی بالا انجام می‌شود.

«اجرای مشتاقانه» (Eager Execution) یک رابط ضروری، تعریف شده ضمن اجرا است که در آن، پردازش‌ها بلافاصله پس از آنکه توسط پایتون فراخوانی شدند، اجرا می‌شوند. به عقیده برخی از توسعه‌دهندگانی که از تنسورفلو استفاده می‌کنند، این مهم‌ترین ویژگی تنسورفلو ۲.۰ محسوب می‌شود. این محیط روی «ابر» (Cloud) اجرا می‌شود و نوت‌بوک‌های خود را روی گوگل درایو ذخیره می‌کند. با وجود آنکه «کُلَب» (Colaboratory) بخشی از پروژه ژوپیتر است، اما توسعه آن توسط گوگل انجام می‌شود. از سپتامبر ۲۰۱۸، کلب فقط از کرنل‌های پایتون ۲ و پایتون ۳ پشتیبانی می‌کند و دیگر کرنل‌های ژوپیتر، یعنی «جولیا» (Julia) و «R» را پشتیبانی نمی‌کند.

با استقرار مدل‌های یادگیری عمیق در Android،iOS  و حتی پلتفرم لینوکس، شما تجربه عملی با چارچوب TensorFlow Lite به‌ دست‌ خواهید ‌آورد. در ‌پایان این دوره، شما تمام مهارت‌های لازم به‌منظور شروع به‌کارگیری مدل‌های یادگیری عمیق را در برنامه‌های خود به ‌دست آورده‌اید. با کمک هشت پروژه، یاد خواهید گرفت که چگونه فرآیندهای یادگیری عمیق را در پلتفرم های موبایل، iOS و اندروید ادغام کنید. این به شما کمک می کند تا ویژگی های یادگیری عمیق را به طور موثر به برنامه های تلفن همراه قوی تبدیل کنید. شما تجربه عملی از انتخاب معماری های یادگیری عمیق مناسب و بهینه سازی مدل های یادگیری عمیق تلفن همراه را خواهید داشت، در حالی که از یک رویکرد برنامه گرا تا یادگیری عمیق در برنامه های تلفن همراه بومی پیروی می کنید. ما بعداً انواع APIهای مبتنی بر مدل یادگیری عمیق از قبل آموزش دیده و سفارشی ساخته شده مانند کیت یادگیری ماشین (ML) را از طریق Firebase پوشش خواهیم داد.

پس از پشت‌سر گذاشتن این دوره 2 ماهه شما با TensorFlow Lite، نحوه استقرار مدل‌های یادگیری عمیق را در دستگاه‌های تلفن‌ همراه و جاسازی‌شده خواهید آموخت. TensorFlow Lite چندین مزیت را برای استقرار مدل های یادگیری ماشین در دستگاه های تلفن همراه و جاسازی شده ارائه می دهد. ماهیت سبک و کارآمد، قابلیت های استنتاج سریع، انعطاف پذیری و قابل حمل بودن، سهولت یکپارچه سازی، و پشتیبانی از استنتاج روی دستگاه، آن را به گزینه ای عالی برای توسعه دهندگان در زمینه هوش مصنوعی تبدیل کرده است. با استفاده از TensorFlow Lite، توسعه‌دهندگان می‌توانند پتانسیل یادگیری ماشینی را در دستگاه‌های با محدودیت منابع باز کنند و طیف وسیعی از برنامه‌های نوآورانه را فعال کنند. «آموزش رایگان مقدمه‌ای بر TensorFlow Lite» به شما نحوه استقرار مدل‌های یادگیری عمیق را در دستگاه‌های تلفن ‌همراه و جاسازی شده می‌آموزد. این دوره توسط تیم TensorFlow و Udacity به‌عنوان یک رویکرد عملی، به‌منظور استقرار مدل برای توسعه‌دهندگان نرم‌افزار تهیه گردیده است.

نکات کلیدی این دوره آموزشی شامل فلوتر، یادگیری ماشین، TensorFlow Lite، برنامه های موبایل، مدل های آموزشی، طبقه بندی تصویر، پردازش متن، پیش بینی های بلادرنگ، ادغام هوش مصنوعی، بهینه سازی عملکرد است. در پایان این دوره، فراگیران مهارت هایی را خواهند داشت که ویژگی های مبتنی بر هوش مصنوعی را در برنامه های Flutter خود بگنجانند و عملکرد و کارایی را با استفاده از TensorFlow Lite بهینه کنند. علاوه بر این، TensorFlow Lite یک زمان اجرا یکپارچه را ارائه می دهد که از چندین پلت فرم و معماری سخت افزاری پشتیبانی می کند. این برنامه از اندروید، iOS، لینوکس و دستگاه های مبتنی بر میکروکنترلر پشتیبانی می کند و از سازگاری در طیف گسترده ای از دستگاه ها اطمینان می دهد. این انعطاف‌پذیری فرآیند استقرار را ساده‌تر می‌کند، زیرا توسعه‌دهندگان می‌توانند یک بار کد بنویسند و بدون تغییرات قابل توجه آن را بر روی پلتفرم‌های مختلف مستقر کنند. همچنین ادغام یکپارچه با برنامه های تلفن همراه یا جاسازی شده موجود را امکان پذیر می کند و ترکیب قابلیت های یادگیری ماشین را آسان تر می کند.

کتابخانه تنسورفلو برای سیستم‌عامل‌های ۶۴ بیتی لینوکس، ویندوز، مک‌او‌اس و پلتفرم‌های موبایل مانند اندروید و iOS موجود است. یکی دیگر از جنبه های مهم TensorFlow Lite پشتیبانی آن از سفارشی سازی و شخصی سازی روی دستگاه است. این به توسعه دهندگان اجازه می دهد تا با استفاده از تکنیک هایی مانند یادگیری انتقال یا یادگیری فدرال، مدل های از پیش آموزش دیده را تنظیم کنند یا مدل های جدید را مستقیماً روی دستگاه آموزش دهند. این قابلیت به ویژه در سناریوهایی که حریم خصوصی داده یا الزامات تاخیر کم مانع از ارسال داده های حساس به ابر برای پردازش می شود، ارزشمند است. TensorFlow Lite یا .tflite یک نسخه سبک از فریم ورک یادگیری ماشین منبع باز گوگل است. مدل های .tflite به طور مخصوص برای دستگاه های موبایل یا سیستم های تجمیع شده طراحی شده اند.

TensorFlow Lite چارچوبی است که توسط Google توسعه یافته است که امکان اجرای مدل‌های یادگیری ماشینی را در دستگاه‌های تلفن همراه و جاسازی‌شده با منابع محاسباتی محدود می‌دهد. سبک و کارآمد طراحی شده است و برای استقرار در دستگاه هایی مانند گوشی های هوشمند، دستگاه های IoT و میکروکنترلرها مناسب است. TensorFlow Lite برای اندروید یک نسخه سبک وزن از TensorFlow است که به طور خاص برای دستگاه های تلفن همراه و جاسازی شده طراحی شده است. این در درجه اول برای اجرای مدل های یادگیری ماشینی از پیش آموزش دیده بر روی دستگاه های تلفن همراه برای انجام وظایف استنتاج به طور موثر استفاده می شود. TensorFlow Lite برای پلتفرم‌های موبایل بهینه‌سازی شده است و هدف آن ارائه تأخیر کم و اندازه باینری کوچک است تا امکان اجرای سریع و روان مدل‌های یادگیری ماشین را در دستگاه‌هایی با منابع محاسباتی محدود فراهم کند. TensorFlow Lite یک چارچوب قدرتمند برای استقرار مدل‌های یادگیری ماشین در دستگاه‌های تلفن همراه و جاسازی شده است.

در می ۲۰۱۷، گوگل یک «پشته نرم‌افزاری» (Software Stack) با عنوان «تنسورفلو لایت» (TensorFlow Lite) را به طور ویژه برای توسعه موبایل معرفی کرد. در ژوئن ۲۰۱۹، تیم تنسورفلو یک نسخه ویژه توسعه‌دهندگان از موتور استنتاج GPU موبایل OpenGL ES 3.1 Compute Shaders را روی دستگاه‌های اندرویدی و Metal Compute Shaders را روی دستگاه‌های iOS منتشر کرد. در ادامه خلاصه‌ای از یادگیری ماشین با استفاده از Tensorflow در اندروید و نحوه اعمال ML در اندروید مشاهده می‌کنید. برای اجرای مدل با Tensorflow Lite باید مدل را به مدل(.tflite) تغییر دهید که توسط Tensor flow Lite تصدیق شده است. نکته مهم در حین استفاده از Tensorflow Lite ساخت یک مدل(.tflite) است که جدا از مدل استاندارد Tensorflow است. برنامه نتفلیکس از طیف متنوعی از مطالب طبقه‌بندی شده، نظرات بازیگران، کاربران و منتقدین، مدت زمان، سال و موارد دیگر برای ارائه به مخاطبین خود استفاده می‌کند.

چندین مزیت را ارائه می دهد که آن را به یک انتخاب ایده آل برای توسعه دهندگان در زمینه هوش مصنوعی (AI) تبدیل می کند. در این پاسخ، برخی از مزایای کلیدی استفاده از TensorFlow Lite برای استقرار مدل‌های یادگیری ماشینی در دستگاه‌های تلفن همراه و جاسازی شده را بررسی خواهیم کرد. TensorFlow Lite یک چارچوب سبک وزن است که توسط Google توسعه یافته است که امکان استقرار کارآمد مدل های یادگیری ماشین را در دستگاه های تلفن همراه و جاسازی شده فراهم می کند. این به طور خاص برای بهینه سازی اجرای مدل های TensorFlow در پلتفرم های محدود به منابع مانند گوشی های هوشمند، تبلت ها و دستگاه های IoT طراحی شده است. TensorFlow Lite یک نسخه تخصصی از چارچوب محبوب TensorFlow است که به طور خاص برای دستگاه های تلفن همراه و جاسازی شده طراحی شده است.


برنامه نویسی رایگان