Task Library BertQuestionAnswerer
API یک مدل Bert را بارگیری می کند و به سؤالات بر اساس محتوای یک قطعه داده شده پاسخ می دهد. برای اطلاعات بیشتر، به مثال مدل پرسش و پاسخ مراجعه کنید.
ویژگی های کلیدی BertQuestionAnswerer API
دو ورودی متن را به عنوان سوال و زمینه می گیرد و لیستی از پاسخ های ممکن را خروجی می گیرد.
در متن ورودی، توکنسازیهای متنی یا جملهای خارج از نمودار را انجام میدهد.
مدلهای BertQuestionAnswerer پشتیبانی میشوند
مدل های زیر با BertNLClassifier
API سازگار هستند.
مدلهای ایجاد شده توسط TensorFlow Lite Model Maker برای پاسخ به سؤال BERT .
مدل های سفارشی که الزامات سازگاری مدل را برآورده می کنند.
استنتاج را در جاوا اجرا کنید
مرحله 1: وابستگی Gradle و تنظیمات دیگر را وارد کنید
فایل مدل .tflite
را در فهرست داراییهای ماژول Android که در آن مدل اجرا میشود، کپی کنید. مشخص کنید که فایل نباید فشرده شود و کتابخانه TensorFlow Lite را به فایل build.gradle
ماژول اضافه کنید:
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'
}
مرحله 2: استنتاج را با استفاده از 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);
برای جزئیات بیشتر به کد منبع مراجعه کنید.
استنتاج را در سوئیفت اجرا کنید
مرحله 1: CocoaPods را وارد کنید
غلاف TensorFlowLiteTaskText را در Podfile اضافه کنید
target 'MySwiftAppWithTaskAPI' do
use_frameworks!
pod 'TensorFlowLiteTaskText', '~> 0.4.4'
end
مرحله 2: استنتاج را با استفاده از API اجرا کنید
// Initialization
let mobileBertAnswerer = TFLBertQuestionAnswerer.questionAnswerer(
modelPath: mobileBertModelPath)
// Run inference
let answers = mobileBertAnswerer.answer(
context: context, question: question)
برای جزئیات بیشتر به کد منبع مراجعه کنید.
استنتاج را در 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);
برای جزئیات بیشتر به کد منبع مراجعه کنید.
استنتاج را در پایتون اجرا کنید
مرحله 1: بسته pip را نصب کنید
pip install tflite-support
مرحله 2: استفاده از مدل
# 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
به کد منبع مراجعه کنید.
نتایج نمونه
در اینجا نمونه ای از نتایج پاسخ مدل ALBERT آورده شده است.
زمینه: "جنگل بارانی آمازون یا جنگل آمازون، که در انگلیسی به نام آمازونیا نیز شناخته می شود، یک جنگل بارانی استوایی پهن برگ مرطوب در بیوم آمازون است که بیشتر حوضه آمازون در آمریکای جنوبی را پوشش می دهد. این حوضه 7,000,000 کیلومتر مربع (2,700,000 مایل مربع) را در بر می گیرد. ) که 5,500,000 کیلومتر مربع (2,100,000 مایل مربع) توسط جنگل های بارانی پوشانده شده است.
سوال: جنگل بارانی آمازون کجاست؟
پاسخ ها:
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
ابزار ساده CLI برای BertQuestionAnswerer را با مدل و داده های آزمایشی خود امتحان کنید.
الزامات سازگاری مدل
API BertQuestionAnswerer
یک مدل TFLite با فراداده مدل TFLite اجباری را انتظار دارد.
فراداده باید شرایط زیر را برآورده کند:
input_process_units
برای Wordpiece/Sentencepiece Tokenizer3 تانسور ورودی با نامهای "ids"، "mask" و "segment_ids" برای خروجی توکنایزر
2 تانسور خروجی با نام های "end_logits" و "start_logits" برای نشان دادن موقعیت نسبی پاسخ در زمینه