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

সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।

টাস্ক লাইব্রেরি BertNLClassifier এপিআই NLClassifier অনুরূপ যা ইনপুট টেক্সটকে বিভিন্ন বিভাগে শ্রেণীবদ্ধ করে, ব্যতীত এই APIটি বিশেষভাবে বার্ট সম্পর্কিত মডেলগুলির জন্য তৈরি করা হয়েছে যার জন্য 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 (NNAPI is included)
    implementation 'org.tensorflow:tensorflow-lite-task-text:0.3.0'
}

ধাপ 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.2.0'
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);

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

উদাহরণ ফলাফল

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

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

আউটপুট:

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 আউটপুট টেনসর। যদি একটি লেবেল ফাইল সংযুক্ত থাকে, তাহলে ফাইলটি একটি প্লেইন টেক্সট ফাইল হওয়া উচিত যার প্রতি লাইনে একটি লেবেল থাকবে এবং লেবেলের সংখ্যাটি মডেল আউটপুট হিসাবে বিভাগের সংখ্যার সাথে মেলে।