Hari Komunitas ML adalah 9 November! Bergabung dengan kami untuk update dari TensorFlow, JAX, dan lebih Pelajari lebih lanjut

Integrasikan pengklasifikasi bahasa alami BERT

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

Fitur utama BertNLClassifier API

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

  • Melakukan Tokenisasi di luar grafik atau Tokenisasi Sentencepiece pada teks input.

Model BertNLClassifier yang didukung

Model berikut kompatibel dengan BertNLClassifier API.

Jalankan inferensi di Java

Langkah 1: Impor dependensi Gradle dan setelan lainnya

Salin file model .tflite ke direktori aset modul Android tempat model akan dijalankan. Tentukan bahwa file 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
    implementation 'org.tensorflow:tensorflow-lite-task-text:0.2.0'
}

Langkah 2: Jalankan inferensi menggunakan API

// Initialization
BertNLClassifier classifier = BertNLClassifier.createFromFile(context, modelFile);

// 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.2.0'
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_file);
std::unique_ptr<BertNLClassifier> classifier = BertNLClassifier::CreateFromOptions(options).value();

// Run inference
std::vector<core::Category> categories = classifier->Classify(kInput);

Lihat kode sumber untuk lebih jelasnya.

Hasil contoh

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

Masukan: "ini adalah 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 pengujian Anda sendiri.

Persyaratan kompatibilitas model

BetNLClassifier API mengharapkan model TFLite dengan Metadata Model TFLite wajib.

Metadata harus memenuhi persyaratan berikut:

  • input_process_units untuk Wordpiece / Sentencepiece Tokenizer

  • 3 masukan tensor dengan nama "ids", "mask" dan "segment_ids" untuk keluaran 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.