واجهة برمجة تطبيقات BertNLClassifier
لمكتبة المهام تشبه إلى حد بعيد تصنيف NLClassifier
الذي يصنف نص الإدخال إلى فئات مختلفة ، باستثناء أن واجهة برمجة التطبيقات هذه مصممة خصيصًا للنماذج ذات الصلة بـ Bert التي تتطلب رموز Wordpiece و Sentencepiece خارج نموذج TFLite.
الملامح الرئيسية لواجهة برمجة تطبيقات BertNLClassifier
يأخذ سلسلة واحدة كمدخلات ، ويقوم بالتصنيف مع السلسلة والمخرجات
ينفذ رموزًا مميّزة لقطعة الكلمات أو قطعة الجملة خارج الرسم البياني على نص الإدخال.
نماذج BertNLClassifier المدعومة
النماذج التالية متوافقة مع BertNLClassifier
API.
نماذج Bert التي تم إنشاؤها بواسطة TensorFlow Lite Model Maker لتصنيف النص .
النماذج المخصصة التي تلبي متطلبات توافق النموذج .
تشغيل الاستدلال في Java
الخطوة 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 (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);
انظر شفرة المصدر لمزيد من التفاصيل.
تشغيل الاستدلال في Swift
الخطوة 1: استيراد CocoaPods
أضف حجرة TensorFlowLiteTaskText في Podfile
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_file);
std::unique_ptr<BertNLClassifier> classifier = BertNLClassifier::CreateFromOptions(options).value();
// Run inference
std::vector<core::Category> categories = classifier->Classify(kInput);
انظر شفرة المصدر لمزيد من التفاصيل.
نتائج المثال
فيما يلي مثال على نتائج تصنيف مراجعات الأفلام باستخدام نموذج MobileBert من Model Maker.
المدخلات: "إنها رحلة ساحرة وغالبًا ما تكون مؤثرة"
انتاج:
category[0]: 'negative' : '0.00006'
category[1]: 'positive' : '0.99994'
جرب أداة CLI التجريبية البسيطة لتصنيف BertNLC مع نموذجك وبيانات الاختبار.
متطلبات توافق النموذج
تتوقع BetNLClassifier
API نموذج TFLite مع بيانات تعريف إلزامية لنموذج TFLite .
يجب أن تستوفي البيانات الوصفية المتطلبات التالية:
input_process_units لـ Wordpiece / Sentencepiece Tokenizer
3 موترلات إدخال بأسماء "معرفات" و "قناع" و "معرفات مقاطع" لإخراج الرمز المميز
1 موتر الإخراج من النوع float32 ، مع ملف تسمية مرفق اختياريًا. إذا تم إرفاق ملف تسمية ، يجب أن يكون الملف عبارة عن ملف نصي عادي مع تسمية واحدة لكل سطر ويجب أن يتطابق عدد الملصقات مع عدد الفئات مثل مخرجات النموذج.