TensorFlow Lite হল TensorFlow ফ্রেমওয়ার্কের একটি হালকা সংস্করণ, যা Google দ্বারা সীমিত কম্পিউটেশনাল রিসোর্সযুক্ত মোবাইল এবং এমবেডেড ডিভাইসে মেশিন লার্নিং মডেল চালানোর জন্য তৈরি করা হয়েছে। পূর্ণ TensorFlow-এর বিপরীতে, TFLite একটি বিশেষায়িত ইন্টারপ্রেটার এবং .tflite ফরম্যাট ব্যবহার করে, যা প্রশিক্ষণ সমর্থন ছাড়াই দ্রুত ইনফারেন্সের জন্য অপটিমাইজ করা। TensorFlow Lite Guide, 2025 অনুসারে, ফ্রেমওয়ার্কটি Android, iOS এবং Linux-এ চলে এবং 4 বিলিয়নেরও বেশি ডিভাইসে ব্যবহৃত হয়। TensorFlow Lite কোয়ান্টাইজেশন, NNAPI, GPU এবং Core ML ডেলিগেটের মাধ্যমে হার্ডওয়্যার এক্সিলারেশন সমর্থন করে।
মূল পয়েন্ট
TensorFlow Lite সীমিত রিসোর্সযুক্ত ডিভাইসে মেশিন লার্নিং মডেল চালানোর জন্য একটি বিশেষায়িত রানটাইম। পূর্ণ TensorFlow-এর বিপরীতে, TFLite প্রশিক্ষণ বা ব্যাকপ্রোপাগেশন সমর্থন করে না — শুধুমাত্র ইনফারেন্স। এটি লাইব্রেরির বাইনারি আকার ন্যূনতম রাখতে দেয়: Android-এ বেস ইন্টারপ্রেটারের জন্য প্রায় 300 KB।
TFLite আর্কিটেকচার .tflite ফরম্যাট-এর চারপাশে নির্মিত, যা FlatBuffers-এর উপর ভিত্তি করে। FlatBuffers পার্সিং স্টেজ ছাড়াই ডেটাতে সরাসরি অ্যাক্সেস প্রদান করে, যা সীমিত মেমরির মোবাইল ডিভাইসের জন্য গুরুত্বপূর্ণ। .tflite ফরম্যাটে মডেলে একটি একক বাইনারি ফাইলে গণনা গ্রাফ, ওয়েট এবং মেটাডেটা থাকে।
Google I/O 2024 অনুসারে, TFLite Google Photos, Gboard, YouTube এবং অন্যান্য Google অ্যাপ্লিকেশনে 4 বিলিয়নেরও বেশি ডিভাইসের সম্মিলিত দর্শকের সাথে ব্যবহৃত হয়। ফ্রেমওয়ার্কটি সমস্ত প্রধান আর্কিটেকচার সমর্থন করে: CNN, RNN, LSTM, Transformer এবং ডেলিগেটের মাধ্যমে কাস্টম অপারেশন।
TFLite রানটাইম চারটি উপাদান নিয়ে গঠিত। TFLite Converter TensorFlow (SavedModel, Keras, ConcreteFunction) থেকে মডেল নেয় এবং ঐচ্ছিক অপটিমাইজেশন সহ .tflite ফরম্যাটে রূপান্তর করে। TFLite Interpreter .tflite ফাইল লোড করে এবং টেনসর ও মেমরি পরিচালনা করে ইনফারেন্স সম্পাদন করে।
ডেলিগেট হল উপাদান যা অপারেশন নির্বাহকে বিশেষায়িত হার্ডওয়্যারে স্থানান্তর করে। GPU Delegate OpenGL ES এবং Metal ব্যবহার করে, NNAPI Delegate Android Neural Networks API ব্যবহার করে, Core ML Delegate Apple Core ML ব্যবহার করে। XNNPACK Delegate ARM CPU-তে নির্বাহ অপটিমাইজ করে। প্রতিটি ডেলিগেট অপারেটরগুলির একটি নির্দিষ্ট সেট সমর্থন করে।
চতুর্থ উপাদান হল Task Library, যা সাধারণ কাজের জন্য উচ্চ-স্তরের API প্রদান করে: ইমেজ ক্লাসিফিকেশন, অবজেক্ট ডিটেকশন, সেগমেন্টেশন, NLU। Task Library Interpreter-এর উপরে কাজ করে এবং টেনসর ব্যবস্থাপনার বিবরণ লুকিয়ে রাখে।
TFLite তিন স্তরের কোয়ান্টাইজেশন সমর্থন করে। পূর্ণ পূর্ণসংখ্যা INT8 কোয়ান্টাইজেশন ওয়েট এবং অ্যাক্টিভেশনকে FP32 থেকে 8-বিট পূর্ণসংখ্যায় রূপান্তর করে। মডেলের আকার 4x কমে যায়, এবং INT8 সমর্থনযুক্ত ডিভাইসে ইনফারেন্স গতি 3x পর্যন্ত বৃদ্ধি পায়। FP16 কোয়ান্টাইজেশন ন্যূনতম নির্ভুলতা হ্রাসের সাথে আকার অর্ধেক করে।
ডায়নামিক কোয়ান্টাইজেশন ওয়েট INT8-এ রাখে কিন্তু গণনা FP32-এ সম্পাদন করে। এই মোড নির্ভুলতার প্রতি সংবেদনশীল মডেলের জন্য উপযুক্ত এবং গুণমান বজায় রেখে 4x পর্যন্ত আকার হ্রাস দেয়। Google ML Performance Benchmarks অনুসারে, NLP মডেলের জন্য ডায়নামিক কোয়ান্টাইজেশন সুপারিশ করা হয়।
| মোড | ওয়েট প্রকার | অ্যাক্টিভেশন প্রকার | আকার হ্রাস |
|---|---|---|---|
| FP32 (কোয়ান্টাইজেশন ছাড়া) | FP32 | FP32 | 1x |
| FP16 | FP16 | FP32 | 2x |
| ডায়নামিক INT8 | INT8 | FP32 | 4x |
| পূর্ণ INT8 | INT8 | INT8 | 4x |
Android-এ, প্রধান এক্সিলারেশন প্রক্রিয়া হল NNAPI Delegate, যা Android Neural Networks API-এর মাধ্যমে অপারেশন নির্বাহকে NPU, DSP বা GPU-তে স্থানান্তর করে। NNAPI Android 8.1+ আছে এমন ডিভাইসে উপলব্ধ এবং INT8 ও FP16 গণনা সমর্থন করে। Android-এর জন্য GPU Delegate OpenGL ES 3.1+ এবং Vulkan ব্যবহার করে।
iOS-এ, এক্সিলারেশন Core ML Delegate-এর মাধ্যমে প্রদান করা হয়, যা TFLite অপারেশনকে Core ML ফরম্যাটে অনুবাদ করে এবং Apple Neural Engine-এ নির্বাহ করে। Apple ML Benchmarking অনুসারে, Core ML Delegate ব্যবহার করলে iPhone 15 Pro-তে CPU-এর তুলনায় ইনফারেন্স 4x পর্যন্ত দ্রুত হয়। iOS-এর জন্য GPU Delegate Metal Performance Shaders ব্যবহার করে।
XNNPACK Delegate ARM CPU-এর জন্য একটি ক্রস-প্ল্যাটফর্ম সমাধান, মোবাইল প্রসেসরের জন্য অপটিমাইজড। XNNPACK FP32, FP16 এবং INT8 অপারেশন সমর্থন করে এবং বিশেষ হার্ডওয়্যারের প্রয়োজন হয় না। এটি সমস্ত ডিভাইসের জন্য বেসলাইন ডেলিগেট হিসাবে সুপারিশ করা হয়।
ডিপ্লয়মেন্ট প্রক্রিয়ায় তিনটি ধাপ অন্তর্ভুক্ত। প্রথম — TFLite Converter-এর মাধ্যমে মডেলটিকে .tflite-এ রূপান্তর করা। দ্বিতীয় — অ্যাপ্লিকেশন রিসোর্সে .tflite ফাইল অন্তর্ভুক্ত করা। Android-এর জন্য, ফাইলটি assets-এ রাখা হয়; iOS-এর জন্য, Xcode-এর মাধ্যমে অ্যাপ বান্ডলে। তৃতীয় — Interpreter আরম্ভ করা এবং ইনফারেন্স সম্পাদন করা।
ডায়নামিক মডেল আপডেট-এর জন্য, Google Firebase ML Model Downloading বা ক্লাউড থেকে কাস্টম ডাউনলোড প্রক্রিয়া ব্যবহার করার সুপারিশ করে। আপডেট করা .tflite ফাইল স্থানীয় স্টোরেজে সংরক্ষিত হয় এবং পরবর্তী লঞ্চে Interpreter-এ লোড হয়।
ডিপ্লয় করার সময়, .tflite ফাইলের আকার বিবেচনা করা গুরুত্বপূর্ণ। Google Play APK-এর আকার 200 MB-তে সীমাবদ্ধ করে। 50 MB-এর বড় মডেলের জন্য, Android App Bundle ব্যবহার করার বা Play Asset Delivery-এর মাধ্যমে মডেল আলাদাভাবে ডাউনলোড করার সুপারিশ করা হয়।
Android-এ Java API-এর সাথে মডেল লোড এবং চালানোর উদাহরণ। assets থেকে .tflite লোড করতে Interpreter.create() এবং ইনফারেন্সের জন্য run() ব্যবহার করুন। ইনপুট এবং আউটপুট ডেটা মাল্টিডাইমেনশনাল অ্যারে বা ByteBuffer হিসাবে পাস করা হয়:
import org.tensorflow.lite.Interpreter;
import java.nio.MappedByteBuffer;
import java.io.FileInputStream;
import java.nio.channels.FileChannel;
MappedByteBuffer model = new FileInputStream(
getAssets().openFd("model.tflite")
).getChannel().map(
FileChannel.MapMode.READ_ONLY, 0, fc.size()
);
Interpreter interpreter = new Interpreter.create(model);
float[][] input = new float[1][224 * 224 * 3];
float[][] output = new float[1][1000];
interpreter.run(input, output);
interpreter.close();
হার্ডওয়্যার এক্সিলারেশনের জন্য Android-এ GPU Delegate ব্যবহারের উদাহরণ। নির্ভরতা com.android.support:tensorflow-lite-gpu যোগ করুন এবং Interpreter তৈরি করার সময় ডেলিগেট নির্দিষ্ট করুন:
import org.tensorflow.lite.Interpreter;
import org.tensorflow.lite.gpu.GpuDelegate;
GpuDelegate gpuDelegate = new GpuDelegate.create();
Interpreter.Options options = new Interpreter.Options().addDelegate(gpuDelegate);
Interpreter interpreter = new Interpreter.create(model, options);
// Run inference on the input data
interpreter.run(input, output);
// Release delegate resources after inference
gpuDelegate.close();
interpreter.close();
সচরাচর জিজ্ঞাসা
TensorFlow প্রশিক্ষণ এবং ইনফারেন্সের জন্য একটি পূর্ণ ফ্রেমওয়ার্ক। TensorFlow Lite শুধুমাত্র মোবাইল ডিভাইসে ইনফারেন্সের জন্য। TFLite .tflite ফরম্যাট ব্যবহার করে এবং ব্যাকপ্রোপাগেশন সমর্থন করে না।
সমর্থিত ডেলিগেটগুলির মধ্যে রয়েছে GPU Delegate (OpenGL/Metal), NNAPI Delegate (Android), Core ML Delegate (iOS) এবং XNNPACK Delegate (ARM CPU)। প্রতিটি ডেলিগেট একটি নির্দিষ্ট ধরণের হার্ডওয়্যারের জন্য অপটিমাইজড।
কোয়ান্টাইজেশন ব্যবহার করুন: FP16 আকার 2x কমায়, INT8 4x কমায়। রূপান্তরের আগে ডায়নামিক কোয়ান্টাইজেশন, ওয়েট প্রুনিং এবং মডেল ডিস্টিলেশনও উপলব্ধ।
হ্যাঁ, TFLite Model Maker এবং অন-ডিভাইস ট্রেনিং API (পরীক্ষামূলক) এর মাধ্যমে। ব্যবহারকারীর ডিভাইসে সরাসরি ফাইন-টিউনিং এবং মডেল ব্যক্তিগতকরণ সমর্থিত।
TFLite CNN, RNN, LSTM, Transformer, মোবাইল আর্কিটেকচার (MobileNet, EfficientNet, YOLO, BERT) এবং কাস্টম অপারেশন সমর্থন করে। সীমাবদ্ধতা হল লক্ষ্য ডেলিগেটে উপলব্ধ অপারেটর।
সারাংশ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন