Integrasikan pengklasifikasi bahasa alami BERT

Task Library BertNLClassifier API sangat mirip dengan NLClassifier yang mengklasifikasikan teks masukan ke dalam kategori berbeda, kecuali bahwa API ini dirancang khusus untuk model terkait Bert yang memerlukan tokenisasi Wordpiece dan Sentencepiece di luar model TFLite.

Fitur utama dari BertNLClassifier API

  • Mengambil satu string sebagai masukan, melakukan klasifikasi dengan string dan keluaran berpasangan sebagai hasil klasifikasi.

  • Melakukan tokenisasi Wordpiece atau Kalimat di luar grafik pada teks masukan.

Model BertNLClassifier yang didukung

Model berikut ini kompatibel dengan BertNLClassifier API.

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 tersebut tidak boleh dikompresi, dan tambahkan pustaka 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 mengonfigurasi BertNLClassifier .

Contoh hasil

Berikut contoh hasil klasifikasi review film menggunakan model MobileBert dari Model Maker.

Masukan: "ini adalah perjalanan yang menarik dan sering kali memberi kesan"

Keluaran:

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

Cobalah alat demo CLI sederhana untuk BertNLClassifier dengan model dan data pengujian Anda sendiri.

Persyaratan kompatibilitas model

API BetNLClassifier mengharapkan model TFLite dengan Metadata Model TFLite wajib.

Metadata harus memenuhi persyaratan berikut:

  • input_process_units untuk Tokenizer Bagian Kata/Kalimat

  • 3 input tensor dengan nama "ids", "mask" dan "segment_ids" untuk output tokenizer

  • 1 tensor keluaran tipe float32, dengan file label terlampir 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 yang dihasilkan model.