Task Library BertNLClassifier
API بسیار شبیه به NLClassifier
است که متن ورودی را در دستههای مختلف طبقهبندی میکند، با این تفاوت که این API بهویژه برای مدلهای مرتبط با Bert که نیاز به توکنسازی Wordpiece و Sentencepiece خارج از مدل TFLite دارند، طراحی شده است.
ویژگی های کلیدی BertNLClassifier API
یک رشته را به عنوان ورودی می گیرد، طبقه بندی را با رشته و خروجی انجام می دهد
در متن ورودی، توکنسازیهای متنی یا جملهای خارج از نمودار را انجام میدهد.
مدل های BertNLClassifier پشتیبانی می شود
مدل های زیر با BertNLClassifier
API سازگار هستند.
مدلهای برت توسط TensorFlow Lite Model Maker برای طبقهبندی متن ایجاد شده است.
مدل های سفارشی که الزامات سازگاری مدل را برآورده می کنند.
استنتاج را در جاوا اجرا کنید
مرحله 1: وابستگی Gradle و تنظیمات دیگر را وارد کنید
فایل مدل .tflite
را در فهرست داراییهای ماژول Android که در آن مدل اجرا میشود، کپی کنید. مشخص کنید که فایل نباید فشرده شود و کتابخانه TensorFlow Lite را به فایل build.gradle
ماژول اضافه کنید:
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: CocoaPods را وارد کنید
غلاف TensorFlowLiteTaskText را در Podfile اضافه کنید
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 را نصب کنید
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
به کد منبع مراجعه کنید.
نتایج نمونه
در اینجا نمونه ای از نتایج طبقه بندی بررسی فیلم ها با استفاده از مدل MobileBert از Model Maker آورده شده است.
ورودی: "این یک سفر جذاب و اغلب تاثیرگذار است"
خروجی:
category[0]: 'negative' : '0.00006'
category[1]: 'positive' : '0.99994'
ابزار ساده CLI برای BertNLClassifier را با مدل و داده های آزمایشی خود امتحان کنید.
الزامات سازگاری مدل
BetNLClassifier
API انتظار یک مدل TFLite با فراداده مدل TFLite اجباری را دارد.
فراداده باید شرایط زیر را برآورده کند:
input_process_units برای Wordpiece/Sentencepiece Tokenizer
3 تانسور ورودی با نامهای "ids"، "mask" و "segment_ids" برای خروجی توکنایزر
1 تانسور خروجی از نوع float32، با یک فایل برچسب به صورت اختیاری. اگر یک فایل برچسب ضمیمه شده است، فایل باید یک فایل متنی ساده با یک برچسب در هر خط باشد و تعداد برچسب ها باید با تعداد دسته ها به عنوان خروجی مدل مطابقت داشته باشد.