BERT doğal dil sınıflandırıcısını entegre etme

Görev Kitaplığı BertNLClassifier API, NLClassifier API'sine çok benzer Bu API, giriş metnini farklı kategorilere ayırır: kelime işlemcileriyle uyumlu olan Bert'le ilişkili modeller için TFLite modeli dışındaki cümle parçası tokenizasyonları.

BertNLClassifier API'nin temel özellikleri

  • Giriş olarak tek bir dize alır, dizeyle sınıflandırma yapar ve <label, score=""> gibi çıkışlar eşlemelerini sınıflandırma sonucu olarak kullanabilirsiniz.</label,>

  • Grafik dışı Wordparça performansı gösteriyor veya Cümle parçası giriş metninde tokenizasyonlar.

Desteklenen BertNLClassifier modelleri

Aşağıdaki modeller BertNLClassifier API ile uyumludur.

Java'da çıkarım çalıştırma

1. Adım: Gradle bağımlılığını ve diğer ayarları içe aktarın

.tflite model dosyasını Android modülünün öğe dizinine kopyalayın nerede çalıştırılacağına karar verin. Dosyanın sıkıştırılmaması gerektiğini belirtin ve modülün build.gradle dosyasına TensorFlow Lite kitaplığını 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
    implementation 'org.tensorflow:tensorflow-lite-task-text:0.4.4'
}

2. Adım: API'yi kullanarak çıkarım çalıştırma

// 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);

Kaynağa bakın kod inceleyebilirsiniz.

Swift'te çıkarım çalıştır

1. Adım: CocoaPods'u içe aktarın

Podfile'a TensorFlowLiteTaskText kapsülünü ekleme

target 'MySwiftAppWithTaskAPI' do
  use_frameworks!
  pod 'TensorFlowLiteTaskText', '~> 0.4.4'
end

2. Adım: API'yi kullanarak çıkarım çalıştırma

// Initialization
let bertNLClassifier = TFLBertNLClassifier.bertNLClassifier(
      modelPath: bertModelPath)

// Run inference
let categories = bertNLClassifier.classify(text: input)

Kaynağa bakın kod inceleyebilirsiniz.

C++'ta çıkarım çalıştır

// 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);

Kaynağa bakın kod inceleyebilirsiniz.

Python'da çıkarım çalıştırma

1. Adım: Pip paketini yükleyin

pip install tflite-support

2. Adım: Modeli kullanma

# Imports
from tflite_support.task import text

# Initialization
classifier = text.BertNLClassifier.create_from_file(model_path)

# Run inference
text_classification_result = classifier.classify(text)

Kaynağa bakın kod daha fazla BertNLClassifier yapılandırma seçeneğine gidin.

Örnek sonuçlar

Aşağıda, MobileBert modeli.

Giriş: "Bu, büyüleyici ve genellikle etkileyen bir yolculuk"

Çıkış:

category[0]: 'negative' : '0.00006'
category[1]: 'positive' : '0.99994'

Şunun için basit CLI demo aracını deneyin: BertNLClassifier kullanarak test edebilirsiniz.

Model uyumluluğu şartları

BetNLClassifier API, zorunlu TFLite Modeline sahip bir TFLite modeli bekler Meta veri.

Meta veriler aşağıdaki şartları karşılamalıdır:

  • Wordparça/SentenceParça Tokenizer için giriş_process_units

  • "ids", "mask" adlı 3 giriş tensörü ve "segment_ids" şunun çıktısı için: belirteç oluşturucu

  • İsteğe bağlı olarak eklenmiş bir etiket dosyasıyla birlikte, float32 türünde 1 çıkış tensörü. etiket dosyası eklendiğinde, dosya tek bir etikete sahip bir düz metin dosyası olmalıdır her satıra bir sayı girilmelidir ve etiket sayısı, çıktı.