ה-API של ספריית המשימות BertNLClassifier
דומה מאוד ל-NLClassifier
שמסווג טקסט קלט לקטגוריות שונות, למעט שה-API הזה
שמותאמים במיוחד למודלים קשורים של BERT שמצריכים
יצירת אסימונים בחלק מהמשפטים מחוץ למודל TFLite.
תכונות עיקריות של BertNLClassifier API
מקבל מחרוזת יחידה כקלט, מבצע סיווג באמצעות המחרוזת, פלט <label, Score=""> צמדים כתוצאות סיווג.</label,>
מבצע יצירת מילים ללא תמונה או קטע טקסט יצירת אסימונים בטקסט הקלט.
מודלים נתמכים של BertNLClassifier
המודלים הבאים תואמים ל-API של BertNLClassifier
.
מודלים של 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
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);
אפשר לעיין במקור קוד אפשר לקבל פרטים נוספים.
הרצת ההסקה ב-Swift
שלב 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 חובה
מטא-נתונים.
המטא-נתונים צריכים לעמוד בדרישות הבאות:
קלט_תהליך_units לרכיב טקסט מעוצב/אסימונים של רכיב טקסט
3 רכיבי קלט עם השמות 'ids', 'mask' ו-segment_id את הפלט של כלי ההמרה לאסימונים
אוזן פלט אחת מסוג float32, עם קובץ תווית מצורף אופציונלי. אם מצורף קובץ תוויות, הקובץ צריך להיות קובץ טקסט פשוט עם תווית אחת בכל שורה ומספר התוויות צריך להתאים למספר הקטגוריות את הפלט של המודל.