تشبه واجهة برمجة تطبيقات BertNLClassifier
لمكتبة المهام إلى حد كبير NLClassifier
الذي يصنف نص الإدخال إلى فئات مختلفة، فيما عدا أن واجهة برمجة التطبيقات هذه مصممة خصيصًا للنماذج المرتبطة بـ Bert والتي تتطلب رموزًا مميزة لـ Wordpiece وSentencepiece خارج نموذج TFLite.
الميزات الرئيسية لواجهة برمجة تطبيقات BertNLClassifier
يأخذ سلسلة واحدة كمدخل، ويقوم بالتصنيف باستخدام السلسلة والمخرجات
تنفيذ رموز مميزة لقطع الكلمات أو أجزاء الجملة خارج الرسم البياني على النص المُدخل.
نماذج 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 (NNAPI is included)
implementation 'org.tensorflow:tensorflow-lite-task-text:0.4.4'
}
الخطوة 2: تشغيل الاستدلال باستخدام واجهة برمجة التطبيقات
// 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: تشغيل الاستدلال باستخدام واجهة برمجة التطبيقات
// 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
.
نتائج المثال
فيما يلي مثال لنتائج تصنيف مراجعات الأفلام باستخدام نموذج 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، مع ملف تسمية مرفق اختياريًا. إذا تم إرفاق ملف تسمية، فيجب أن يكون الملف ملفًا نصيًا عاديًا مع تسمية واحدة لكل سطر ويجب أن يتطابق عدد التسميات مع عدد الفئات كمخرجات النموذج.