BERT ন্যাচারাল ল্যাঙ্গুয়েজ ক্লাসিফায়ারকে ইন্টিগ্রেট করুন

টাস্ক লাইব্রেরি BertNLClassifier এপিআইটি NLClassifier অনুরূপ যা ইনপুট টেক্সটকে বিভিন্ন বিভাগে শ্রেণীবদ্ধ করে, এই এপিআইটি বিশেষভাবে বার্ট সম্পর্কিত মডেলগুলির জন্য তৈরি করা হয়েছে যার জন্য TFLite মডেলের বাইরে Wordpiece এবং Sentencepiece টোকেনাইজেশন প্রয়োজন।

BertNLCclassifier API-এর মূল বৈশিষ্ট্য

  • ইনপুট হিসাবে একটি একক স্ট্রিং নেয়, স্ট্রিং এবং আউটপুটগুলির সাথে শ্রেণীবিভাগ সম্পাদন করে শ্রেণীবিন্যাস ফলাফল হিসাবে জোড়া.

  • ইনপুট টেক্সটে গ্রাফের বাইরের ওয়ার্ডপিস বা সেন্টেন্সপিস টোকেনাইজেশন সম্পাদন করে।

সমর্থিত BertNLC ক্লাসিফায়ার মডেল

নিম্নলিখিত মডেলগুলি BertNLClassifier API-এর সাথে সামঞ্জস্যপূর্ণ।

জাভাতে অনুমান চালান

ধাপ 1: Gradle নির্ভরতা এবং অন্যান্য সেটিংস আমদানি করুন

.tflite মডেল ফাইলটি Android মডিউলের সম্পদ ডিরেক্টরিতে অনুলিপি করুন যেখানে মডেলটি চালানো হবে৷ নির্দিষ্ট করুন যে ফাইলটি সংকুচিত করা উচিত নয়, এবং মডিউলের build.gradle ফাইলে TensorFlow Lite লাইব্রেরি যোগ করুন:

android {
    // Other settings

    // Specify tflite file should not be compressed for the app apk
    aaptOptions {
        noCompress "tflite"
    }

}

dependencies {
    // Other dependencies

    // Import the Task Text Library dependency
    implementation 'org.tensorflow:tensorflow-lite-task-text:0.4.4'
}

ধাপ 2: API ব্যবহার করে অনুমান চালান

// Initialization
BertNLClassifierOptions options =
    BertNLClassifierOptions.builder()
        .setBaseOptions(BaseOptions.builder().setNumThreads(4).build())
        .build();
BertNLClassifier classifier =
    BertNLClassifier.createFromFileAndOptions(context, modelFile, options);

// Run inference
List<Category> results = classifier.classify(input);

আরো বিস্তারিত জানার জন্য সোর্স কোড দেখুন.

সুইফটে অনুমান চালান

ধাপ 1: কোকোপড আমদানি করুন

Podfile এ TensorFlowLiteTaskText পড যোগ করুন

target 'MySwiftAppWithTaskAPI' do
  use_frameworks!
  pod 'TensorFlowLiteTaskText', '~> 0.4.4'
end

ধাপ 2: API ব্যবহার করে অনুমান চালান

// Initialization
let bertNLClassifier = TFLBertNLClassifier.bertNLClassifier(
      modelPath: bertModelPath)

// Run inference
let categories = bertNLClassifier.classify(text: input)

আরো বিস্তারিত জানার জন্য সোর্স কোড দেখুন.

C++ এ অনুমান চালান

// Initialization
BertNLClassifierOptions options;
options.mutable_base_options()->mutable_model_file()->set_file_name(model_path);
std::unique_ptr<BertNLClassifier> classifier = BertNLClassifier::CreateFromOptions(options).value();

// Run inference with your input, `input_text`.
std::vector<core::Category> categories = classifier->Classify(input_text);

আরো বিস্তারিত জানার জন্য সোর্স কোড দেখুন.

পাইথনে অনুমান চালান

ধাপ 1: পিপ প্যাকেজ ইনস্টল করুন

pip install tflite-support

ধাপ 2: মডেল ব্যবহার

# Imports
from tflite_support.task import text

# Initialization
classifier = text.BertNLClassifier.create_from_file(model_path)

# Run inference
text_classification_result = classifier.classify(text)

BertNLClassifier কনফিগার করার জন্য আরও বিকল্পের জন্য সোর্স কোড দেখুন।

উদাহরণ ফলাফল

মডেল মেকার থেকে মোবাইলবার্ট মডেল ব্যবহার করে মুভি পর্যালোচনার শ্রেণীবিভাগ ফলাফলের একটি উদাহরণ এখানে দেওয়া হল।

ইনপুট: "এটি একটি কমনীয় এবং প্রায়ই ভ্রমণকে প্রভাবিত করে"

আউটপুট:

category[0]: 'negative' : '0.00006'
category[1]: 'positive' : '0.99994'

আপনার নিজস্ব মডেল এবং পরীক্ষার ডেটা সহ BertNLCclassifier-এর জন্য সাধারণ CLI ডেমো টুল ব্যবহার করে দেখুন।

মডেল সামঞ্জস্যের প্রয়োজনীয়তা

BetNLClassifier API বাধ্যতামূলক TFLite মডেল মেটাডেটা সহ একটি TFLite মডেল আশা করে।

মেটাডেটা নিম্নলিখিত প্রয়োজনীয়তা পূরণ করা উচিত:

  • Wordpiece/Sentencepiece Tokenizer-এর জন্য input_process_units

  • টোকেনাইজারের আউটপুটের জন্য "আইডি", "মাস্ক" এবং "সেগমেন্ট_আইডিস" নামের 3টি ইনপুট টেনসর

  • একটি ঐচ্ছিকভাবে সংযুক্ত লেবেল ফাইল সহ float32 টাইপের 1 আউটপুট টেনসর। যদি একটি লেবেল ফাইল সংযুক্ত থাকে, তাহলে ফাইলটি প্রতি লাইনে একটি লেবেল সহ একটি প্লেইন টেক্সট ফাইল হওয়া উচিত এবং লেবেলের সংখ্যাটি মডেল আউটপুট হিসাবে বিভাগের সংখ্যার সাথে মেলে।