Pustaka Tugas BertQuestionAnswerer
API memuat model Bert dan menjawab pertanyaan berdasarkan konten bagian tertentu. Untuk informasi lebih lanjut, lihat dokumentasi untuk model Tanya-Jawab di sini .
Fitur utama dari BertQuestionAnswerer API
Mengambil dua input teks sebagai pertanyaan dan konteks dan menampilkan daftar kemungkinan jawaban.
Melakukan tokenisasi Wordpiece atau Sentencepiece di luar grafik pada teks input.
Model BertQuestionAnswerer yang didukung
Model berikut kompatibel dengan BertNLClassifier
API.
Model yang dibuat oleh TensorFlow Lite Model Maker untuk BERT Question Answer .
Model BERT yang telah dilatih sebelumnya di TensorFlow Hub .
Model khusus yang memenuhi persyaratan kompatibilitas model .
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 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 (NNAPI is included)
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 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 mobileBertAnswerer = TFLBertQuestionAnswerer.questionAnswerer(
modelPath: mobileBertModelPath)
// Run inference
let answers = mobileBertAnswerer.answer(
context: context, question: question)
Lihat kode sumber untuk lebih jelasnya.
Jalankan 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 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
answerer = text.BertQuestionAnswerer.create_from_file(model_path)
# Run inference
bert_qa_result = answerer.answer(context, question)
Lihat kode sumber untuk opsi lebih lanjut untuk mengonfigurasi BertQuestionAnswerer
.
Contoh hasil
Berikut adalah contoh hasil jawaban model ALBERT .
Konteks: "Hutan hujan Amazon, sebagai alternatif, Hutan Amazon, juga dikenal dalam bahasa Inggris sebagai Amazonia, adalah hutan hujan tropis basah berdaun lebar di bioma Amazon yang menutupi sebagian besar lembah Amazon Amerika Selatan. Cekungan ini meliputi 7.000.000 km2 (2.700.000 sq mi) ), yang 5.500.000 km2 (2.100.000 sq mi) ditutupi oleh hutan hujan. Wilayah ini termasuk wilayah milik sembilan negara."
Pertanyaan: Di mana hutan hujan Amazon berada?
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
Cobalah alat demo CLI sederhana untuk BertQuestionAnswerer dengan model dan data uji Anda sendiri.
Persyaratan kompatibilitas model
BertQuestionAnswerer
API mengharapkan model TFLite dengan Metadata Model TFLite wajib .
Metadata harus memenuhi persyaratan berikut:
input_process_units
untuk Wordpiece/Sentencepiece Tokenizer3 input tensor dengan nama "id", "mask" dan "segment_ids" untuk output tokenizer
2 output tensor dengan nama "end_logits" dan "start_logits" untuk menunjukkan posisi relatif jawaban dalam konteks