Die BertNLClassifier
API der Task Library ist der NLClassifier
sehr ähnlich
die Eingabetext in verschiedene Kategorien einteilt, außer dass diese API
die speziell auf Bert-bezogene Modelle zugeschnitten sind,
Satz-Tokenisierungen außerhalb des TFLite-Modells.
Wichtige Funktionen der BertNLClassifier API
Nimmt einen einzelnen String als Eingabe, führt eine Klassifizierung mit dem String durch gibt <label, score=""> aus als Klassifizierungsergebnisse.</label,>
Führt Out-of-Graph-Wortgruppen aus oder Satzsatz Tokenisierungen für Eingabetext.
Unterstützte BertNLClassifier-Modelle
Die folgenden Modelle sind mit der BertNLClassifier
API kompatibel.
Bert-Modelle, die mit TensorFlow Lite Model Maker für Text erstellt wurden Klassifizierung:
Benutzerdefinierte Modelle, die die Modellkompatibilität erfüllen Anforderungen.
Inferenz in Java ausführen
Schritt 1: Gradle-Abhängigkeit und andere Einstellungen importieren
Kopieren Sie die Modelldatei .tflite
in das Asset-Verzeichnis des Android-Moduls.
in dem das Modell ausgeführt wird. Geben Sie an, dass die Datei nicht komprimiert werden soll, und
Fügen Sie der Datei build.gradle
des Moduls die TensorFlow Lite-Bibliothek hinzu:
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'
}
Schritt 2: Inferenz mit der API ausführen
// 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);
Siehe Quelle Code .
Inferenzen in Swift ausführen
Schritt 1: CocoaPods importieren
TensorFlowLiteTaskText-Pod in Podfile hinzufügen
target 'MySwiftAppWithTaskAPI' do
use_frameworks!
pod 'TensorFlowLiteTaskText', '~> 0.4.4'
end
Schritt 2: Inferenz mit der API ausführen
// Initialization
let bertNLClassifier = TFLBertNLClassifier.bertNLClassifier(
modelPath: bertModelPath)
// Run inference
let categories = bertNLClassifier.classify(text: input)
Siehe Quelle Code .
Inferenz in C++ ausführen
// 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);
Siehe Quelle Code .
Inferenz in Python ausführen
Schritt 1: pip-Paket installieren
pip install tflite-support
Schritt 2: Modell verwenden
# Imports
from tflite_support.task import text
# Initialization
classifier = text.BertNLClassifier.create_from_file(model_path)
# Run inference
text_classification_result = classifier.classify(text)
Siehe Quelle
Code
finden Sie weitere Optionen zum Konfigurieren von BertNLClassifier
.
Beispielergebnisse
Hier ist ein Beispiel für die Klassifizierungsergebnisse von Filmrezensionen mit dem MobileBert aus Model Maker.
Eingabe: „Es ist eine bezaubernde und oft mitreißende Reise.“
Ausgabe:
category[0]: 'negative' : '0.00006'
category[1]: 'positive' : '0.99994'
Testen Sie das einfache CLI-Demotool für BertNLClassifier mit eigenen Modell- und Testdaten.
Anforderungen an die Modellkompatibilität
Die BetNLClassifier
API erwartet ein TFLite-Modell mit dem obligatorischen TFLite-Modell
Metadaten.
Metadaten sollten die folgenden Anforderungen erfüllen:
input_process_units für Wordpart/Sentencestück Tokenizer
3 Eingabetensoren mit den Namen „ids“, „mask“ und "segment_ids" für die Ausgabe von der Tokenizer
1 Ausgabetensor vom Typ float32 mit einer optional angehängten Labeldatei. Wenn ein Labeldatei angehängt ist, sollte es sich um eine Nur-Text-Datei mit einem Label handeln. pro Zeile und die Anzahl der Beschriftungen sollte mit der Anzahl der Kategorien übereinstimmen, die Modellausgaben.