ה-API של ספריית המשימות BertNLClassifier
דומה מאוד ל- NLClassifier
שמסווג טקסט קלט לקטגוריות שונות, פרט לכך שה-API הזה מותאם במיוחד עבור מודלים הקשורים ל-Bert הדורשים אסימונים של Wordpiece ו-Senencepiece מחוץ למודל TFLite.
תכונות מפתח של BertNLClassifier API
לוקח מחרוזת בודדת כקלט, מבצע סיווג עם המחרוזת והפלטים
מבצע אסימוני Wordpiece או Sentencepiece מחוץ לגרף בטקסט קלט.
דגמי BertNLClassifier נתמכים
הדגמים הבאים תואמים ל- BertNLClassifier
API.
Bert Models נוצר על ידי TensorFlow Lite Model Maker עבור סיווג טקסט .
דגמים מותאמים אישית העומדים בדרישות תאימות המודל .
הפעל הסקה ב-Java
שלב 1: ייבא תלות Gradle והגדרות אחרות
העתק את קובץ מודל .tflite
לספריית הנכסים של מודול האנדרואיד שבו המודל יופעל. ציין שאין לדחוס את הקובץ, והוסף את ספריית 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: הפעל הסקה באמצעות ה-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);
עיין בקוד המקור לפרטים נוספים.
הפעל מסקנות ב- Python
שלב 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 עם מודל ונתוני בדיקה משלך.
דרישות תאימות לדגם
ה-API BetNLClassifier
מצפה למודל TFLite עם מטא נתונים חובה של מודל TFLite .
המטא נתונים צריכים לעמוד בדרישות הבאות:
input_process_units עבור Wordpiece/Sentencepiece Tokenizer
3 טנסור קלט עם שמות "ID", "mask" ו-"segment_ids" לפלט של הטוקנייזר
טנסור פלט אחד מסוג float32, עם קובץ תווית מצורף אופציונלי. אם מצורף קובץ תווית, הקובץ צריך להיות קובץ טקסט רגיל עם תווית אחת בכל שורה ומספר התוויות צריך להתאים למספר הקטגוריות כמו פלטי הדגם.