API của Thư viện tác vụ BertQuestionAnswerer
tải mô hình Bert và các câu trả lời
dựa trên nội dung của một đoạn văn nhất định. Để biết thêm thông tin, hãy xem
ví dụ cho mô hình Câu hỏi-Câu trả lời.
Các tính năng chính của BertQuestionAnswerer API
Lấy hai đầu vào văn bản làm câu hỏi và ngữ cảnh, sau đó xuất ra một danh sách những nội dung có thể của chúng tôi.
Thực hiện việc tạo mã thông báo từ hoặc đoạn văn ngoài đồ thị khi nhập .
Các mô hình BertQuestionAnswerer được hỗ trợ
Các mô hình sau đây tương thích với API BertNLClassifier
.
Mô hình được tạo bởi TensorFlow Lite Model Maker cho đáp án câu hỏi BERT.
Chiến lược phát hành đĩa đơn các mô hình BERT được huấn luyện trước trên TensorFlow Hub.
Mô hình tuỳ chỉnh đáp ứng yêu cầu về khả năng tương thích với mô hình.
Chạy dự đoán trong Java
Bước 1: Nhập phần phụ thuộc Gradle và các chế độ cài đặt khác
Sao chép tệp mô hình .tflite
vào thư mục thành phần của mô-đun Android
nơi mô hình sẽ chạy. Chỉ định rằng tệp không được nén và
thêm thư viện TensorFlow Lite vào tệp build.gradle
của mô-đun:
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'
}
Bước 2: Chạy dự đoán bằng 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);
Xem mã nguồn để biết thêm chi tiết.
Chạy dự đoán trong Swift
Bước 1: Nhập CocoaPods
Thêm nhóm TensorFlowLiteTaskText trong Podfile
target 'MySwiftAppWithTaskAPI' do
use_frameworks!
pod 'TensorFlowLiteTaskText', '~> 0.4.4'
end
Bước 2: Chạy dự đoán bằng API
// Initialization
let mobileBertAnswerer = TFLBertQuestionAnswerer.questionAnswerer(
modelPath: mobileBertModelPath)
// Run inference
let answers = mobileBertAnswerer.answer(
context: context, question: question)
Xem mã nguồn để biết thêm chi tiết.
Chạy dự đoán trong 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);
Xem mã nguồn để biết thêm chi tiết.
Chạy suy luận trong Python
Bước 1: Cài đặt gói pip
pip install tflite-support
Bước 2: Sử dụng mô hình
# 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)
Xem
mã nguồn
để có thêm lựa chọn để định cấu hình BertQuestionAnswerer
.
Kết quả mẫu
Dưới đây là một ví dụ về kết quả trả lời của Mô hình ALBERT.
Bối cảnh: "Khu rừng nhiệt đới Amazon, hay còn gọi là Rừng Amazon, hay còn gọi là Tiếng Anh là Amazonia, là một khu rừng mưa nhiệt đới lá rộng ẩm ở Amazon quần xã sinh vật bao phủ hầu hết lưu vực Amazon của Nam Mỹ. Lưu vực này bao gồm 7.000.000 km2 (2.700.000 dặm vuông), trong đó Rừng nhiệt đới bao phủ diện tích 5.500.000 km2 (2.100.000 dặm vuông). Khu vực này bao gồm lãnh thổ thuộc 9 quốc gia".
Câu hỏi: " Rừng nhiệt đới Amazon nằm ở đâu?"
Câu trả lời:
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
Thử mẹo đơn giản Công cụ minh hoạ CLI dành cho BertQuestionAnswerer thông qua mô hình và dữ liệu thử nghiệm của riêng bạn.
Yêu cầu về khả năng tương thích với mô hình
API BertQuestionAnswerer
yêu cầu một mô hình TFLite với
Siêu dữ liệu mô hình TFLite.
Siêu dữ liệu phải đáp ứng các yêu cầu sau:
input_process_units
cho bộ mã hoá văn bản/bản văn bản3 tensor đầu vào có tên "ids", "mask" và "segment_ids" cho kết quả của trình tạo mã thông báo
2 tensor đầu ra có tên là "end_logits" và "start_logits" để cho biết vị trí tương đối của câu trả lời trong ngữ cảnh