API BertQuestionAnswerer Task Library memuat model Bert dan menjawab pertanyaan berdasarkan konten bagian tertentu. Untuk mengetahui informasi selengkapnya, lihat contoh untuk model Tanya Jawab.
Fitur utama BertQuestionAnswerer API
Mengambil dua input teks sebagai pertanyaan dan konteks, lalu menghasilkan daftar kemungkinan jawaban.
Melakukan tokenisasi Wordpiece atau Sentencepiece di luar grafik pada teks input.
Model BertQuestionAnswerer yang didukung
Model berikut kompatibel dengan API BertNLClassifier.
Model yang dibuat oleh TensorFlow Lite Model Maker untuk BERT Question Answer.
Model kustom yang memenuhi persyaratan kompatibilitas model.
Menjalankan 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 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
implementation 'org.tensorflow:tensorflow-lite-task-text:0.4.4'
}
Langkah 2: Jalankan inferensi menggunakan API
// Initialization
BertQuestionAnswererOptions options =
BertQuestionAnswererOptions.builder()
.setBaseOptions(BaseOptions.builder().setNumThreads(4).build())
.build();
BertQuestionAnswerer answerer =
BertQuestionAnswerer.createFromFileAndOptions(
androidContext, modelFile, options);
// Run inference
List<QaAnswer> answers = answerer.answer(contextOfTheQuestion, questionToAsk);
Lihat kode sumber untuk mengetahui detail selengkapnya.
Menjalankan 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 mobileBertAnswerer = TFLBertQuestionAnswerer.questionAnswerer(
modelPath: mobileBertModelPath)
// Run inference
let answers = mobileBertAnswerer.answer(
context: context, question: question)
Lihat kode sumber untuk mengetahui detail selengkapnya.
Menjalankan inferensi di C++
// Initialization
BertQuestionAnswererOptions options;
options.mutable_base_options()->mutable_model_file()->set_file_name(model_path);
std::unique_ptr<BertQuestionAnswerer> answerer = BertQuestionAnswerer::CreateFromOptions(options).value();
// Run inference with your inputs, `context_of_question` and `question_to_ask`.
std::vector<QaAnswer> positive_results = answerer->Answer(context_of_question, question_to_ask);
Lihat kode sumber untuk mengetahui detail selengkapnya.
Menjalankan inferensi di Python
Langkah 1: Instal paket pip
pip install tflite-support
Langkah 2: Menggunakan model
# Imports
from tflite_support.task import text
# Initialization
answerer = text.BertQuestionAnswerer.create_from_file(model_path)
# Run inference
bert_qa_result = answerer.answer(context, question)
Lihat kode
sumber
untuk opsi lainnya dalam mengonfigurasi BertQuestionAnswerer.
Hasil contoh
Berikut adalah contoh hasil jawaban dari model ALBERT.
Konteks: "Hutan hujan Amazon, atau Hutan Amazon, juga dikenal dalam bahasa Inggris sebagai Amazonia, adalah hutan hujan tropis berdaun lebar yang lembap di bioma Amazon yang mencakup sebagian besar cekungan Amazon di Amerika Selatan. Cekungan ini mencakup area seluas 7.000.000 km2 (2.700.000 mil persegi), yang 5.500.000 km2 (2.100.000 mil persegi) di antaranya ditutupi oleh hutan hujan. Wilayah ini mencakup wilayah yang termasuk dalam sembilan negara."
Pertanyaan: "Di mana letak hutan hujan Amazon?"
Jawaban:
answer[0]: 'South America.'
logit: 1.84847, start_index: 39, end_index: 40
answer[1]: 'most of the Amazon basin of South America.'
logit: 1.2921, start_index: 34, end_index: 40
answer[2]: 'the Amazon basin of South America.'
logit: -0.0959535, start_index: 36, end_index: 40
answer[3]: 'the Amazon biome that covers most of the Amazon basin of South America.'
logit: -0.498558, start_index: 28, end_index: 40
answer[4]: 'Amazon basin of South America.'
logit: -0.774266, start_index: 37, end_index: 40
Coba alat demo CLI sederhana untuk BertQuestionAnswerer dengan model dan data pengujian Anda sendiri.
Persyaratan kompatibilitas model
API BertQuestionAnswerer mengharapkan model TFLite dengan Metadata Model TFLite wajib.
Metadata harus memenuhi persyaratan berikut:
input_process_unitsuntuk Wordpiece/Sentencepiece Tokenizer3 tensor input dengan nama "ids", "mask", dan "segment_ids" untuk output tokenizer
2 tensor output dengan nama "end_logits" dan "start_logits" untuk menunjukkan posisi relatif jawaban dalam konteks