টেনসরফ্লো লাইট এবং ফায়ারবেস - অ্যান্ড্রয়েড কোডল্যাব সহ আপনার অ্যাপে অন-ডিভাইস টেক্সট ক্লাসিফিকেশন যোগ করুন

1। সংক্ষিপ্ত বিবরণ

text-classification-result.png

TensorFlow Lite এবং Firebase কোডল্যাবের সাথে টেক্সট ক্লাসিফিকেশনে স্বাগতম। এই কোডল্যাবে আপনি শিখবেন কিভাবে TensorFlow Lite এবং Firebase ব্যবহার করতে হয় এবং আপনার অ্যাপে একটি টেক্সট ক্লাসিফিকেশন মডেল প্রশিক্ষিত করতে হয়। এই কোডল্যাবটি এই টেনসরফ্লো লাইট উদাহরণের উপর ভিত্তি করে তৈরি করা হয়েছে।

পাঠ্য শ্রেণিবিন্যাস হল পাঠ্যের বিষয়বস্তু অনুসারে ট্যাগ বা বিভাগ নির্ধারণের প্রক্রিয়া। এটি ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং (NLP) এর মৌলিক কাজগুলির মধ্যে একটি যা বিস্তৃত অ্যাপ্লিকেশন যেমন সেন্টিমেন্ট বিশ্লেষণ, বিষয় লেবেলিং, স্প্যাম সনাক্তকরণ এবং অভিপ্রায় সনাক্তকরণ।

সেন্টিমেন্ট বিশ্লেষণ হল পাঠ্য বিশ্লেষণের কৌশল ব্যবহার করে পাঠ্য ডেটার মধ্যে আবেগের (ইতিবাচক, নেতিবাচক এবং নিরপেক্ষ) ব্যাখ্যা এবং শ্রেণীবিভাগ। সেন্টিমেন্ট বিশ্লেষণ ব্যবসাগুলিকে অনলাইন কথোপকথন এবং প্রতিক্রিয়াতে পণ্য, ব্র্যান্ড বা পরিষেবাগুলির প্রতি গ্রাহকের অনুভূতি সনাক্ত করতে দেয়।

এই টিউটোরিয়ালটি দেখায় কিভাবে অনুভূতি বিশ্লেষণের জন্য একটি মেশিন লার্নিং মডেল তৈরি করা যায়, বিশেষ করে পাঠ্যকে ইতিবাচক বা নেতিবাচক হিসাবে শ্রেণীবদ্ধ করা। এটি বাইনারি-বা দ্বি-শ্রেণীর-শ্রেণীবিভাগের একটি উদাহরণ, একটি গুরুত্বপূর্ণ এবং ব্যাপকভাবে প্রযোজ্য ধরনের মেশিন লার্নিং সমস্যা।

আপনি কি শিখবেন

  • TF Lite মডেল মেকারের সাথে একটি TF Lite অনুভূতি বিশ্লেষণ মডেল প্রশিক্ষণ দিন
  • Firebase ML-এ TF Lite মডেল স্থাপন করুন এবং আপনার অ্যাপ থেকে সেগুলি অ্যাক্সেস করুন
  • TF Lite টাস্ক লাইব্রেরি ব্যবহার করে আপনার অ্যাপে TF Lite সেন্টিমেন্ট বিশ্লেষণ মডেলগুলিকে একীভূত করুন

আপনি কি প্রয়োজন হবে

  • সর্বশেষ অ্যান্ড্রয়েড স্টুডিও সংস্করণ।
  • কোডের উদাহরণ.
  • Android 5.0+ এবং Google Play পরিষেবা 9.8 বা তার পরবর্তী সংস্করণের একটি পরীক্ষামূলক ডিভাইস বা Google Play পরিষেবাগুলির 9.8 বা তার পরে একটি এমুলেটর
  • যদি একটি ডিভাইস ব্যবহার করে, একটি সংযোগ তারের.

আপনি কিভাবে এই টিউটোরিয়াল ব্যবহার করবেন?

শুধুমাত্র মাধ্যমে এটি পড়ুন এটি পড়ুন এবং ব্যায়াম সম্পূর্ণ করুন

অ্যান্ড্রয়েড অ্যাপ তৈরি করার বিষয়ে আপনার অভিজ্ঞতাকে কীভাবে মূল্যায়ন করবেন?

নবজাতক মধ্যবর্তী দক্ষ

2. নমুনা কোড পান

কমান্ড লাইন থেকে GitHub সংগ্রহস্থল ক্লোন করুন।

$ git clone https://github.com/FirebaseExtended/codelab-textclassification-android.git

আপনার যদি গিট ইনস্টল না থাকে তবে আপনি নমুনা প্রকল্পটি এর GitHub পৃষ্ঠা থেকে বা এই লিঙ্কে ক্লিক করে ডাউনলোড করতে পারেন।

3. স্টার্টার অ্যাপ আমদানি করুন

অ্যান্ড্রয়েড স্টুডিও থেকে, codelab-textclassification-android-master ডিরেক্টরি নির্বাচন করুন ( android_studio_folder.png ) নমুনা কোড ডাউনলোড থেকে ( ফাইল > খুলুন > .../codelab-textclassification-android-master/start)।

আপনার এখন অ্যান্ড্রয়েড স্টুডিওতে স্টার্ট প্রজেক্ট খোলা থাকা উচিত।

4. স্টার্টার অ্যাপ চালান

এখন আপনি অ্যান্ড্রয়েড স্টুডিওতে প্রকল্পটি আমদানি করেছেন, আপনি প্রথমবারের জন্য অ্যাপটি চালানোর জন্য প্রস্তুত৷ আপনার অ্যান্ড্রয়েড ডিভাইস সংযোগ করুন, এবং রান ক্লিক করুন ( execute.png অ্যান্ড্রয়েড স্টুডিও টুলবারে।

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

2fb4e69fafb2e3ed.png

5. ফায়ারবেস কনসোল প্রকল্প তৈরি করুন

প্রকল্পে Firebase যোগ করুন

  1. ফায়ারবেস কনসোলে যান।
  2. প্রকল্প যোগ করুন নির্বাচন করুন।
  3. একটি প্রকল্পের নাম নির্বাচন করুন বা লিখুন।
  4. Firebase কনসোলে অবশিষ্ট সেটআপ পদক্ষেপগুলি অনুসরণ করুন, তারপরে প্রজেক্ট তৈরি করুন (বা যদি আপনি একটি বিদ্যমান Google প্রকল্প ব্যবহার করেন তবে Firebase যোগ করুন) ক্লিক করুন।

6. অ্যাপে Firebase যোগ করুন

  1. আপনার নতুন প্রকল্পের ওভারভিউ স্ক্রীন থেকে, সেটআপ ওয়ার্কফ্লো চালু করতে Android আইকনে ক্লিক করুন।
  2. কোডল্যাবের প্যাকেজের নাম লিখুন: org.tensorflow.lite.codelabs.textclassification

আপনার অ্যাপে google-services.json ফাইল যোগ করুন

প্যাকেজের নাম যোগ করার পরে এবং নিবন্ধন** নির্বাচন করার পরে, আপনার Firebase অ্যান্ড্রয়েড কনফিগার ফাইলটি পেতে ডাউনলোড google-services.json** ক্লিক করুন তারপর আপনার প্রকল্পের * app * ডিরেক্টরিতে google-services.json ফাইলটি অনুলিপি করুন।

আপনার অ্যাপে google-services প্লাগইন যোগ করুন

আপনার অ্যাপে Firebase যোগ করতে build.gradle.kts ফাইল আপডেট করার জন্য Firebase কনসোলের নির্দেশাবলী অনুসরণ করুন।

Firebase ব্যবহার করার জন্য আপনার অ্যাপ্লিকেশন কনফিগার করতে google-services প্লাগইনটি google-services.json ফাইল ব্যবহার করে।

গ্রেডল ফাইলের সাথে আপনার প্রকল্প সিঙ্ক করুন

আপনার অ্যাপে সমস্ত নির্ভরতা উপলব্ধ রয়েছে তা নিশ্চিত করার জন্য, আপনাকে এই মুহুর্তে গ্রেডল ফাইলগুলির সাথে আপনার প্রকল্প সিঙ্ক করা উচিত। অ্যান্ড্রয়েড স্টুডিও টুলবার থেকে ফাইল > গ্রেডল ফাইলের সাথে সিঙ্ক প্রজেক্ট নির্বাচন করুন।

7. Firebase দিয়ে অ্যাপটি চালান

এখন আপনি আপনার JSON ফাইলের সাথে google-services প্লাগইন কনফিগার করেছেন, আপনি Firebase এর সাথে অ্যাপটি চালানোর জন্য প্রস্তুত। আপনার অ্যান্ড্রয়েড ডিভাইস সংযোগ করুন, এবং রান ক্লিক করুন ( execute.png অ্যান্ড্রয়েড স্টুডিও টুলবারে।

অ্যাপটি আপনার ডিভাইসে চালু করা উচিত। এই মুহুর্তে, আপনার অ্যাপটি এখনও সফলভাবে তৈরি করা উচিত।

8. একটি অনুভূতি বিশ্লেষণ মডেল প্রশিক্ষণ

একটি প্রদত্ত পাঠ্যের অনুভূতির পূর্বাভাস দেওয়ার জন্য একটি পাঠ্য শ্রেণিবিন্যাসের মডেলকে প্রশিক্ষণ দিতে আমরা TensorFlow Lite Model Maker ব্যবহার করব।

এই ধাপটি একটি পাইথন নোটবুক হিসেবে উপস্থাপন করা হয়েছে যা আপনি Google Colab-এ খুলতে পারেন। আপনি একবারে সমস্ত নোটবুক চালানোর জন্য রানটাইম > সমস্ত চালান বেছে নিতে পারেন।

Colab-এ খুলুন

এই ধাপটি শেষ করার পরে, আপনার কাছে একটি TensorFlow Lite সেন্টিমেন্ট বিশ্লেষণ মডেল থাকবে যা একটি মোবাইল অ্যাপে স্থাপনের জন্য প্রস্তুত।

9. Firebase ML-এ একটি মডেল স্থাপন করুন

Firebase ML-এ একটি মডেল স্থাপন করা দুটি প্রধান কারণের জন্য দরকারী:

  1. আমরা অ্যাপের ইন্সটল সাইজ ছোট রাখতে পারি এবং প্রয়োজন হলে শুধুমাত্র মডেলটি ডাউনলোড করতে পারি
  2. মডেলটি নিয়মিত আপডেট করা যেতে পারে এবং সম্পূর্ণ অ্যাপের থেকে আলাদা রিলিজ চক্রের সাথে

ফায়ারবেস অ্যাডমিন SDK ব্যবহার করে মডেলটি কনসোলের মাধ্যমে বা প্রোগ্রাম্যাটিকভাবে স্থাপন করা যেতে পারে। এই ধাপে আমরা কনসোলের মাধ্যমে স্থাপন করব।

প্রথমে, ফায়ারবেস কনসোল খুলুন এবং বাম নেভিগেশন প্যানেলে মেশিন লার্নিং-এ ক্লিক করুন। আপনি যদি এটি প্রথমবার খুলছেন তবে 'শুরু করুন' এ ক্লিক করুন। তারপর "কাস্টম" এ নেভিগেট করুন এবং "মডেল যোগ করুন" বোতামে ক্লিক করুন।

প্রম্পট করা হলে, sentiment_analysis মডেলটির নাম দিন এবং আগের ধাপে Colab থেকে ডাউনলোড করা ফাইলটি আপলোড করুন।

3c3c50e6ef12b3b.png

10. Firebase ML থেকে মডেল ডাউনলোড করুন

আপনার অ্যাপে Firebase থেকে রিমোট মডেল কখন ডাউনলোড করতে হবে তা বেছে নেওয়া কঠিন হতে পারে কারণ TFLite মডেলগুলি তুলনামূলকভাবে বড় হতে পারে। আদর্শভাবে আমরা অ্যাপটি চালু হওয়ার সাথে সাথে মডেলটি লোড করা এড়াতে চাই, যেহেতু আমাদের মডেলটি শুধুমাত্র একটি বৈশিষ্ট্যের জন্য ব্যবহার করা হয় এবং ব্যবহারকারী কখনই সেই বৈশিষ্ট্যটি ব্যবহার না করে, তাহলে আমরা বিনা কারণেই উল্লেখযোগ্য পরিমাণ ডেটা ডাউনলোড করব। আমরা ডাউনলোডের বিকল্পগুলিও সেট করতে পারি যেমন wifi এর সাথে সংযুক্ত থাকাকালীন শুধুমাত্র মডেলগুলি আনা। আপনি যদি নিশ্চিত করতে চান যে মডেলটি এমনকি নেটওয়ার্ক সংযোগ ছাড়াই উপলব্ধ, তবে এটিকে ব্যাকআপ হিসাবে অ্যাপ ছাড়াই বান্ডিল করাও গুরুত্বপূর্ণ৷

সরলতার জন্য, আমরা ডিফল্ট বান্ডিল করা মডেলটি সরিয়ে দেব এবং অ্যাপটি প্রথমবার শুরু হলে সর্বদা Firebase থেকে একটি মডেল ডাউনলোড করব। এইভাবে সেন্টিমেন্ট বিশ্লেষণ চালানোর সময় আপনি নিশ্চিত হতে পারেন যে ফায়ারবেস থেকে প্রদত্ত মডেলের সাথে অনুমান চলছে।

app/build.gradle.kts ফাইলে, Firebase মেশিন লার্নিং নির্ভরতা যোগ করুন।

app/build.gradle.kts

এই মন্তব্য খুঁজুন:

// TODO 1: Add Firebase ML dependency

তারপর যোগ:

implementation(platform("com.google.firebase:firebase-bom:32.0.0"))
implementation("com.google.firebase:firebase-ml-modeldownloader:24.1.2")

অ্যান্ড্রয়েড স্টুডিও আপনার প্রোজেক্ট সিঙ্ক করতে বললে, সিঙ্ক নাও বেছে নিন।

তারপর ফায়ারবেস থেকে মডেলটি ডাউনলোড করার জন্য কিছু কোড যোগ করা যাক।

MainActivity.java

এই মন্তব্য খুঁজুন:

// TODO 2: Implement a method to download TFLite model from Firebase

তারপর যোগ:

  /** Download model from Firebase ML. */
  private synchronized void downloadModel(String modelName) {
      CustomModelDownloadConditions conditions = new CustomModelDownloadConditions.Builder()
            .requireWifi()
            .build();
      FirebaseModelDownloader.getInstance()
              .getModel("sentiment_analysis", DownloadType.LOCAL_MODEL, conditions)
              .addOnSuccessListener(model -> {
                  try {
                      // TODO 6: Initialize a TextClassifier with the downloaded model

                      predictButton.setEnabled(true);
                  } catch (IOException e) {
                      Log.e(TAG, "Failed to initialize the model. ", e);
                      Toast.makeText(
                              MainActivity.this,
                              "Model initialization failed.",
                              Toast.LENGTH_LONG)
                              .show();
                      predictButton.setEnabled(false);
                  }
              })
              .addOnFailureListener(e -> {
                      Log.e(TAG, "Failed to download the model. ", e);
                      Toast.makeText(
                              MainActivity.this,
                              "Model download failed, please check your connection.",
                              Toast.LENGTH_LONG)
                              .show();

                      }
              );

}

এরপর, কার্যকলাপের onCreate পদ্ধতিতে downloadModel পদ্ধতিতে কল করুন।

MainActivity.java

এই মন্তব্য খুঁজুন:

// TODO 3: Call the method to download TFLite model

তারপর যোগ:

downloadModel("sentiment_analysis");

11. আপনার অ্যাপে মডেলটি সংহত করুন

টেনসরফ্লো লাইট টাস্ক লাইব্রেরি আপনাকে কোডের কয়েকটি লাইন দিয়ে আপনার অ্যাপে টেনসরফ্লো লাইট মডেলগুলিকে একীভূত করতে সাহায্য করে। আমরা Firebase থেকে ডাউনলোড করা TensorFlow Lite মডেল ব্যবহার করে একটি NLClassifier ইনস্ট্যান্স শুরু করব। তারপরে আমরা অ্যাপ ব্যবহারকারীদের কাছ থেকে টেক্সট ইনপুট শ্রেণীবদ্ধ করতে এবং UI-তে ফলাফল দেখাতে এটি ব্যবহার করব।

নির্ভরতা যোগ করুন

অ্যাপের গ্রেডল ফাইলে যান এবং অ্যাপের নির্ভরতায় টেনসরফ্লো লাইট টাস্ক লাইব্রেরি (টেক্সট) যোগ করুন।

app/build.gradle

এই মন্তব্য খুঁজুন:

// TODO 4: Add TFLite Task API (Text) dependency

তারপর যোগ:

implementation("org.tensorflow:tensorflow-lite-task-text:0.3.0")

অ্যান্ড্রয়েড স্টুডিও আপনার প্রোজেক্ট সিঙ্ক করতে বললে, সিঙ্ক নাও বেছে নিন।

একটি টেক্সট ক্লাসিফায়ার শুরু করুন

তারপর আমরা টাস্ক লাইব্রেরির NLClassifier ব্যবহার করে Firebase থেকে ডাউনলোড করা সেন্টিমেন্ট অ্যানালাইসিস মডেলটি লোড করব।

MainActivity.java

আসুন একটি NLCclassifier ইনস্ট্যান্স ভেরিয়েবল ঘোষণা করি। এই মন্তব্য খুঁজুন:

// TODO 5: Define a NLClassifier variable

তারপর যোগ:

private NLClassifier textClassifier;

Firebase থেকে ডাউনলোড করা সেন্টিমেন্ট অ্যানালাইসিস মডেলের সাথে textClassifier ভেরিয়েবল শুরু করুন। এই মন্তব্য খুঁজুন:

// TODO 6: Initialize a TextClassifier with the downloaded model

তারপর যোগ:

textClassifier = NLClassifier.createFromFile(model.getFile());

পাঠ্য শ্রেণিবদ্ধ করুন

একবার textClassifier ইন্সট্যান্স সেট আপ হয়ে গেলে, আপনি একটি একক পদ্ধতি কলের মাধ্যমে সেন্টিমেন্ট বিশ্লেষণ চালাতে পারেন।

MainActivity.java

এই মন্তব্য খুঁজুন:

// TODO 7: Run sentiment analysis on the input text

তারপর যোগ:

List<Category> results = textClassifier.classify(text);

পোস্ট-প্রসেসিং বাস্তবায়ন করুন

অবশেষে, আমরা মডেলের আউটপুটকে স্ক্রিনে দেখানোর জন্য একটি বর্ণনামূলক পাঠ্যে রূপান্তর করব।

MainActivity.java

এই মন্তব্য খুঁজুন:

// TODO 8: Convert the result to a human-readable text

ডামি ফলাফল পাঠ্য তৈরি করে এমন কোডটি সরান:

String textToShow = "Dummy classification result.\n";

তারপর যোগ:

String textToShow = "Input: " + text + "\nOutput:\n";
for (int i = 0; i < results.size(); i++) {
  Category result = results.get(i);
  textToShow += String.format("    %s: %s\n", result.getLabel(),
                              result.getScore());
}
textToShow += "---------\n";

12. চূড়ান্ত অ্যাপটি চালান

আপনি অনুভূতি বিশ্লেষণ মডেলটি অ্যাপটিতে সংহত করেছেন, তাই আসুন এটি পরীক্ষা করি। আপনার অ্যান্ড্রয়েড ডিভাইস সংযোগ করুন, এবং রান ক্লিক করুন ( execute.png অ্যান্ড্রয়েড স্টুডিও টুলবারে।

অ্যাপটি আপনার প্রবেশ করা মুভি পর্যালোচনার অনুভূতি সঠিকভাবে অনুমান করতে সক্ষম হওয়া উচিত।

img/text-classification-result.png

13. আরও ফায়ারবেস বৈশিষ্ট্য সহ অ্যাপটিকে শক্তিশালী করুন৷

আপনার TFLite মডেলগুলি হোস্ট করার পাশাপাশি, Firebase আপনার মেশিন লার্নিং ব্যবহারের কেসগুলিকে শক্তিশালী করতে আরও বেশ কিছু বৈশিষ্ট্য সরবরাহ করে:

  • ব্যবহারকারীদের ডিভাইসে চলমান আপনার মডেল অনুমান গতি পরিমাপ করতে Firebase পারফরম্যান্স মনিটরিং।
  • ব্যবহারকারীর প্রতিক্রিয়া পরিমাপ করে আপনার মডেল উৎপাদনে কতটা ভালো পারফর্ম করে তা পরিমাপ করতে Firebase Analytics।
  • আপনার মডেলের একাধিক সংস্করণ পরীক্ষা করার জন্য Firebase A/B পরীক্ষা
  • আপনার কি মনে আছে আমরা আগে আমাদের TFLite মডেলের দুটি সংস্করণ প্রশিক্ষিত করেছি? কোন সংস্করণ উৎপাদনে ভালো পারফর্ম করে তা খুঁজে বের করার জন্য A/B পরীক্ষা একটি ভালো উপায়!

আপনার অ্যাপে এই বৈশিষ্ট্যগুলি কীভাবে ব্যবহার করবেন সে সম্পর্কে আরও জানতে, নীচের কোডল্যাবগুলি দেখুন:

14. অভিনন্দন!

এই কোডল্যাবে, আপনি শিখেছেন কিভাবে একটি অনুভূতি বিশ্লেষণ TFLite মডেলকে প্রশিক্ষণ দিতে হয় এবং Firebase ব্যবহার করে আপনার মোবাইল অ্যাপে এটি স্থাপন করতে হয়। TFLite এবং Firebase সম্পর্কে আরও জানতে, অন্যান্য TFLite নমুনা এবং Firebase শুরু করার নির্দেশিকাগুলি দেখুন।

আমরা কভার করেছি কি

  • টেনসরফ্লো লাইট
  • ফায়ারবেস এমএল

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

  • ফায়ারবেস পারফরম্যান্স মনিটরিংয়ের মাধ্যমে আপনার মডেলের অনুমানের গতি পরিমাপ করুন।
  • Firebase ML মডেল ম্যানেজমেন্ট API-এর মাধ্যমে Colab থেকে সরাসরি Firebase-এ মডেলটি স্থাপন করুন।
  • ভবিষ্যদ্বাণী ফলাফলের উপর ব্যবহারকারীদের প্রতিক্রিয়া জানাতে এবং ব্যবহারকারীর প্রতিক্রিয়া ট্র্যাক করতে Firebase Analytics ব্যবহার করার অনুমতি দেওয়ার জন্য একটি প্রক্রিয়া যোগ করুন।
  • A/B ফায়ারবেস A/B পরীক্ষার মাধ্যমে গড় ওয়ার্ড ভেক্টর মডেল এবং MobileBERT মডেল পরীক্ষা করে।

আরও জানুন

একটি প্রশ্ন আছে?

রিপোর্ট সমস্যা