মডেল রূপান্তর ওভারভিউ

আপনি LiteRT এর সাথে যে মেশিন লার্নিং (ML) মডেলগুলি ব্যবহার করেন তা মূলত TensorFlow কোর লাইব্রেরি এবং টুল ব্যবহার করে তৈরি এবং প্রশিক্ষিত। একবার আপনি টেনসরফ্লো কোর সহ একটি মডেল তৈরি করলে, আপনি এটিকে একটি ছোট, আরও দক্ষ এমএল মডেল ফর্ম্যাটে রূপান্তর করতে পারেন যাকে LiteRT মডেল বলা হয়। এই বিভাগটি আপনার TensorFlow মডেলগুলিকে LiteRT মডেল ফর্ম্যাটে রূপান্তর করার জন্য নির্দেশিকা প্রদান করে৷

রূপান্তর কর্মপ্রবাহ

TensorFlow মডেলগুলিকে LiteRT ফর্ম্যাটে রূপান্তর করা আপনার ML মডেলের বিষয়বস্তুর উপর নির্ভর করে কয়েকটি পথ নিতে পারে। সেই প্রক্রিয়ার প্রথম ধাপ হিসাবে, এটি সরাসরি রূপান্তর করা যায় কিনা তা নির্ধারণ করতে আপনার মডেলটিকে মূল্যায়ন করা উচিত। এই মূল্যায়ন নির্ধারণ করে যে মডেলের বিষয়বস্তু এটি ব্যবহার করা TensorFlow অপারেশনগুলির উপর ভিত্তি করে আদর্শ LiteRT রানটাইম পরিবেশ দ্বারা সমর্থিত কিনা। যদি আপনার মডেল সমর্থিত সেটের বাইরে ক্রিয়াকলাপ ব্যবহার করে, তাহলে আপনার কাছে আপনার মডেল রিফ্যাক্টর বা উন্নত রূপান্তর কৌশল ব্যবহার করার বিকল্প রয়েছে।

নীচের চিত্রটি একটি মডেল রূপান্তর করার উচ্চ স্তরের পদক্ষেপগুলি দেখায়৷

TFLite রূপান্তর কর্মপ্রবাহ

চিত্র 1. LiteRT রূপান্তর কর্মপ্রবাহ।

নিম্নলিখিত বিভাগগুলি LiteRT এর সাথে ব্যবহারের জন্য মডেলগুলিকে মূল্যায়ন এবং রূপান্তর করার প্রক্রিয়ার রূপরেখা দেয়৷

ইনপুট মডেল বিন্যাস

আপনি নিম্নলিখিত ইনপুট মডেল বিন্যাস সহ রূপান্তরকারী ব্যবহার করতে পারেন:

আপনি কেরাস এবং কংক্রিট ফাংশন উভয় মডেলকে সেভডমডেল হিসাবে সংরক্ষণ করতে পারেন এবং প্রস্তাবিত পথ ব্যবহার করে রূপান্তর করতে পারেন।

আপনার যদি একটি Jax মডেল থাকে, তাহলে আপনি TFLiteConverter.experimental_from_jax API ব্যবহার করে এটিকে LiteRT ফরম্যাটে রূপান্তর করতে পারেন। মনে রাখবেন যে পরীক্ষামূলক মোডে থাকাকালীন এই API পরিবর্তন সাপেক্ষে।

রূপান্তর মূল্যায়ন

আপনার মডেলটিকে রূপান্তর করার চেষ্টা করার আগে মূল্যায়ন করা একটি গুরুত্বপূর্ণ পদক্ষেপ। মূল্যায়ন করার সময়, আপনি নির্ধারণ করতে চান যে আপনার মডেলের বিষয়বস্তু LiteRT ফর্ম্যাটের সাথে সামঞ্জস্যপূর্ণ কিনা। আপনার মডেলটি ব্যবহার করা ডেটার আকার, এর হার্ডওয়্যার প্রক্রিয়াকরণের প্রয়োজনীয়তা এবং মডেলের সামগ্রিক আকার এবং জটিলতার পরিপ্রেক্ষিতে মোবাইল এবং এজ ডিভাইসে ব্যবহারের জন্য উপযুক্ত কিনা তাও আপনার নির্ধারণ করা উচিত।

অনেক মডেলের জন্য, কনভার্টারটি বাক্সের বাইরে কাজ করা উচিত। যাইহোক, LiteRT বিল্টইন অপারেটর লাইব্রেরি TensorFlow কোর অপারেটরগুলির একটি উপসেট সমর্থন করে, যার মানে কিছু মডেলকে LiteRT-তে রূপান্তর করার আগে অতিরিক্ত পদক্ষেপের প্রয়োজন হতে পারে। অতিরিক্তভাবে কিছু ক্রিয়াকলাপ যা LiteRT দ্বারা সমর্থিত, পারফরম্যান্সের কারণে ব্যবহারের প্রয়োজনীয়তা সীমাবদ্ধ করে। আপনার মডেলটিকে রূপান্তরের জন্য রিফ্যাক্টর করা দরকার কিনা তা নির্ধারণ করতে অপারেটর সামঞ্জস্যতা নির্দেশিকা দেখুন।

মডেল রূপান্তর

LiteRT রূপান্তরকারী একটি TensorFlow মডেল নেয় এবং একটি LiteRT মডেল তৈরি করে ( .tflite ফাইল এক্সটেনশন দ্বারা চিহ্নিত একটি অপ্টিমাইজ করা ফ্ল্যাটবাফার ফর্ম্যাট)। আপনি একটি সংরক্ষিত মডেল লোড করতে পারেন বা কোডে তৈরি করা একটি মডেলকে সরাসরি রূপান্তর করতে পারেন৷

কনভার্টারটি 3টি প্রধান পতাকা (বা বিকল্প) নেয় যা আপনার মডেলের জন্য রূপান্তর কাস্টমাইজ করে:

  1. সামঞ্জস্যপূর্ণ ফ্ল্যাগগুলি আপনাকে নির্দিষ্ট করতে দেয় যে রূপান্তরটি কাস্টম অপারেটরদের অনুমতি দেবে কিনা।
  2. অপ্টিমাইজেশান ফ্ল্যাগগুলি আপনাকে রূপান্তরের সময় প্রয়োগ করার জন্য অপ্টিমাইজেশনের ধরন নির্দিষ্ট করতে দেয়৷ সর্বাধিক ব্যবহৃত অপ্টিমাইজেশান কৌশল হল পোস্ট-ট্রেনিং কোয়ানিটাইজেশন
  3. মেটাডেটা ফ্ল্যাগগুলি আপনাকে রূপান্তরিত মডেলে মেটাডেটা যোগ করার অনুমতি দেয় যা ডিভাইসগুলিতে মডেল স্থাপন করার সময় প্ল্যাটফর্ম নির্দিষ্ট র্যাপার কোড তৈরি করা সহজ করে তোলে।

আপনি পাইথন API বা কমান্ড লাইন টুল ব্যবহার করে আপনার মডেল রূপান্তর করতে পারেন। আপনার মডেলে কনভার্টার চালানোর ধাপে ধাপে নির্দেশাবলীর জন্য Convert TF মডেল গাইড দেখুন।

সাধারণত আপনি আদর্শ LiteRT রানটাইম পরিবেশ বা LiteRT (বিটা) এর জন্য Google Play পরিষেবার রানটাইম পরিবেশের জন্য আপনার মডেল রূপান্তর করবেন। কিছু উন্নত ব্যবহারের ক্ষেত্রে মডেল রানটাইম পরিবেশের কাস্টমাইজেশন প্রয়োজন, যার জন্য রূপান্তর প্রক্রিয়ায় অতিরিক্ত পদক্ষেপ প্রয়োজন। আরও নির্দেশনার জন্য Android ওভারভিউ-এর উন্নত রানটাইম পরিবেশ বিভাগটি দেখুন।

উন্নত রূপান্তর

আপনার মডেলে কনভার্টার চালানোর সময় আপনি যদি ত্রুটির সম্মুখীন হন, তাহলে সম্ভবত আপনার একটি অপারেটর সামঞ্জস্যের সমস্যা আছে। সমস্ত TensorFlow অপারেশন TensorFlow Lite দ্বারা সমর্থিত নয়। আপনি আপনার মডেলকে রিফ্যাক্টরিং করে, বা উন্নত রূপান্তর বিকল্পগুলি ব্যবহার করে এই সমস্যাগুলির সমাধান করতে পারেন যা আপনাকে একটি পরিবর্তিত LiteRT ফর্ম্যাট মডেল এবং সেই মডেলের জন্য একটি কাস্টম রানটাইম পরিবেশ তৈরি করতে দেয়৷

পরবর্তী পদক্ষেপ