LiteRT برای اندروید

LiteRT به شما امکان می‌دهد مدل‌های TensorFlow، PyTorch و JAX را در برنامه‌های اندروید خود اجرا کنید. سیستم LiteRT محیط‌های اجرایی از پیش ساخته شده و قابل تنظیم را برای اجرای سریع و کارآمد مدل‌ها در اندروید، از جمله گزینه‌هایی برای شتاب‌دهی سخت‌افزاری، فراهم می‌کند.

برای مثال، برنامه‌های اندرویدی که از LiteRT استفاده می‌کنند، به مخزن نمونه‌های LiteRT مراجعه کنید.

مدل‌های یادگیری ماشین

LiteRT از مدل‌های TensorFlow، PyTorch و JAX استفاده می‌کند که به فرمت مدل یادگیری ماشین کوچک‌تر، قابل حمل‌تر و کارآمدتر تبدیل می‌شوند. می‌توانید از مدل‌های از پیش ساخته شده با LiteRT در اندروید استفاده کنید، یا مدل‌های خودتان را بسازید و آنها را به فرمت LiteRT تبدیل کنید.

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

اجرای مدل‌ها در اندروید

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

جریان اجرای تابعی برای مدل‌های LiteRT در برنامه‌های اندروید

شکل 1. جریان اجرای تابعی برای مدل‌های LiteRT در برنامه‌های اندروید.

در سطح طراحی عملکردی، برنامه اندروید شما برای اجرای یک مدل LiteRT به عناصر زیر نیاز دارد:

  • محیط زمان اجرای LiteRT برای اجرای مدل
  • مدل‌سازی ورودی برای تبدیل داده‌ها به تانسورها
  • کنترل‌کننده خروجی مدل برای دریافت تانسورهای نتیجه خروجی و تفسیر آنها به عنوان نتایج پیش‌بینی

بخش‌های بعدی توضیح می‌دهند که چگونه کتابخانه‌ها و ابزارهای LiteRT این عناصر کاربردی را ارائه می‌دهند.

ساخت اپلیکیشن با LiteRT

این بخش، رایج‌ترین و توصیه‌شده‌ترین مسیر برای پیاده‌سازی LiteRT در برنامه اندروید شما را شرح می‌دهد. شما باید بیشترین توجه را به بخش‌های محیط زمان اجرا و کتابخانه‌های توسعه داشته باشید. اگر یک مدل سفارشی توسعه داده‌اید، حتماً بخش مسیرهای توسعه پیشرفته را مرور کنید.

گزینه‌های محیط اجرا

چندین روش برای فعال کردن محیط زمان اجرا برای اجرای مدل‌ها در برنامه اندروید شما وجود دارد. اینها گزینه‌های ترجیحی هستند:

به طور کلی، شما باید از محیط زمان اجرای ارائه شده توسط سرویس‌های گوگل پلی استفاده کنید زیرا از نظر فضا نسبت به محیط استاندارد کارآمدتر است زیرا به صورت پویا بارگیری می‌شود و اندازه برنامه شما را کوچکتر نگه می‌دارد. سرویس‌های گوگل پلی همچنین به طور خودکار از جدیدترین و پایدارترین نسخه زمان اجرای LiteRT استفاده می‌کنند و به شما ویژگی‌های اضافی و عملکرد بهبود یافته را در طول زمان ارائه می‌دهند. اگر برنامه خود را در دستگاه‌هایی ارائه می‌دهید که شامل سرویس‌های گوگل پلی نیستند یا نیاز دارید که محیط زمان اجرای ML خود را از نزدیک مدیریت کنید، باید از زمان اجرای استاندارد LiteRT استفاده کنید. این گزینه کد اضافی را در برنامه شما قرار می‌دهد و به شما امکان می‌دهد کنترل بیشتری بر زمان اجرای ML در برنامه خود داشته باشید، البته با هزینه افزایش حجم دانلود برنامه.

شما با اضافه کردن کتابخانه‌های توسعه LiteRT به محیط توسعه برنامه خود، به این محیط‌های زمان اجرا در برنامه اندروید خود دسترسی پیدا می‌کنید. برای اطلاعات بیشتر در مورد نحوه استفاده از محیط‌های زمان اجرای استاندارد در برنامه خود، به بخش بعدی مراجعه کنید.

کتابخانه‌ها

شما می‌توانید با استفاده از سرویس‌های گوگل پلی به رابط برنامه‌نویسی کاربردی مفسر (Interpreter API) دسترسی پیدا کنید. می‌توانید از هسته و کتابخانه‌های پشتیبانی LiteRT در برنامه اندروید خود استفاده کنید. برای جزئیات برنامه‌نویسی در مورد استفاده از کتابخانه‌ها و محیط‌های زمان اجرا LiteRT، به ابزارهای توسعه برای اندروید مراجعه کنید.

دریافت مدل‌ها

اجرای یک مدل در یک برنامه اندروید نیاز به یک مدل با فرمت LiteRT دارد. می‌توانید از مدل‌های از پیش ساخته شده استفاده کنید یا یکی بسازید و آن را به فرمت Lite تبدیل کنید. برای اطلاعات بیشتر در مورد دریافت مدل‌ها برای برنامه اندروید خود، به صفحه مدل‌های LiteRT مراجعه کنید.

مدیریت داده‌های ورودی

هر داده‌ای که به یک مدل یادگیری ماشینی ارسال می‌کنید، باید یک تانسور با ساختار داده‌ای خاص باشد که اغلب به آن شکل تانسور می‌گویند. برای پردازش داده‌ها با یک مدل، کد برنامه شما باید داده‌ها را از قالب بومی خود، مانند تصویر، متن یا داده‌های صوتی، به یک تانسور با شکل مورد نیاز برای مدل شما تبدیل کند.

اجرای استنتاج‌ها

پردازش داده‌ها از طریق یک مدل برای تولید نتیجه پیش‌بینی، به عنوان اجرای استنتاج شناخته می‌شود. اجرای استنتاج در یک برنامه اندروید نیاز به یک محیط زمان اجرای LiteRT، یک مدل و داده‌های ورودی دارد.

سرعتی که یک مدل می‌تواند در یک دستگاه خاص استنتاج ایجاد کند، به اندازه داده‌های پردازش‌شده، پیچیدگی مدل و منابع محاسباتی موجود مانند حافظه و CPU یا پردازنده‌های تخصصی به نام شتاب‌دهنده‌ها بستگی دارد. مدل‌های یادگیری ماشین می‌توانند با استفاده از درایورهای سخت‌افزاری LiteRT به نام نمایندگان، روی این پردازنده‌های تخصصی مانند واحدهای پردازش گرافیکی (GPU) و واحدهای پردازش تنسور (TPU) سریع‌تر اجرا شوند. برای اطلاعات بیشتر در مورد نمایندگان و شتاب سخت‌افزاری پردازش مدل، به نمای کلی شتاب سخت‌افزاری مراجعه کنید.

مدیریت نتایج خروجی

مدل‌ها نتایج پیش‌بینی را به صورت تانسور تولید می‌کنند که باید توسط برنامه اندروید شما با انجام اقدامات یا نمایش نتیجه به کاربر مدیریت شود. نتایج خروجی مدل می‌تواند به سادگی یک عدد مربوط به یک نتیجه واحد (0 = سگ، 1 = گربه، 2 = پرنده) برای طبقه‌بندی تصویر، تا نتایج بسیار پیچیده‌تر، مانند چندین کادر محصورکننده برای چندین شیء طبقه‌بندی شده در یک تصویر، با رتبه‌بندی اطمینان پیش‌بینی بین 0 و 1 باشد.

مسیرهای توسعه پیشرفته

هنگام استفاده از مدل‌های LiteRT پیچیده‌تر و سفارشی‌تر، ممکن است نیاز به استفاده از رویکردهای توسعه پیشرفته‌تری نسبت به آنچه در بالا توضیح داده شد، داشته باشید. بخش‌های زیر تکنیک‌های پیشرفته‌ای را برای اجرای مدل‌ها و توسعه آنها برای LiteRT در برنامه‌های اندروید شرح می‌دهند.

محیط‌های اجرایی پیشرفته

علاوه بر محیط‌های زمان اجرای استاندارد و سرویس‌های گوگل پلی برای LiteRT، محیط‌های زمان اجرای دیگری نیز وجود دارند که می‌توانید با برنامه اندروید خود از آنها استفاده کنید. محتمل‌ترین کاربرد این محیط‌ها زمانی است که یک مدل یادگیری ماشینی دارید که از عملیات یادگیری ماشینی استفاده می‌کند که توسط محیط زمان اجرای استاندارد LiteRT پشتیبانی نمی‌شوند.

زمان اجرای LiteRT Flex به شما امکان می‌دهد عملگرهای خاص مورد نیاز برای مدل خود را اضافه کنید. به عنوان یک گزینه پیشرفته برای اجرای مدل خود، می‌توانید LiteRT را برای اندروید بسازید تا عملگرها و سایر قابلیت‌های مورد نیاز برای اجرای مدل یادگیری ماشین TensorFlow شما را شامل شود. برای اطلاعات بیشتر، به Build LiteRT for Android مراجعه کنید.

رابط‌های برنامه‌نویسی کاربردی (API) زبان‌های C و C++

LiteRT همچنین یک API برای اجرای مدل‌ها با استفاده از C و C++ ارائه می‌دهد. اگر برنامه شما از Android NDK استفاده می‌کند، باید استفاده از این API را در نظر بگیرید. همچنین اگر می‌خواهید کد را بین چندین پلتفرم به اشتراک بگذارید، می‌توانید از این API استفاده کنید. برای اطلاعات بیشتر در مورد این گزینه توسعه، به صفحه ابزارهای توسعه مراجعه کنید.

اجرای مدل مبتنی بر سرور

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

گوگل کلود (Google Cloud) مجموعه‌ای کامل از خدمات را برای اجرای مدل‌های هوش مصنوعی ارائه می‌دهد. برای اطلاعات بیشتر، به صفحه محصولات هوش مصنوعی و یادگیری ماشینی گوگل کلود مراجعه کنید.

توسعه و بهینه‌سازی مدل سفارشی

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

نسخه‌های اندروید پشتیبانی‌شده

نسخه LiteRT وضعیت حداقل سطح SDK حداقل سطح NDK (در صورت استفاده) تاریخ انتشار
v1.2.0 ✅ فعال 21 (اندروید ۵ لالی‌پاپ) r26a ۲۰۲۵-۰۳-۱۳

مهم: وابستگی‌های خود را به‌روز نگه دارید تا از سازگاری با جدیدترین ویژگی‌ها و به‌روزرسانی‌های امنیتی اطمینان حاصل شود.