API BertNLClassifier
của Thư viện tác vụ rất giống với NLClassifier
giúp phân loại văn bản đầu vào thành nhiều danh mục, ngoại trừ API này
được thiết kế đặc biệt cho các mô hình liên quan đến Bert có yêu cầu Wordware và
Mã hoá từng câu bên ngoài mô hình TFLite.
Các tính năng chính của BertNLClassifier API
Lấy một chuỗi đơn làm dữ liệu đầu vào, thực hiện phân loại bằng chuỗi và cho ra <label, score=""> làm kết quả phân loại.</label,>
Thực hiện từ vựng ngoài đồ thị hoặc Đoạn câu mã hoá trên văn bản đầu vào.
Các mô hình BertNLClassifier được hỗ trợ
Các mô hình sau đây tương thích với API BertNLClassifier
.
Mô hình Bert do Trình tạo mô hình TensorFlow Lite tạo cho văn bản Phân loại.
Các mô hình tuỳ chỉnh đáp ứng khả năng tương thích của 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
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 nguồn mã để 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 bertNLClassifier = TFLBertNLClassifier.bertNLClassifier(
modelPath: bertModelPath)
// Run inference
let categories = bertNLClassifier.classify(text: input)
Xem nguồn mã để biết thêm chi tiết.
Chạy dự đoá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 nguồn mã để 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 nguồn
mã
để có thêm lựa chọn để định cấu hình BertNLClassifier
.
Kết quả mẫu
Dưới đây là ví dụ về kết quả phân loại các bài đánh giá phim bằng cách sử dụng Mô hình MobileBert từ Model Maker.
Mục nhập: "Đó là một hành trình thú vị và thường ảnh hưởng đến hành trình"
Kết quả:
category[0]: 'negative' : '0.00006'
category[1]: 'positive' : '0.99994'
Hãy thử công cụ minh hoạ CLI đơn giản cho BertNLClassifier 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 BetNLClassifier
dự kiến sẽ có mô hình TFLite với Mô hình TFLite bắt buộc
Siêu dữ liệu.
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 ghi âm
3 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
1 tensor đầu ra thuộc loại float32, có tệp nhãn đính kèm không bắt buộc. Nếu một tệp nhãn được đính kèm, tệp này phải là tệp văn bản thuần tuý có một nhãn trên mỗi dòng và số lượng nhãn phải khớp với số lượng danh mục đầu ra của mô hình.