Task Library BertQuestionAnswerer API একটি Bert মডেল লোড করে এবং একটি প্রদত্ত প্যাসেজের বিষয়বস্তুর উপর ভিত্তি করে প্রশ্নের উত্তর দেয়। আরও তথ্যের জন্য, প্রশ্ন-উত্তর মডেলের উদাহরণটি দেখুন।
BertQuestionAnswerer API এর মূল বৈশিষ্ট্যগুলি
প্রশ্ন এবং প্রসঙ্গ হিসেবে দুটি টেক্সট ইনপুট নেয় এবং সম্ভাব্য উত্তরের একটি তালিকা আউটপুট করে।
ইনপুট টেক্সটের উপর গ্রাফের বাইরের ওয়ার্ডপিস বা সেন্টেন্সপিস টোকেনাইজেশন সম্পাদন করে।
সমর্থিত BertQuestionAnswerer মডেল
নিম্নলিখিত মডেলগুলি BertNLClassifier API এর সাথে সামঞ্জস্যপূর্ণ।
BERT প্রশ্নের উত্তরের জন্য TensorFlow Lite মডেল মেকার দ্বারা তৈরি মডেলগুলি।
কাস্টম মডেল যা মডেলের সামঞ্জস্যের প্রয়োজনীয়তা পূরণ করে।
জাভাতে অনুমান চালান
ধাপ ১: গ্রেডল নির্ভরতা এবং অন্যান্য সেটিংস আমদানি করুন
.tflite মডেল ফাইলটি অ্যান্ড্রয়েড মডিউলের সম্পদ ডিরেক্টরিতে কপি করুন যেখানে মডেলটি চালানো হবে। ফাইলটি সংকুচিত করা উচিত নয় তা নির্দিষ্ট করুন এবং মডিউলের build.gradle ফাইলে TensorFlow Lite লাইব্রেরি যোগ করুন:
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'
}
ধাপ ২: 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);
আরও বিস্তারিত জানার জন্য সোর্স কোড দেখুন।
সুইফটে অনুমান চালান
ধাপ ১: কোকোপড আমদানি করুন
Podfile-এ TensorFlowLiteTaskText পড যোগ করুন
target 'MySwiftAppWithTaskAPI' do
use_frameworks!
pod 'TensorFlowLiteTaskText', '~> 0.4.4'
end
ধাপ ২: 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);
আরও বিস্তারিত জানার জন্য সোর্স কোড দেখুন।
পাইথনে ইনফারেন্স চালান
ধাপ ১: পিপ প্যাকেজ ইনস্টল করুন
pip install tflite-support
ধাপ ২: মডেল ব্যবহার করা
# 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-এর জন্য সহজ CLI ডেমো টুলটি ব্যবহার করে দেখুন।
মডেলের সামঞ্জস্যের প্রয়োজনীয়তা
BertQuestionAnswerer API বাধ্যতামূলক TFLite মডেল মেটাডেটা সহ একটি TFLite মডেল আশা করে।
মেটাডেটা নিম্নলিখিত প্রয়োজনীয়তা পূরণ করবে:
ওয়ার্ডপিস/সেন্টেন্সপিস টোকেনাইজারের জন্য
input_process_unitsটোকেনাইজারের আউটপুটের জন্য "ids", "mask" এবং "segment_ids" নামের ৩টি ইনপুট টেনসর
"end_logits" এবং "start_logits" নামের ২টি আউটপুট টেনসর, যা প্রসঙ্গে উত্তরের আপেক্ষিক অবস্থান নির্দেশ করে।