Görev Kitaplığı BertNLClassifier
API'si, giriş metnini farklı kategorilerde sınıflandıran NLClassifier
çok benzer; ancak bu API, TFLite modeli dışında Wordpiece ve Sentencepiece belirteçleri gerektiren Bert ile ilgili modeller için özel olarak uyarlanmıştır.
BertNLClassifier API'sinin temel özellikleri
Giriş olarak tek bir dize alır, dize ve çıktılarla sınıflandırmayı gerçekleştirir
Giriş metninde grafik dışı Sözcük Parçası veya Cümle Parçası belirteçleri gerçekleştirir.
Desteklenen BertNLClassifier modelleri
Aşağıdaki modeller BertNLClassifier
API'si ile uyumludur.
Metin Sınıflandırması için TensorFlow Lite Model Maker tarafından oluşturulan Bert Modelleri.
Model uyumluluk gereksinimlerini karşılayan özel modeller.
Java'da çıkarımı çalıştırma
Adım 1: Gradle bağımlılığını ve diğer ayarları içe aktarın
.tflite
model dosyasını, modelin çalıştırılacağı Android modülünün asset dizinine kopyalayın. Dosyanın sıkıştırılmaması gerektiğini belirtin ve TensorFlow Lite kitaplığını modülün build.gradle
dosyasına ekleyin:
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. Adım: API'yi kullanarak çıkarımı çalıştırın
// 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);
Daha fazla ayrıntı için kaynak koduna bakın.
Swift'de çıkarımı çalıştır
1. Adım: CocoaPod'ları içe aktarın
TensorFlowLiteTaskText bölmesini Podfile'a ekleyin
target 'MySwiftAppWithTaskAPI' do
use_frameworks!
pod 'TensorFlowLiteTaskText', '~> 0.4.4'
end
2. Adım: API'yi kullanarak çıkarımı çalıştırın
// Initialization
let bertNLClassifier = TFLBertNLClassifier.bertNLClassifier(
modelPath: bertModelPath)
// Run inference
let categories = bertNLClassifier.classify(text: input)
Daha fazla ayrıntı için kaynak koduna bakın.
Çıkarımı C++'da çalıştırma
// 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);
Daha fazla ayrıntı için kaynak koduna bakın.
Python'da çıkarımı çalıştırma
Adım 1: pip paketini yükleyin
pip install tflite-support
Adım 2: Modelin kullanılması
# 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
yapılandırmaya yönelik daha fazla seçenek için kaynak koduna bakın.
Örnek sonuçlar
Model Maker'ın MobileBert modelini kullanan film incelemelerinin sınıflandırma sonuçlarına bir örnek.
Girdi: "büyüleyici ve çoğu zaman etkileyici bir yolculuk"
Çıktı:
category[0]: 'negative' : '0.00006'
category[1]: 'positive' : '0.99994'
Kendi modeliniz ve test verilerinizle BertNLClassifier için basit CLI demo aracını deneyin.
Model uyumluluk gereksinimleri
BetNLClassifier
API, zorunlu TFLite Model Meta Verilerine sahip bir TFLite modeli beklemektedir.
Meta Veriler aşağıdaki gereksinimleri karşılamalıdır:
Kelime Parçası/Cümle Parçası Belirteci için input_process_units
Belirteçleyicinin çıkışı için "ids", "mask" ve "segment_ids" adlarına sahip 3 giriş tensörü
İsteğe bağlı olarak eklenen etiket dosyasıyla birlikte float32 tipi 1 çıkış tensörü. Bir etiket dosyası eklenmişse dosya, her satırda bir etiket bulunan düz metin dosyası olmalı ve etiket sayısı, modelin çıktısı olarak kategori sayısıyla eşleşmelidir.