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

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

ac7309bdf044dae8.png

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

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

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

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

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

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

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

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

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

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

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

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

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

কোডটি ডাউনলোড করুন

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

একটি জিপ সংরক্ষণাগার ডাউনলোড করুন যাতে এই কোডল্যাবের সোর্স কোড রয়েছে। আপনার স্থানীয় মেশিনে সংরক্ষণাগার বের করুন.

জিপ ডাউনলোড করুন

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

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

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

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

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

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

2fb4e69fafb2e3ed.png

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Colab-এ খুলুন

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

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

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

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

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

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

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

3c3c50e6ef12b3b.png

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

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

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

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

app/build.gradle

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

// TODO 1: Add Firebase ML dependency

পরে যুক্ত:

implementation 'com.google.firebase:firebase-ml-model-interpreter:22.0.3'

যখন অ্যান্ড্রয়েড স্টুডিও জিজ্ঞেস করলেন আপনার প্রকল্পের সিঙ্ক করার জন্য, সিঙ্ক এখন চয়ন।

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

MainActivity.java

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

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

পরে যুক্ত:

/** Download model from Firebase ML. */
private synchronized void downloadModel(String modelName) {
  final FirebaseCustomRemoteModel remoteModel =
      new FirebaseCustomRemoteModel
          .Builder(modelName)
          .build();
  FirebaseModelDownloadConditions conditions =
      new FirebaseModelDownloadConditions.Builder()
          .requireWifi()
          .build();
  final FirebaseModelManager firebaseModelManager =
      FirebaseModelManager.getInstance();
  firebaseModelManager
      .download(remoteModel, conditions)
      .continueWithTask(task ->
          firebaseModelManager.getLatestModelFile(remoteModel)
      )
      .continueWith(executorService, (Continuation<File, Void>) task -> {
        // Initialize a text classifier instance with the model
        File modelFile = task.getResult();

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

        // Enable predict button
        predictButton.setEnabled(true);
        return null;
      })
      .addOnFailureListener(e -> {
        Log.e(TAG, "Failed to download and initialize the model. ", e);
        Toast.makeText(
            MainActivity.this,
            "Model download failed, please check your connection.",
            Toast.LENGTH_LONG)
            .show();
        predictButton.setEnabled(false);
      });
}

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

MainActivity.java

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

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

পরে যুক্ত:

downloadModel("sentiment_analysis");

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

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

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

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

app/build.gradle

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

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

পরে যুক্ত:

implementation 'org.tensorflow:tensorflow-lite-task-text:0.0.0-nightly'

যখন অ্যান্ড্রয়েড স্টুডিও জিজ্ঞেস করলেন আপনার প্রকল্পের সিঙ্ক করার জন্য, সিঙ্ক এখন চয়ন।

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

তারপর আমরা অনুভূতির বিশ্লেষণ মডেল টাস্ক লাইব্রেরির ব্যবহার Firebase থেকে ডাউনলোড লোড করা হবে NLClassifier

MainActivity.java

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

// TODO 5: Define a NLClassifier variable

পরে যুক্ত:

private NLClassifier textClassifier;

আরম্ভ textClassifier অনুভূতির বিশ্লেষণ মডেল Firebase থেকে ডাউনলোড সঙ্গে পরিবর্তনশীল। এই মন্তব্য খুঁজুন:

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

পরে যুক্ত:

textClassifier = NLClassifier.createFromFile(modelFile);

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

একবার 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. চূড়ান্ত অ্যাপটি চালান

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

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

ac7309bdf044dae8.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 অ্যানালিটিক্স ব্যবহার করার অনুমতি দেওয়ার জন্য একটি প্রক্রিয়া যোগ করুন।
  • A/B ফায়ারবেস A/B পরীক্ষার মাধ্যমে গড় ওয়ার্ড ভেক্টর মডেল এবং MobileBERT মডেল পরীক্ষা করে।

আরও জানুন

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

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