روز جامعه ML 9 نوامبر است! برای به روز رسانی از TensorFlow، JAX به ما بپیوندید، و بیشتر بیشتر بدانید

ادغام پاسخگوی س Bال BERT

API کتابخانه BertQuestionAnswerer یک مدل برت را بارگیری می کند و بر اساس محتوای یک بخش داده شده به BertQuestionAnswerer پاسخ می دهد. برای اطلاعات بیشتر ، به اسناد و مدارک مربوط به مدل سوال-پاسخ در اینجا مراجعه کنید .

ویژگی های اصلی BertQuestionAnswerer API

  • از دو ورودی متن به عنوان سوال و زمینه استفاده می کند و لیستی از پاسخ های ممکن را بیرون می آورد.

  • رمزگذاری Wordpiece یا Sentencepiece خارج از نمودار را روی متن ورودی انجام می دهد.

مدل های BertQuestionAnswerer پشتیبانی شده

مدل های زیر با BertNLClassifier API سازگار هستند.

استنباط را در جاوا اجرا کنید

مرحله 1: وارد کردن وابستگی Gradle و سایر تنظیمات

پرونده مدل .tflite را در فهرست دارایی های ماژول Android که مدل در آن اجرا می شود کپی کنید. مشخص کنید که فایل نباید فشرده شود و کتابخانه build.gradle Lite را به پرونده build.gradle ماژول 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.2.0'
}

مرحله 2: استنتاج را با استفاده از API اجرا کنید

// Initialization
BertQuestionAnswerer answerer = BertQuestionAnswerer.createFromFile(androidContext, modelFile);

// Run inference
List<QaAnswer> answers = answerer.answer(contextOfTheQuestion, questionToAsk);

برای جزئیات بیشتر به کد منبع مراجعه کنید.

استنتاج را در Swift اجرا کنید

مرحله 1: واردات CocoaPods

غلاف TensorFlowLiteTaskText را در Podfile اضافه کنید

target 'MySwiftAppWithTaskAPI' do
  use_frameworks!
  pod 'TensorFlowLiteTaskText', '~> 0.2.0'
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_file);
std::unique_ptr<BertQuestionAnswerer> answerer = BertQuestionAnswerer::CreateFromOptions(options).value();

// Run inference
std::vector<QaAnswer> positive_results = answerer->Answer(context_of_question, question_to_ask);

برای جزئیات بیشتر به کد منبع مراجعه کنید.

نتایج مثال

در اینجا مثالی از نتایج جواب مدل ALBERT آورده شده است .

زمینه: "جنگل بارانی آمازون ، به طور متناوب ، جنگل آمازون ، که در انگلیسی به آن آمازونیا نیز می گویند ، یک جنگل بارانی گرمسیری پهن برگ استوایی در زیستگاه آمازون است که بیشتر حوضه آمازون آمریکای جنوبی را پوشش می دهد. این حوضه 7،000،000 km2 (2،700،000 مربع مربع) را شامل می شود. ) ، که 5 میلیون و 500 هزار کیلومتر مربع (2 میلیون و 100 هزار مترمربع) زیر پوشش جنگل بارانی است. این منطقه شامل قلمرو متعلق به نه کشور است. "

سوال: "جنگل بارانی آمازون کجاست؟"

پاسخ ها:

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 Tokenizer

  • 3 سنسور ورودی با نام های "ids" ، "mask" و "segment_ids" برای خروجی توکن ساز

  • 2 سنسور خروجی با نام های "end_logits" و "start_logits" برای نشان دادن موقعیت نسبی پاسخ در متن