Task Library BertQuestionAnswerer API טוען מודל Bert ועונה על שאלות על סמך התוכן של קטע נתון. מידע נוסף זמין בדוגמה של מודל השאלות והתשובות.
התכונות העיקריות של BertQuestionAnswerer API
מקבל שני קלטים של טקסט כשאלות והקשר, ומפיק רשימה של תשובות אפשריות.
מבצע טוקניזציה של Wordpiece או Sentencepiece מחוץ לגרף בטקסט הקלט.
מודלים נתמכים של BertQuestionAnswerer
המודלים הבאים תואמים ל-BertNLClassifier API.
מודלים שנוצרו על ידי 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: הפעלת הסקה באמצעות ה-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
מוסיפים את ה-Pod 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);
פרטים נוספים זמינים בקוד המקור.
הרצת הסקה ב-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 קמ"ר, מתוכם 5,500,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 כדי לציין את המיקום היחסי של התשובה בהקשר