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

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

آخرین نسخه LiteRT 2.x، رابط برنامه‌نویسی CompiledModel API) را معرفی می‌کند، یک رابط زمان اجرای مدرن که برای به حداکثر رساندن شتاب سخت‌افزاری طراحی شده است. در حالی که رابط برنامه‌نویسی کاربردی Interpreter (که قبلاً TensorFlow Lite نام داشت) برای سازگاری با نسخه‌های قبلی همچنان در دسترس است، رابط برنامه‌نویسی CompiledModel انتخاب پیشنهادی برای توسعه‌دهندگانی است که به دنبال عملکرد پیشرفته در برنامه‌های هوش مصنوعی روی دستگاه هستند.

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

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

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

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

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

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

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

پشتیبانی عالی LLM

LiteRT استقرار با کارایی بالا را برای مدل‌های هوش مصنوعی مولد در پلتفرم‌های موبایل، دسکتاپ و وب ارائه می‌دهد. به مستندات استقرار GenAI مراجعه کنید.

پشتیبانی گسترده از چارچوب یادگیری ماشین

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

شروع کار با CompiledModel API

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

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 Quantizer ببینید.

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

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

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

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

قطعه کدهای زیر یک پیاده‌سازی اولیه در کاتلین و سی‌پلاس‌پلاس را نشان می‌دهند.

کاتلین

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

// Preallocate input/output buffers
val inputBuffers = compiledModel.createInputBuffers()
val outputBuffers = compiledModel.createOutputBuffers()

// Fill the input buffer
inputBuffers.get(0).writeFloat(input0)
inputBuffers.get(1).writeFloat(input1)

// Invoke
compiledModel.run(inputBuffers, outputBuffers)

// Read the output
val output = outputBuffers.get(0).readFloat()

سی++

// Load model and initialize runtime
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));

// Preallocate input/output buffers
LITERT_ASSIGN_OR_RETURN(auto input_buffers,compiled_model.CreateInputBuffers(signature_index));
LITERT_ASSIGN_OR_RETURN(auto output_buffers,compiled_model.CreateOutputBuffers(signature_index));

// Fill the input buffer
LITERT_ABORT_IF_ERROR(input_buffers[0].Write(input0));
LITERT_ABORT_IF_ERROR(input_buffers[1].Write(input1));

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

// Read the output
LITERT_ABORT_IF_ERROR(output_buffers[0].Read(output0));

یک شتاب‌دهنده سخت‌افزاری انتخاب کنید

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

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

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