API Thư viện tác vụ BertNLClassifier
rất giống với NLClassifier
phân loại văn bản đầu vào thành các danh mục khác nhau, ngoại trừ việc API này được thiết kế đặc biệt cho các mô hình liên quan đến Bert yêu cầu mã thông báo Từ ngữ và Câu văn bên ngoài mô hình TFLite.
Các tính năng chính của API BertNLClassifier
Lấy một chuỗi làm đầu vào, thực hiện phân loại với chuỗi và kết quả đầu ra
Thực hiện mã thông báo Từ ngữ hoặc Câu văn ngoài biểu đồ trên văn bản đầu vào.
Các mô hình BertNLClassifier được hỗ trợ
Các mô hình sau tương thích với API BertNLClassifier
.
Mô hình Bert được tạo bởi TensorFlow Lite Model Maker để phân loại văn bản .
Các mô hình tùy chỉnh đáp ứng các yêu cầu về khả năng tương thích của mô hình .
Chạy suy luận trong Java
Bước 1: Nhập phần phụ thuộc Gradle và các cài đặt khác
Sao chép tệp mô hình .tflite
vào thư mục nội dung của mô-đun Android nơi mô hình sẽ được chạy. Chỉ định rằng tệp sẽ 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 (NNAPI is included)
implementation 'org.tensorflow:tensorflow-lite-task-text:0.4.4'
}
Bước 2: Chạy suy luận bằng API
// Initialization
BertNLClassifierOptions options =
BertNLClassifierOptions.builder()
.setBaseOptions(BaseOptions.builder().setNumThreads(4).build())
.build();
BertNLClassifier classifier =
BertNLClassifier.createFromFileAndOptions(context, modelFile, options);
// Run inference
List<Category> results = classifier.classify(input);
Xem mã nguồn để biết thêm chi tiết.
Chạy suy luậ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 suy luận bằng API
// Initialization
let bertNLClassifier = TFLBertNLClassifier.bertNLClassifier(
modelPath: bertModelPath)
// Run inference
let categories = bertNLClassifier.classify(text: input)
Xem mã nguồn để biết thêm chi tiết.
Chạy suy luận trong C++
// Initialization
BertNLClassifierOptions options;
options.mutable_base_options()->mutable_model_file()->set_file_name(model_path);
std::unique_ptr<BertNLClassifier> classifier = BertNLClassifier::CreateFromOptions(options).value();
// Run inference with your input, `input_text`.
std::vector<core::Category> categories = classifier->Classify(input_text);
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
classifier = text.BertNLClassifier.create_from_file(model_path)
# Run inference
text_classification_result = classifier.classify(text)
Xem mã nguồn để biết thêm tùy chọn cấu hình BertNLClassifier
.
Kết quả ví dụ
Dưới đây là ví dụ về kết quả phân loại đánh giá phim sử dụng mô hình MobileBert từ Model Maker.
Đầu vào: "đó là một cuộc hành trình quyến rũ và thường ảnh hưởng"
Đầu ra:
category[0]: 'negative' : '0.00006'
category[1]: 'positive' : '0.99994'
Hãy dùng thử công cụ demo CLI đơn giản cho BertNLClassifier với mô hình và dữ liệu thử nghiệm của riêng bạn.
Yêu cầu tương thích mô hình
API BetNLClassifier
yêu cầu mô hình TFLite với Siêu dữ liệu mô hình TFLite bắt buộc.
Siêu dữ liệu phải đáp ứng các yêu cầu sau:
input_process_units cho Trình mã hóa từ/câu
3 tensor đầu vào có tên "ids", "mask" và "segment_ids" cho đầu ra của mã thông báo
1 tensor đầu ra loại float32, với tệp nhãn được đính kèm tùy chọn. Nếu tệp nhãn được đính kèm, tệp phải là tệp văn bản thuần túy với một nhãn trên mỗi dòng và số lượng nhãn phải khớp với số danh mục mà mô hình xuất ra.