Perpustakaan Tugas BertNLClassifier
API sangat mirip dengan NLClassifier
yang mengklasifikasikan teks input ke dalam kategori yang berbeda, kecuali bahwa API ini dirancang khusus untuk model terkait Bert yang memerlukan tokenisasi Wordpiece dan Sentencepiece di luar model TFLite.
Fitur utama dari API BertNLClassifier
Mengambil string tunggal sebagai input, melakukan klasifikasi dengan string dan output
Melakukan tokenisasi Wordpiece atau Sentencepiece di luar grafik pada teks input.
Model BertNLClassifier yang didukung
Model berikut kompatibel dengan BertNLClassifier
API.
Bert Models dibuat oleh TensorFlow Lite Model Maker untuk Klasifikasi teks .
Model khusus yang memenuhi persyaratan kompatibilitas model .
Jalankan inferensi di Java
Langkah 1: Impor ketergantungan Gradle dan pengaturan lainnya
Salin file model .tflite
ke direktori aset modul Android tempat model akan dijalankan. Tentukan bahwa file tidak boleh dikompresi, dan tambahkan library TensorFlow Lite ke file build.gradle
modul:
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'
}
Langkah 2: Jalankan inferensi menggunakan 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);
Lihat kode sumber untuk lebih jelasnya.
Jalankan inferensi di Swift
Langkah 1: Impor CocoaPods
Tambahkan pod TensorFlowLiteTaskText di Podfile
target 'MySwiftAppWithTaskAPI' do
use_frameworks!
pod 'TensorFlowLiteTaskText', '~> 0.4.4'
end
Langkah 2: Jalankan inferensi menggunakan API
// Initialization
let bertNLClassifier = TFLBertNLClassifier.bertNLClassifier(
modelPath: bertModelPath)
// Run inference
let categories = bertNLClassifier.classify(text: input)
Lihat kode sumber untuk lebih jelasnya.
Jalankan inferensi di 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);
Lihat kode sumber untuk lebih jelasnya.
Jalankan inferensi dengan Python
Langkah 1: Instal paket pip
pip install tflite-support
Langkah 2: Menggunakan model
# Imports
from tflite_support.task import text
# Initialization
classifier = text.BertNLClassifier.create_from_file(model_path)
# Run inference
text_classification_result = classifier.classify(text)
Lihat kode sumber untuk opsi lebih lanjut untuk mengkonfigurasi BertNLClassifier
.
Contoh hasil
Berikut adalah contoh hasil klasifikasi review film menggunakan model MobileBert dari Model Maker.
Masukan: "perjalanan yang menawan dan sering mempengaruhi"
Keluaran:
category[0]: 'negative' : '0.00006'
category[1]: 'positive' : '0.99994'
Cobalah alat demo CLI sederhana untuk BertNLClassifier dengan model dan data uji Anda sendiri.
Persyaratan kompatibilitas model
API BetNLClassifier
mengharapkan model TFLite dengan Metadata Model TFLite wajib .
Metadata harus memenuhi persyaratan berikut:
input_process_units untuk Wordpiece/Sentencepiece Tokenizer
3 input tensor dengan nama "id", "mask" dan "segment_ids" untuk output tokenizer
1 output tensor tipe float32, dengan file label yang dilampirkan secara opsional. Jika file label dilampirkan, file tersebut harus berupa file teks biasa dengan satu label per baris dan jumlah label harus sesuai dengan jumlah kategori sebagai keluaran model.