Görev Kitaplığı BertQuestionAnswerer
API, bir Bert modeli yükler ve verilen bir pasajın içeriğine göre soruları yanıtlar. Daha fazla bilgi için, buradaki Soru-Cevap modelinin belgelerine bakın .
BertQuestionAnswerer API'sinin temel özellikleri
Soru ve bağlam olarak iki metin girişi alır ve olası yanıtların bir listesini verir.
Giriş metninde grafik dışı Sözcük Parçası veya Cümle Parçası belirteçleri gerçekleştirir.
Desteklenen BertQuestionCevap modelleri
Aşağıdaki modeller BertNLClassifier
API ile uyumludur.
BERT Soru Yanıtı için TensorFlow Lite Model Maker tarafından oluşturulan modeller.
Model uyumluluk gereksinimlerini karşılayan özel modeller.
Java'da çıkarımı çalıştır
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 varlıklar 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.3.0'
}
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ı İçe Aktarın
Podfile'de TensorFlowLiteTaskText bölmesini ekleyin
target 'MySwiftAppWithTaskAPI' do
use_frameworks!
pod 'TensorFlowLiteTaskText', '~> 0.2.0'
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++ ile çalıştırın
// 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ır
Adım 1: pip paketini kurun
pip install tflite-support
Adım 2: Modeli kullanma
# 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ırmak için daha fazla seçenek için kaynak koduna bakın.
Örnek sonuçlar
İşte ALBERT modelinin cevap sonuçlarına bir örnek.
Bağlam: "Amazon yağmur ormanı, alternatif olarak, İngilizcede Amazonia olarak da bilinen Amazon Ormanı, Amazon biyomunda yer alan ve Güney Amerika'daki Amazon havzasının çoğunu kapsayan nemli, geniş yapraklı bir tropikal yağmur ormanıdır. Bu havza 7.000.000 km2'yi (2.700.000 sq mi) kapsar ), bunun 5.500.000 km2'si (2.100.000 sq mi) yağmur ormanlarıyla kaplıdır. Bu bölge dokuz ülkeye ait toprakları içerir."
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
BertQuestionAnswerer için basit CLI demo aracını kendi model ve test verilerinizle deneyin.
Model uyumluluğu gereksinimleri
BertQuestionAnswerer
API, zorunlu TFLite Model Meta Verilerine sahip bir TFLite modeli bekler.
Meta Veriler aşağıdaki gereksinimleri karşılamalıdır:
Sözcük Parçası/Cümle Parçası Belirteçleştiricisi için
input_process_units
Belirteç çıkışı için "ids", "mask" ve "segment_ids" adlarına sahip 3 giriş tensörü
Bağlamdaki cevabın göreli konumunu belirtmek için "end_logits" ve "start_logits" adlarına sahip 2 çıkış tensörü