تحمّل واجهة برمجة التطبيقات Task Library BertQuestionAnswerer نموذج Bert وتجيب عن الأسئلة استنادًا إلى محتوى مقطع معيّن. لمزيد من المعلومات، يُرجى الاطّلاع على
مثال نموذج السؤال والإجابة.
الميزات الرئيسية لواجهة برمجة التطبيقات BertQuestionAnswerer
تتلقّى هذه الدالة مدخلَين نصيَّين على شكل سؤال وسياق، وتُخرج قائمة بالإجابات المحتملة.
تُجري هذه السمة عمليات تقسيم إلى رموز Wordpiece أو Sentencepiece خارج الرسم البياني على النص المدخل.
طُرز BertQuestionAnswerer المتوافقة
تتوافق الطُرز التالية مع واجهة برمجة التطبيقات BertNLClassifier.
نماذج تم إنشاؤها باستخدام TensorFlow Lite Model Maker for BERT Question Answer
النماذج المخصّصة التي تستوفي متطلبات توافق النماذج
تشغيل الاستنتاج في 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
implementation 'org.tensorflow:tensorflow-lite-task-text:0.4.4'
}
الخطوة 2: تنفيذ الاستدلال باستخدام واجهة برمجة التطبيقات
// 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: تنفيذ الاستدلال باستخدام واجهة برمجة التطبيقات
// 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);
يمكنك الاطّلاع على رمز المصدر لمزيد من التفاصيل.
تشغيل الاستنتاج في Python
الخطوة 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
جرِّب أداة العرض التوضيحي البسيطة لواجهة سطر الأوامر الخاصة بـ BertQuestionAnswerer باستخدام النموذج وبيانات الاختبار الخاصة بك.
متطلبات التوافق مع الطراز
تتوقّع واجهة برمجة التطبيقات BertQuestionAnswerer نموذج TFLite يتضمّن بيانات وصفية إلزامية لنموذج TFLite.
يجب أن تستوفي البيانات الوصفية المتطلبات التالية:
input_process_unitsلأداة تقسيم الكلمات/الجمل إلى رموز مميّزة3 موترات إدخال بالأسماء "ids" و"mask" و "segment_ids" لناتج أداة الترميز
موتران للناتج يحملان الاسمَين "end_logits" و"start_logits" للإشارة إلى الموضع النسبي للإجابة في السياق