LiteRT به شما امکان می دهد مدل های یادگیری ماشینی TensorFlow (ML) را در برنامه های Android خود اجرا کنید. سیستم LiteRT محیط های اجرایی از پیش ساخته شده و قابل تنظیم را برای اجرای سریع و کارآمد مدل ها در اندروید فراهم می کند، از جمله گزینه هایی برای شتاب سخت افزاری.
مدل های یادگیری ماشینی
LiteRT از مدل های TensorFlow استفاده می کند که به فرمت مدل یادگیری ماشینی کوچکتر، قابل حمل و کارآمدتر تبدیل می شوند. می توانید از مدل های از پیش ساخته شده با LiteRT در اندروید استفاده کنید یا مدل های TensorFlow خود را بسازید و آنها را به فرمت LiteRT تبدیل کنید.
این صفحه درباره استفاده از مدلهای یادگیری ماشین از قبل ساخته شده بحث میکند و ساخت، آموزش، آزمایش یا تبدیل مدلها را پوشش نمیدهد. در صفحه مدلها درباره انتخاب، اصلاح، ساخت و تبدیل مدلهای یادگیری ماشین برای LiteRT بیشتر بیاموزید.
مدل ها را در اندروید اجرا کنید
یک مدل LiteRT که در داخل یک برنامه اندروید اجرا میشود، دادهها را پردازش میکند و بر اساس منطق مدل پیشبینی میکند. یک مدل TensorFlow Lite برای اجرا به محیط زمان اجرا خاصی نیاز دارد و دادههایی که به مدل منتقل میشوند باید در قالب دادهای خاص باشند که تانسور نامیده میشود. وقتی یک مدل دادهها را پردازش میکند، که به عنوان اجرای استنتاج شناخته میشود، نتایج پیشبینی را بهعنوان تانسور جدید تولید میکند و آنها را به برنامه Android ارسال میکند تا بتواند اقدامی انجام دهد، مانند نشان دادن نتیجه به کاربر یا اجرای منطق تجاری اضافی.
شکل 1. جریان اجرای عملکردی برای مدل های LiteRT در برنامه های اندروید.
در سطح طراحی کاربردی، برنامه اندروید شما برای اجرای یک مدل LiteRT به عناصر زیر نیاز دارد:
- محیط اجرای LiteRT برای اجرای مدل
- مدل کنترل کننده ورودی برای تبدیل داده ها به تانسور
- مدل کنترل کننده خروجی برای دریافت تانسورهای نتیجه خروجی و تفسیر آنها به عنوان نتایج پیش بینی
بخشهای زیر نحوه ارائه این عناصر عملکردی توسط کتابخانهها و ابزار LiteRT را توضیح میدهند.
با LiteRT برنامه بسازید
این بخش رایجترین و توصیهشدهترین مسیر برای پیادهسازی LiteRT در برنامه Android شما را شرح میدهد. شما باید بیشترین توجه را به بخش محیط زمان اجرا و کتابخانه های توسعه داشته باشید. اگر یک مدل سفارشی ایجاد کردهاید، حتماً بخش مسیرهای توسعه پیشرفته را مرور کنید.
گزینه های محیط زمان اجرا
راه های مختلفی وجود دارد که می توانید یک محیط زمان اجرا را برای اجرای مدل ها در برنامه اندروید خود فعال کنید. اینها گزینه های ترجیحی هستند:
- LiteRT در محیط اجرای خدمات Google Play (توصیه می شود)
- محیط اجرا LiteRT مستقل
به طور کلی، شما باید از محیط زمان اجرا ارائه شده توسط سرویسهای Google Play استفاده کنید زیرا نسبت به محیط استاندارد از نظر فضا کارآمدتر است زیرا به صورت پویا بارگیری میشود و اندازه برنامه شما را کوچکتر نگه میدارد. سرویسهای Google Play همچنین بهطور خودکار از جدیدترین و پایدارترین نسخه اجرای LiteRT استفاده میکنند و ویژگیهای اضافی و عملکرد بهبود یافته را در طول زمان به شما میدهند. اگر برنامه خود را در دستگاههایی ارائه میدهید که شامل سرویسهای Google Play نیستند یا باید محیط اجرای ML خود را از نزدیک مدیریت کنید، باید از زمان اجرا استاندارد LiteRT استفاده کنید. این گزینه کدهای اضافی را در برنامه شما قرار می دهد و به شما این امکان را می دهد که کنترل بیشتری بر زمان اجرای ML در برنامه خود داشته باشید و این به قیمت افزایش حجم دانلود برنامه است.
با افزودن کتابخانه های توسعه TensorFlow Lite به محیط توسعه برنامه خود، به این محیط های زمان اجرا در برنامه Android خود دسترسی پیدا می کنید. برای اطلاعات در مورد نحوه استفاده از محیط های زمان اجرا استاندارد در برنامه خود، به بخش بعدی مراجعه کنید.
کتابخانه ها
میتوانید با استفاده از خدمات Google Play به Interpreter API دسترسی پیدا کنید. می توانید از هسته LiteRT و کتابخانه های پشتیبانی در برنامه اندروید خود استفاده کنید. برای جزئیات برنامهنویسی درباره استفاده از کتابخانههای LiteRT و محیطهای زمان اجرا، به ابزارهای توسعه برای Android مراجعه کنید.
مدل ها را بدست آورید
اجرای یک مدل در یک برنامه اندروید به یک مدل با فرمت LiteRT نیاز دارد. می توانید از مدل های از پیش ساخته شده استفاده کنید یا با TensorFlow یکی بسازید و آن را به فرمت Lite تبدیل کنید. برای کسب اطلاعات بیشتر در مورد به دست آوردن مدل برای برنامه Android خود، به صفحه LiteRT Models مراجعه کنید.
مدیریت داده های ورودی
هر داده ای که به یک مدل ML ارسال می کنید باید یک تانسور با ساختار داده ای خاص باشد که اغلب به آن شکل تانسور می گویند. برای پردازش دادهها با یک مدل، کد برنامه شما باید دادهها را از قالب اصلی خود، مانند دادههای تصویر، متن یا صدا، به یک تانسور به شکل مورد نیاز برای مدل شما تبدیل کند.
استنتاج ها را اجرا کنید
پردازش داده ها از طریق یک مدل برای تولید یک نتیجه پیش بینی به عنوان اجرای یک استنتاج شناخته می شود. اجرای یک استنتاج در یک برنامه اندروید به یک محیط زمان اجرا LiteRT، یک مدل و داده های ورودی نیاز دارد.
سرعتی که یک مدل میتواند استنتاج را روی یک دستگاه خاص تولید کند، به اندازه دادههای پردازش شده، پیچیدگی مدل، و منابع محاسباتی موجود مانند حافظه و CPU یا پردازندههای تخصصی به نام شتابدهنده بستگی دارد. مدلهای یادگیری ماشینی میتوانند با استفاده از درایورهای سختافزار LiteRT به نام delegates روی این پردازندههای تخصصی مانند واحدهای پردازش گرافیکی (GPU) و واحدهای پردازش تانسور (TPU) سریعتر اجرا شوند. برای اطلاعات بیشتر در مورد نمایندگان و شتاب سخت افزاری پردازش مدل، به نمای کلی شتاب سخت افزار مراجعه کنید.
نتایج خروجی را مدیریت کنید
مدلها نتایج پیشبینی را بهعنوان تانسور تولید میکنند که باید توسط برنامه Android شما با انجام اقدام یا نمایش نتیجه به کاربر مدیریت شود. نتایج خروجی مدل میتواند به اندازه یک عدد مربوط به یک نتیجه واحد (0 = سگ، 1 = گربه، 2 = پرنده) برای طبقهبندی تصویر، تا نتایج بسیار پیچیدهتر، مانند جعبههای محدودکننده چندگانه برای چندین شی طبقهبندی شده در یک تصویر، با رتبه بندی اطمینان پیش بینی بین 0 و 1.
مسیرهای توسعه پیشرفته
هنگام استفاده از مدلهای LiteRT پیچیدهتر و سفارشیشدهتر، ممکن است لازم باشد از رویکردهای توسعه پیشرفتهتری نسبت به آنچه در بالا توضیح داده شد استفاده کنید. بخشهای زیر تکنیکهای پیشرفتهای را برای اجرای مدلها و توسعه آنها برای LiteRT در برنامههای Android توضیح میدهند.
محیط های زمان اجرا پیشرفته
علاوه بر محیطهای زمان اجرا استاندارد و سرویسهای Google Play برای LiteRT، محیطهای زمان اجرا دیگری نیز وجود دارد که میتوانید با برنامه Android خود استفاده کنید. محتمل ترین استفاده برای این محیط ها در صورتی است که شما یک مدل یادگیری ماشینی دارید که از عملیات ML استفاده می کند که توسط محیط زمان اجرا استاندارد برای LiteRT پشتیبانی نمی شود.
- زمان اجرا انعطاف پذیر برای LiteRT
- زمان اجرا LiteRT سفارشی ساخته شده است
زمان اجرا LiteRT Flex به شما این امکان را می دهد که اپراتورهای خاصی را که برای مدل خود مورد نیاز است، در نظر بگیرید. به عنوان یک گزینه پیشرفته برای اجرای مدل خود، می توانید LiteRT را برای Android بسازید تا شامل اپراتورها و سایر عملکردهای مورد نیاز برای اجرای مدل یادگیری ماشینی TensorFlow شما باشد. برای اطلاعات بیشتر، Build LiteRT برای Android را ببینید.
C و C++ API
LiteRT همچنین یک API برای اجرای مدل های با استفاده از C و C++ ارائه می دهد. اگر برنامه شما از Android NDK استفاده می کند، باید از این API استفاده کنید. همچنین اگر می خواهید بتوانید کد را بین چندین پلتفرم به اشتراک بگذارید، ممکن است بخواهید از این API استفاده کنید. برای اطلاعات بیشتر در مورد این گزینه توسعه، به صفحه ابزار توسعه مراجعه کنید.
اجرای مدل مبتنی بر سرور
به طور کلی، شما باید مدل هایی را در برنامه خود در دستگاه اندرویدی اجرا کنید تا از تاخیر کمتر و بهبود حریم خصوصی داده برای کاربران خود بهره ببرید. با این حال، مواردی وجود دارد که اجرای یک مدل در سرور ابری، خاموش دستگاه، راه حل بهتری است. به عنوان مثال، اگر یک مدل بزرگ دارید که به راحتی به اندازه ای که در دستگاه های اندرویدی کاربران شما مناسب است فشرده نمی شود یا می توان آن را با عملکرد معقول در آن دستگاه ها اجرا کرد. اگر عملکرد ثابت مدل در طیف گستردهای از دستگاهها اولویت اصلی باشد، این رویکرد ممکن است راهحل ترجیحی شما باشد.
Google Cloud مجموعه کاملی از خدمات را برای اجرای مدلهای یادگیری ماشینی TensorFlow ارائه میکند. برای اطلاعات بیشتر، صفحه محصولات هوش مصنوعی و یادگیری ماشین Google Cloud را ببینید.
توسعه و بهینه سازی مدل سفارشی
مسیرهای توسعه پیشرفتهتر احتمالاً شامل توسعه مدلهای یادگیری ماشینی سفارشی و بهینهسازی آن مدلها برای استفاده در دستگاههای Android است. اگر قصد ساختن مدلهای سفارشی را دارید، مطمئن شوید که از تکنیکهای کوانتیزاسیون برای کاهش هزینههای حافظه و پردازش در مدلها استفاده میکنید. برای اطلاعات بیشتر در مورد نحوه ساخت مدلهای با کارایی بالا برای استفاده با LiteRT، بهترین شیوههای عملکرد را در بخش مدلها ببینید.