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

1. ওভারভিউ

classification_result_screen.png

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

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

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

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

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

  • TF Lite মডেল মেকারের সাথে একটি TF Lite সেন্টিমেন্ট বিশ্লেষণ মডেলকে প্রশিক্ষণ দিন
  • Firebase ML-এ TF Lite মডেল স্থাপন করুন এবং আপনার অ্যাপ থেকে সেগুলি অ্যাক্সেস করুন
  • Firebase অ্যানালিটিক্সের মাধ্যমে মডেলের যথার্থতা পরিমাপ করতে ব্যবহারকারীর প্রতিক্রিয়া ট্র্যাক করুন
  • ফায়ারবেস পারফরম্যান্স মনিটরিংয়ের মাধ্যমে প্রোফাইল মডেল পারফরম্যান্স
  • রিমোট কনফিগারেশনের মাধ্যমে একাধিক স্থাপন করা মডেলের মধ্যে কোনটি লোড করা হয়েছে তা নির্বাচন করুন
  • Firebase A/B পরীক্ষার মাধ্যমে বিভিন্ন মডেলের সাথে পরীক্ষা করুন

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

  • Xcode 11 (বা উচ্চতর)
  • CocoaPods 1.9.1 (বা উচ্চতর)

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

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

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

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

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

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

  1. ফায়ারবেস কনসোলে যান।
  2. নতুন প্রজেক্ট তৈরি করুন নির্বাচন করুন এবং আপনার প্রকল্পের নাম দিন "Firebase ML iOS Codelab"।

3. নমুনা প্রকল্প পান

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

নমুনা প্রকল্প ক্লোন করে শুরু করুন এবং প্রকল্প ডিরেক্টরিতে pod update চালান:

git clone https://github.com/FirebaseExtended/codelab-textclassification-ios.git
cd codelab-textclassification-ios
pod install --repo-update

আপনার যদি গিট ইনস্টল না থাকে তবে আপনি নমুনা প্রকল্পটি এর GitHub পৃষ্ঠা থেকে বা এই লিঙ্কে ক্লিক করে ডাউনলোড করতে পারেন। একবার আপনি প্রকল্পটি ডাউনলোড করার পরে, এটিকে Xcode-এ চালান এবং এটি কীভাবে কাজ করে তার অনুভূতি পেতে পাঠ্য শ্রেণীবিভাগের সাথে খেলুন।

Firebase সেট আপ করুন

একটি নতুন ফায়ারবেস প্রকল্প তৈরি করতে ডকুমেন্টেশন অনুসরণ করুন। একবার আপনি আপনার প্রকল্পটি পেয়ে গেলে, Firebase কনসোল থেকে আপনার প্রকল্পের GoogleService-Info.plist ফাইলটি ডাউনলোড করুন এবং এটিকে Xcode প্রকল্পের মূলে টেনে আনুন৷

9efb62a92f27e939.png

আপনার Podfile এ Firebase যোগ করুন এবং পড ইনস্টল চালান।

pod 'FirebaseMLModelDownloader', '9.3.0-beta'

আপনার AppDelegate এর didFinishLaunchingWithOptions পদ্ধতিতে, ফাইলের শীর্ষে Firebase আমদানি করুন

import FirebaseCore

এবং Firebase কনফিগার করতে একটি কল যোগ করুন।

FirebaseApp.configure()

অ্যাপটি সঠিকভাবে কনফিগার করা হয়েছে এবং লঞ্চের সময় ক্র্যাশ না হয় তা নিশ্চিত করতে প্রকল্পটি আবার চালান।

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

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

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

Colab-এ খুলুন

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

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

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

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

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

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

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

3c3c50e6ef12b3b.png

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

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

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

ModelLoader.swift এর শীর্ষে, Firebase মডিউল আমদানি করুন।

import FirebaseCore
import FirebaseMLModelDownloader

তারপর নিম্নলিখিত পদ্ধতিগুলি বাস্তবায়ন করুন।

static func downloadModel(named name: String,
                          completion: @escaping (CustomModel?, DownloadError?) -> Void) {
  guard FirebaseApp.app() != nil else {
    completion(nil, .firebaseNotInitialized)
    return
  }
  guard success == nil && failure == nil else {
    completion(nil, .downloadInProgress)
    return
  }
  let conditions = ModelDownloadConditions(allowsCellularAccess: false)
  ModelDownloader.modelDownloader().getModel(name: name, downloadType: .localModelUpdateInBackground, conditions: conditions) { result in
          switch (result) {
          case .success(let customModel):
                  // Download complete.
                  // The CustomModel object contains the local path of the model file,
                  // which you can use to instantiate a TensorFlow Lite classifier.
                  return completion(customModel, nil)
          case .failure(let error):
              // Download was unsuccessful. Notify error message.
            completion(nil, .downloadFailed(underlyingError: error))
          }
  }
}

ViewController.swift এর viewDidLoad এ, আমাদের নতুন মডেল ডাউনলোড পদ্ধতি দিয়ে loadModel() এ কলটি প্রতিস্থাপন করুন।

// Download the model from Firebase
print("Fetching model...")
ModelLoader.downloadModel(named: "sentiment_analysis") { (customModel, error) in
  guard let customModel = customModel else {
    if let error = error {
      print(error)
    }
    return
  }

  print("Model download complete")

  // TODO: Initialize an NLClassifier from the downloaded model
}

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

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

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

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

অ্যাপের পডফাইলে যান এবং অ্যাপের নির্ভরতাগুলিতে টেনসরফ্লো লাইট টাস্ক লাইব্রেরি (টেক্সট) যোগ করুন। নিশ্চিত করুন যে আপনি target 'TextClassification' ঘোষণার অধীনে নির্ভরতা যোগ করেছেন।

pod 'TensorFlowLiteTaskText', '~> 0.2.0'

নতুন নির্ভরতা ইনস্টল করতে pod install চালান।

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

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

ViewController.swift

আসুন একটি TFLNLCক্ল্যাসিফায়ার ইনস্ট্যান্স ভেরিয়েবল ঘোষণা করি। ফাইলের শীর্ষে, নতুন নির্ভরতা আমদানি করুন:

import TensorFlowLiteTaskText

শেষ ধাপে আমরা যে পদ্ধতিটি সংশোধন করেছি তার উপরে এই মন্তব্যটি খুঁজুন:

// TODO: Add a TFLNLClassifier property.

নিম্নলিখিত কোড দিয়ে TODO প্রতিস্থাপন করুন:

private var classifier: TFLNLClassifier?

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

// TODO: Initialize an NLClassifier from the downloaded model

নিম্নলিখিত কোড দিয়ে TODO প্রতিস্থাপন করুন:

let options = TFLNLClassifierOptions()
self.classifier = TFLNLClassifier.nlClassifier(modelPath: customModel.path, options: options)

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

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

ViewController.swift

classify(text:) পদ্ধতিতে, TODO মন্তব্যটি খুঁজুন:

// TODO: Run sentiment analysis on the input text

নিম্নলিখিত কোড দিয়ে মন্তব্য প্রতিস্থাপন করুন:

guard let classifier = self.classifier else { return }

// Classify the text
let classifierResults = classifier.classify(text: text)

// Append the results to the list of results
let result = ClassificationResult(text: text, results: classifierResults)
results.append(result)

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

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

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

classification_result_screen.png

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

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

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

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

10. অভিনন্দন!

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

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

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

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

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

আরও জানুন

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

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