টেনসরফ্লো মডেল রূপান্তর ওভারভিউ

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

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

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

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

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

চিত্র ১. LiterRT রূপান্তর কর্মপ্রবাহ।

নিম্নলিখিত বিভাগগুলিতে LiterRT-এর সাথে ব্যবহারের জন্য মডেলগুলির মূল্যায়ন এবং রূপান্তর প্রক্রিয়ার রূপরেখা দেওয়া হয়েছে।

ইনপুট মডেল ফর্ম্যাট

আপনি নিম্নলিখিত ইনপুট মডেল ফর্ম্যাটগুলির সাথে কনভার্টারটি ব্যবহার করতে পারেন:

আপনি Keras এবং concrete ফাংশন মডেল উভয়কেই SavedModel হিসেবে সংরক্ষণ করতে পারেন এবং recommeded path ব্যবহার করে রূপান্তর করতে পারেন।

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

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

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

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

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

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

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

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

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

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

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

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

  • TensorFlow এবং LiterRT মডেলের সামঞ্জস্য বিবেচনা সম্পর্কে আরও তথ্যের জন্য মডেল সামঞ্জস্যের ওভারভিউ দেখুন।
  • মডেল সামঞ্জস্যতা ওভারভিউয়ের অধীনে থাকা বিষয়গুলি আপনার মডেল রিফ্যাক্টর করার জন্য উন্নত কৌশলগুলি কভার করে, যেমন সিলেক্ট অপারেটর নির্দেশিকা।
  • সম্পূর্ণ কার্যক্রম এবং সীমাবদ্ধতার তালিকার জন্য LiteRT Ops পৃষ্ঠাটি দেখুন।

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