Görev Kitaplığı BertQuestionAnswerer
API'si bir Bert modeli yükler ve belirli bir pasajın içeriğine göre soruları yanıtlar. Daha fazla bilgi için Soru-Cevap modelinin belgelerine buradan bakın.
BertQuestionAnswerer API'sinin temel özellikleri
Soru ve bağlam olarak iki metin girişini alır ve olası yanıtların bir listesini çıkarır.
Giriş metninde grafik dışı Sözcük Parçası veya Cümle Parçası belirteçleri gerçekleştirir.
Desteklenen BertQuestionAnswerr modelleri
Aşağıdaki modeller BertNLClassifier
API'si ile uyumludur.
TensorFlow Lite Model Maker tarafından BERT Soru Cevap için oluşturulan modeller.
Model uyumluluk gereksinimlerini karşılayan özel modeller.
Java'da çıkarımı çalıştırma
Adım 1: Gradle bağımlılığını ve diğer ayarları içe aktarın
.tflite
model dosyasını, modelin çalıştırılacağı Android modülünün asset dizinine kopyalayın. Dosyanın sıkıştırılmaması gerektiğini belirtin ve TensorFlow Lite kitaplığını modülün build.gradle
dosyasına 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 (NNAPI is included)
implementation 'org.tensorflow:tensorflow-lite-task-text:0.4.4'
}
2. Adım: API'yi kullanarak çıkarımı çalıştırın
// 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);
Daha fazla ayrıntı için kaynak koduna bakın.
Swift'de çıkarımı çalıştır
1. Adım: CocoaPod'ları içe aktarın
TensorFlowLiteTaskText bölmesini Podfile'a ekleyin
target 'MySwiftAppWithTaskAPI' do
use_frameworks!
pod 'TensorFlowLiteTaskText', '~> 0.4.4'
end
2. Adım: API'yi kullanarak çıkarımı çalıştırın
// Initialization
let mobileBertAnswerer = TFLBertQuestionAnswerer.questionAnswerer(
modelPath: mobileBertModelPath)
// Run inference
let answers = mobileBertAnswerer.answer(
context: context, question: question)
Daha fazla ayrıntı için kaynak koduna bakın.
Çıkarımı C++'da çalıştırma
// 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);
Daha fazla ayrıntı için kaynak koduna bakın.
Python'da çıkarımı çalıştırma
Adım 1: pip paketini yükleyin
pip install tflite-support
Adım 2: Modelin kullanılması
# 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)
BertQuestionAnswerer
yapılandırmaya yönelik daha fazla seçenek için kaynak koduna bakın.
Örnek sonuçlar
Aşağıda ALBERT modelinin cevap sonuçlarına bir örnek verilmiştir.
Bağlam: "Amazon yağmur ormanları, alternatif olarak İngilizce'de Amazonia olarak da bilinen Amazon Ormanı, Güney Amerika'daki Amazon havzasının çoğunu kaplayan Amazon biyomunda nemli, geniş yapraklı bir tropikal yağmur ormanıdır. Bu havza 7.000.000 km2 (2.700.000 mil kare) alanı kapsıyor. 5.500.000 km2'si (2.100.000 mil kare) yağmur ormanlarıyla kaplıdır. Bu bölge dokuz ülkeye ait toprakları içermektedir."
Soru: "Amazon yağmur ormanları nerede?"
Yanıtlar:
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
Kendi modeliniz ve test verilerinizle BertQuestionAnswerer'ın basit CLI demo aracını deneyin.
Model uyumluluk gereksinimleri
BertQuestionAnswerer
API, zorunlu TFLite Model Meta Verilerine sahip bir TFLite modeli beklemektedir.
Meta Veriler aşağıdaki gereksinimleri karşılamalıdır:
Kelime Parçası/Cümle Parçası Belirteci için
input_process_units
Belirteçleyicinin çıkışı için "ids", "mask" ve "segment_ids" adlarına sahip 3 giriş tensörü
Yanıtın bağlamdaki göreceli konumunu belirtmek için "end_logits" ve "start_logits" adlarına sahip 2 çıkış tensörü