به مرور کلی LiteRT خوش آمدید

LiteRT چارچوب روی دستگاه گوگل برای استقرار با کارایی بالای یادگیری ماشین و هوش مصنوعی نسل بعدی (GenAI) در پلتفرم‌های لبه‌ای است که از تبدیل، زمان اجرا و بهینه‌سازی کارآمد استفاده می‌کند.

LiteRT 2.x شامل جدیدترین API زمان اجرا، یعنی CompiledModel API است که نسبت به Interpreter API (معروف به TensorFlow Lite API) بهبود یافته است، به ویژه از طریق شتاب سخت‌افزاری و عملکرد کلی برای برنامه‌های یادگیری ماشین و هوش مصنوعی روی دستگاه. CompiledModel API در نسخه بتا منتشر شده و هم در Kotlin و هم در C++ موجود است.

ویژگی‌های کلیدی LiteRT

مدل‌های پشتیبانی‌شده

LiteRT از تبدیل ساده از چارچوب‌های Pytorch، TensorFlow و JAX به فرمت .tflite یا .litertlm پشتیبانی می‌کند.

ساده‌سازی توسعه با LiteRT

انتخاب خودکار شتاب‌دهنده در مقابل ایجاد صریح نماینده. زمان اجرای ساده NPU و توزیع مدل. مدیریت کارآمد بافر ورودی/خروجی و اجرای ناهمزمان برای عملکرد برتر.

بهترین عملکرد پردازنده گرافیکی در کلاس خود

با پشتیبانی از ML Drift، اکنون از هر دو مدل ML و Generative AI در API های GPU پشتیبانی می‌کند.

شتاب‌دهی یکپارچه NPU

با استفاده از دسترسی ساده به NPU از ارائه دهندگان اصلی چیپست، مدل خود را تسریع کنید.

پشتیبانی ساده‌شده‌ی LLM با LiteRT

شما می‌توانید از LiteRT-LM که توسط LiteRT پشتیبانی می‌شود استفاده کنید. LiteRT-LM از جدیدترین LLMها و ویژگی‌های مفیدی مانند چندوجهی بودن، رمزگشایی محدود و غیره پشتیبانی می‌کند.

گردش کار توسعه

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

نمودار گردش کار توسعه LiteRT

مناسب‌ترین راه‌حل برای چالش یادگیری ماشینی را شناسایی کنید

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

دریافت و آماده‌سازی مدل

یک مدل LiteRT در یک فرمت قابل حمل کارآمد به نام FlatBuffers نمایش داده می‌شود که از پسوند فایل .tflite استفاده می‌کند.

شما می‌توانید مدل LiteRT را به روش‌های زیر دریافت کنید:

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

    ساده‌ترین روش، استفاده از یک مدل LiteRT است که از قبل با فرمت .tflite است. این مدل‌ها نیازی به هیچ مرحله تبدیل اضافی ندارند.

    نوع مدل منبع مدل از پیش آموزش دیده
    یادگیری ماشین کلاسیک
    (فرمت .tflite )
    از Kaggle یا HuggingFace دیدن کنید
    به عنوان مثال، مدل‌های تقسیم‌بندی تصویر و برنامه نمونه
    هوش مصنوعی مولد
    (فرمت .litertlm )
    صفحه چهره بغل کردن LiteRT
    مثلاً خانواده جما
  • اگر نمی‌خواهید از مدل از پیش آموزش‌دیده استفاده کنید، مدل PyTorch، TensorFlow یا JAX انتخابی خود را به مدل LiteRT تبدیل کنید . [کاربر حرفه‌ای]

    چارچوب مدل مدل‌های نمونه ابزار تبدیل
    پیتورچ صورت در آغوش گرفته
    تورچ ویژن
    پیوند
    تنسورفلو مدل‌های کاگل
    صورت در آغوش گرفته
    پیوند
    جکس صورت در آغوش گرفته پیوند
  • برای بهینه‌سازی بیشتر با استفاده از Generative API، LLM خود را بنویسید [کاربر حرفه‌ای]

    کتابخانه Generative API ما، بلوک‌های سازنده داخلی PyTorch را برای ترکیب مدل‌های Transformer مانند Gemma ، TinyLlama و سایر مدل‌ها با استفاده از انتزاع‌های سازگار با موبایل فراهم می‌کند که از طریق آنها می‌توانیم تبدیل و اجرای کارآمد را در زمان اجرای موبایل خود، LiteRT، تضمین کنیم. به مستندات Generative API مراجعه کنید.

کوانتیزاسیون [کاربر حرفه‌ای]

کوانتایزر لبه هوش مصنوعی برای توسعه‌دهندگان پیشرفته، ابزاری برای کوانتیزه کردن مدل‌های تبدیل‌شده LiteRT است. هدف آن تسهیل تلاش کاربران پیشرفته برای دستیابی به عملکرد بهینه در مدل‌های نیازمند منابع (مانند مدل‌های GenAI) است.

برای مدل‌های یادگیری ماشین و مدل‌های هوش مصنوعی مولد، به مستندات Ai-Edge-Quantization مراجعه کنید.

پیش‌نیازهای شروع کار

  • پایتون ۳.۱۰-۳.۱۲
  • فایل مدل .tflite
  • جزئیات بیشتر در بخش پلتفرم مربوطه موجود است

مدل را در پلتفرم‌های لبه‌ای در برنامه خود ادغام کنید

شما می‌توانید مدل‌های LiteRT خود را برای اجرای استنتاج‌ها به طور کامل روی دستگاه در دستگاه‌های اندروید، iOS، وب، اینترنت اشیا و دسکتاپ پیاده‌سازی کنید. LiteRT شامل APIهایی برای پایتون ، جاوا و کاتلین برای اندروید، سوئیفت برای iOS و C++ برای میکرودستگاه‌ها است.

برای پیاده‌سازی یک مدل LiteRT در پلتفرم مورد نظر خود، از راهنماهای زیر استفاده کنید:

چارچوب مدل مدل‌های نمونه ابزار تبدیل
اجرا روی اندروید دستگاه‌های تلفن همراه اندروید رابط‌های برنامه‌نویسی کاربردی سی‌پلاس‌پلاس/کاتلین
اجرا روی iOS دستگاه‌های تلفن همراه iOS رابط‌های برنامه‌نویسی کاربردی سی‌پلاس‌پلاس/سوئیفت*
اجرا روی وب با استفاده از LiteRT.js دستگاهی با کروم، فایرفاکس یا سافاری API های جاوا اسکریپت
اجرا روی میکرو دستگاه‌های تعبیه‌شده رابط‌های برنامه‌نویسی کاربردی سی‌پلاس‌پلاس

*به زودی

مثال کد کاتلین

// Load model and initialize runtime
val compiledModel = CompiledModel.create("/path/to/mymodel.tflite", CompiledModel.Options(Accelerator.CPU))

// Prepare I/O buffers and fill in the data
val inputBuffers = compiledModel.createInputBuffers()
inputBuffers.get(0).writeFloat(input0)
inputBuffers.get(1).writeFloat(input1)

val outputBuffers = compiledModel.createOutputBuffers()

// Execute model
compiledModel.run(inputBuffers, outputBuffers)

// Access model output
val output = outputBuffers.get(0).readFloat()

inputBuffers.forEach { it.close() }
outputBuffers.forEach { it.close() }
compiledModel.close()

مثال کد C++

LITERT_ASSIGN_OR_RETURN(auto env, GetEnvironment());
LITERT_ASSIGN_OR_RETURN(auto options, GetOptions());
LITERT_ASSIGN_OR_RETURN(
      auto compiled_model,
      CompiledModel::Create(env, "/path/to/mymodel.tflite", options));
LITERT_ASSIGN_OR_RETURN(auto input_buffers,compiled_model.CreateInputBuffers(signature_index));
LITERT_ASSIGN_OR_RETURN(auto output_buffers,compiled_model.CreateOutputBuffers(signature_index));
LITERT_ABORT_IF_ERROR(input_buffers[0].Write(input0));
LITERT_ABORT_IF_ERROR(input_buffers[1].Write(input1));

LITERT_ABORT_IF_ERROR(compiled_model.Run(signature_index, input_buffers, output_buffers));

LITERT_ABORT_IF_ERROR(output_buffers[0].Read(output0));

یک بک‌اند انتخاب کنید

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

هسته LiteRT نسخه ۲.x شیء CompiledModel است. وقتی یک مدل را بارگذاری می‌کنید، LiteRT از سخت‌افزار موجود سیستم و منطق اولویت داخلی برای انتخاب backend بهینه بدون پیکربندی دستی استفاده می‌کند. برای جزئیات بیشتر به backend مراجعه کنید .

اندروید دسکتاپ وب آی‌او‌اس مک‌او‌اس اینترنت اشیا
پردازنده XNNPack XNNPack XNNPack XNNPack XNNPack XNNPack
پردازنده گرافیکی پردازنده گرافیکی وب
اوپن‌سی‌ال
پردازنده گرافیکی وب
اوپن‌سی‌ال
پردازنده گرافیکی وب پردازنده گرافیکی وب
فلز
پردازنده گرافیکی وب
فلز
پردازنده گرافیکی وب
ان پی یو مدیاتک
کوالکام
- - - - -

مستندات و پشتیبانی اضافی

برنامه نمونه LiteRT نسخه ۲.x به برنامه نمونه قطعه‌بندی تصویر LiteRT مراجعه کنید

برای کاربران فعلی TensorFlow Lite، به راهنمای مهاجرت مراجعه کنید.

پوشش عملیاتی اپراتورهای سازگار

مدل‌های LLM پشتیبانی‌شده LiteRT، چهره در آغوش گرفته و Gen API - نمونه‌ها

صفحه ابزارهای LiteRT - عملکرد، پروفایلینگ، گزارش خطا و غیره