تقوم واجهة برمجة تطبيقات BertQuestionAnswerer
لمكتبة المهام بتحميل نموذج بيرت والإجابة على الأسئلة بناءً على محتوى مقطع معين. لمزيد من المعلومات، راجع الوثائق الخاصة بنموذج الأسئلة والإجابة هنا .
الميزات الرئيسية لواجهة برمجة تطبيقات BertQuestionAnswerer
يأخذ مدخلين للنص كسؤال وسياق ويخرج قائمة بالإجابات المحتملة.
تنفيذ رموز مميزة لقطع الكلمات أو قطع الجملة خارج الرسم البياني على النص المُدخل.
نماذج 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 (NNAPI is included)
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);
راجع الكود المصدري لمزيد من التفاصيل.
تشغيل الاستدلال في سويفت
الخطوة 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);
راجع الكود المصدري لمزيد من التفاصيل.
تشغيل الاستدلال في بيثون
الخطوة 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
.
نتائج المثال
فيما يلي مثال لنتائج إجابة نموذج ألبرت .
السياق: "غابات الأمازون المطيرة، أو غابة الأمازون، والمعروفة أيضًا باللغة الإنجليزية باسم أمازونيا، هي غابة مطيرة استوائية عريضة الأوراق رطبة في منطقة الأمازون الحيوية التي تغطي معظم حوض الأمازون في أمريكا الجنوبية. يغطي هذا الحوض 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 موترات إدخال بأسماء "ids" و"mask" و"segment_ids" لإخراج الرمز المميز
موترتا إخراج بأسماء "end_logits" و"start_logits" للإشارة إلى الموضع النسبي للإجابة في السياق