تقوم مكتبة BertQuestionAnswerer
API الخاصة بمكتبة المهام بتحميل نموذج Bert وتجيب على الأسئلة بناءً على محتوى فقرة معينة. لمزيد من المعلومات ، راجع الوثائق الخاصة بنموذج الأسئلة والإجابات هنا .
الملامح الرئيسية ل BertQuestionAnswerer API
يأخذ مدخلين للنص كسؤال وسياق ويخرج قائمة بالإجابات المحتملة.
ينفذ رموزًا مميّزة لقطعة الكلمات أو قطع الجمل خارج الرسم البياني على نص الإدخال.
نماذج BertQuestionAnswerer المدعومة
النماذج التالية متوافقة مع BertNLClassifier
API.
النماذج التي تم إنشاؤها بواسطة TensorFlow Lite Model Maker لإجابة سؤال BERT .
النماذج المخصصة التي تلبي متطلبات توافق النموذج .
تشغيل الاستدلال في Java
الخطوة 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 (NNAPI is included)
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);
انظر شفرة المصدر لمزيد من التفاصيل.
تشغيل الاستدلال في Swift
الخطوة 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 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 مع نموذجك وبيانات الاختبار.
متطلبات توافق النموذج
تتوقع BertQuestionAnswerer
API نموذج TFLite مع بيانات تعريف إلزامية لنموذج TFLite .
يجب أن تستوفي البيانات الوصفية المتطلبات التالية:
input_process_units
لـ Wordpiece / Sentencepiece Tokenizer3 موترلات إدخال بأسماء "معرفات" و "قناع" و "معرفات مقاطع" لإخراج الرمز المميز
2 موتر إخراج بأسماء "end_logits" و "start_logits" للإشارة إلى الموضع النسبي للمجيب في السياق