مرور کلی تبدیل مدل TensorFlow

مدل‌های یادگیری ماشینی (ML) که شما با LiteRT استفاده می‌کنید، در اصل با استفاده از کتابخانه‌ها و ابزارهای هسته TensorFlow ساخته و آموزش داده می‌شوند. پس از ساخت مدل با هسته TensorFlow، می‌توانید آن را به یک فرمت مدل ML کوچک‌تر و کارآمدتر به نام مدل LiteRT تبدیل کنید. این بخش راهنمایی‌هایی برای تبدیل مدل‌های TensorFlow شما به فرمت مدل LiteRT ارائه می‌دهد.

گردش کار تبدیل

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

نمودار زیر مراحل سطح بالای تبدیل یک مدل را نشان می‌دهد.

گردش کار تبدیل TFLite

شکل 1. گردش کار تبدیل LiteRT.

بخش‌های زیر فرآیند ارزیابی و تبدیل مدل‌ها برای استفاده با LiteRT را شرح می‌دهند.

قالب‌های مدل ورودی

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

  • SavedModel ( توصیه شده ): یک مدل TensorFlow که به صورت مجموعه‌ای از فایل‌ها روی دیسک ذخیره شده است.
  • مدل Keras : مدلی که با استفاده از API سطح بالای Keras ایجاد شده است.
  • فرمت Keras H5 : یک جایگزین سبک برای فرمت SavedModel که توسط Keras API پشتیبانی می‌شود.
  • مدل‌های ساخته شده از توابع عینی : مدلی که با استفاده از API سطح پایین TensorFlow ایجاد شده است.

شما می‌توانید هر دو مدل Keras و تابع عینی را به عنوان یک SavedModel ذخیره کنید و با استفاده از مسیر پیشنهادی تبدیل کنید.

اگر مدل Jax دارید، می‌توانید از API مربوط به TFLiteConverter.experimental_from_jax برای تبدیل آن به فرمت LiteRT استفاده کنید. توجه داشته باشید که این API در حالت آزمایشی ممکن است تغییر کند.

ارزیابی تبدیل

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

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

تبدیل مدل

مبدل LiteRT یک مدل TensorFlow را دریافت کرده و یک مدل LiteRT (یک فرمت FlatBuffer بهینه شده که با پسوند فایل .tflite شناسایی می‌شود) تولید می‌کند. می‌توانید یک SavedModel را بارگذاری کنید یا مستقیماً مدلی را که در کد ایجاد می‌کنید، تبدیل کنید.

مبدل ۳ پرچم (یا گزینه) اصلی را دریافت می‌کند که تبدیل را برای مدل شما سفارشی می‌کنند:

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

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

معمولاً شما مدل خود را برای محیط زمان اجرای استاندارد LiteRT یا محیط زمان اجرای سرویس‌های Google Play برای LiteRT (بتا) تبدیل می‌کنید. برخی از موارد استفاده پیشرفته نیاز به سفارشی‌سازی محیط زمان اجرای مدل دارند که به مراحل اضافی در فرآیند تبدیل نیاز دارد. برای راهنمایی بیشتر به بخش محیط زمان اجرای پیشرفته در نمای کلی اندروید مراجعه کنید.

تبدیل پیشرفته

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

مراحل بعدی

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