Task Library BertNLClassifier
API คล้ายกับ NLClassifier
มาก
ที่จำแนกข้อความอินพุตเป็นหมวดหมู่ต่างๆ ยกเว้นว่า API นี้
ออกแบบมาโดยเฉพาะสำหรับโมเดลที่เกี่ยวข้องกับ Bert ซึ่งต้องใช้ Word
การแปลงข้อมูลเป็นโทเค็นจากประโยคนอกโมเดล TFLite
ฟีเจอร์สำคัญของ BertNLClassifier API
ใช้สตริงเดียวเป็นอินพุต ดำเนินการจำแนกประเภทกับสตริงและ เอาต์พุต <label, score=""> คู่กันเป็นผลลัพธ์การจัดประเภท</label,>
แสดง Wordpress นอกกราฟ หรือ ประโยคสั้นๆ การแปลงข้อมูลเป็นโทเค็นในข้อความที่ป้อน
รุ่น BertNLClassifier ที่รองรับ
รุ่นต่อไปนี้เข้ากันได้กับ BertNLClassifier
API
โมเดลของ Bert ที่สร้างโดย TensorFlow Lite Model Maker สำหรับข้อความ การจัดประเภท
โมเดลที่กำหนดเองซึ่งเป็นไปตามความเข้ากันได้ของโมเดล ข้อกำหนด
เรียกใช้การอนุมานใน Java
ขั้นตอนที่ 1: นำเข้าการอ้างอิง Gradle และการตั้งค่าอื่นๆ
คัดลอกไฟล์โมเดล .tflite
ไปยังไดเรกทอรี Asset ของโมดูล Android
ตำแหน่งที่โมเดลจะทำงาน ระบุว่าไม่ควรบีบอัดไฟล์ และ
เพิ่มไลบรารี TensorFlow Lite ลงในไฟล์ 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.4.4'
}
ขั้นตอนที่ 2: เรียกใช้การอนุมานโดยใช้ 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);
ดูแหล่งที่มา โค้ด เพื่อดูรายละเอียดเพิ่มเติม
เรียกใช้การอนุมานใน Swift
ขั้นตอนที่ 1: นำเข้า CocoaPods
เพิ่มพ็อด TensorFlowLiteTaskText ใน Podfile
target 'MySwiftAppWithTaskAPI' do
use_frameworks!
pod 'TensorFlowLiteTaskText', '~> 0.4.4'
end
ขั้นตอนที่ 2: เรียกใช้การอนุมานโดยใช้ API
// Initialization
let bertNLClassifier = TFLBertNLClassifier.bertNLClassifier(
modelPath: bertModelPath)
// Run inference
let categories = bertNLClassifier.classify(text: input)
ดูแหล่งที่มา โค้ด เพื่อดูรายละเอียดเพิ่มเติม
เรียกใช้การอนุมานใน 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);
ดูแหล่งที่มา โค้ด เพื่อดูรายละเอียดเพิ่มเติม
เรียกใช้การอนุมานใน Python
ขั้นตอนที่ 1: ติดตั้งแพ็กเกจ PIP
pip install tflite-support
ขั้นตอนที่ 2: การใช้โมเดล
# Imports
from tflite_support.task import text
# Initialization
classifier = text.BertNLClassifier.create_from_file(model_path)
# Run inference
text_classification_result = classifier.classify(text)
ดูแหล่งที่มา
โค้ด
เพื่อดูตัวเลือกเพิ่มเติมในการกำหนดค่า BertNLClassifier
ตัวอย่างผลการแข่ง
ต่อไปนี้เป็นตัวอย่างผลการจัดประเภทรีวิวภาพยนตร์ที่ใช้ โมเดล MobileBert จาก Model Maker
ป้อนข้อมูล: "เป็นเสน่ห์และมักส่งผลต่อการเดินทาง"
เอาต์พุต:
category[0]: 'negative' : '0.00006'
category[1]: 'positive' : '0.99994'
ลองใช้เครื่องมือสาธิต CLI สำหรับ BertNLClassifier กับโมเดลและข้อมูลทดสอบของคุณเอง
ข้อกำหนดความเข้ากันได้กับรุ่น
BetNLClassifier
API จำเป็นต้องมีโมเดล TFLite ที่มีโมเดล TFLite ที่จำเป็น
ข้อมูลเมตา
ข้อมูลเมตาควรเป็นไปตามข้อกำหนดต่อไปนี้
input_process_units สำหรับคำ/แปลงประโยคเป็นโทเค็น
Tensor อินพุต 3 รายการที่มีชื่อ "ID", "mask" และ "segment_ids" สำหรับเอาต์พุตของ เครื่องมือแปลงข้อมูลเป็นโทเค็น
1 Tensor เอาต์พุตของประเภท Float32 พร้อมไฟล์ป้ายกำกับที่แนบมาหรือไม่ก็ได้ หากมี แนบไฟล์ป้ายกำกับแล้ว ไฟล์ควรเป็นไฟล์ข้อความธรรมดาที่มีป้ายกำกับเดียว ต่อบรรทัด และจำนวนป้ายกำกับควรตรงกับจำนวนหมวดหมู่ตาม เอาต์พุตของโมเดล