La API de BertNLClassifier
de la Biblioteca de tareas es muy similar a NLClassifier
.
que clasifica el texto de entrada en diferentes categorías, con la excepción de que esta API
especialmente diseñadas para modelos relacionados con BERT que requieren Wordpiece y
Asignación de tokens de oraciones fuera del modelo de TFLite.
Funciones clave de la API de BertNLClassifier
Toma una sola cadena como entrada, realiza la clasificación con la cadena y resultados <label, score=""> como resultados de clasificación.</label,>
Lleva a cabo Wordpiece fuera del gráfico. o Oración las asignaciones de token en el texto de entrada.
Modelos BertNLClassifier compatibles
Los siguientes modelos son compatibles con la API de BertNLClassifier
.
Modelos BERT creados por TensorFlow Lite Model Maker para texto Clasificación.
Modelos personalizados que cumplen con la compatibilidad de modelos empresariales y de seguridad.
Ejecuta inferencias en Java
Paso 1: Importa la dependencia de Gradle y otros parámetros de configuración
Copia el archivo de modelo .tflite
en el directorio de recursos del módulo de Android.
en la que se ejecutará el modelo. Especificar que el archivo no debe comprimirse
agrega la biblioteca de TensorFlow Lite al archivo build.gradle
del módulo:
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'
}
Paso 2: Ejecuta la inferencia con la 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);
Consulta la fuente código para obtener más información.
Ejecuta la inferencia en Swift
Paso 1: Importa CocoaPods
Agrega el pod de TensorFlowLiteTaskText en el Podfile
target 'MySwiftAppWithTaskAPI' do
use_frameworks!
pod 'TensorFlowLiteTaskText', '~> 0.4.4'
end
Paso 2: Ejecuta la inferencia con la API
// Initialization
let bertNLClassifier = TFLBertNLClassifier.bertNLClassifier(
modelPath: bertModelPath)
// Run inference
let categories = bertNLClassifier.classify(text: input)
Consulta la fuente código para obtener más información.
Ejecuta inferencias en 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);
Consulta la fuente código para obtener más información.
Ejecuta la inferencia en Python
Paso 1: Instala el paquete pip
pip install tflite-support
Paso 2: Usa el modelo
# Imports
from tflite_support.task import text
# Initialization
classifier = text.BertNLClassifier.create_from_file(model_path)
# Run inference
text_classification_result = classifier.classify(text)
Consulta la fuente
código
si quieres obtener más opciones para configurar BertNLClassifier
.
Resultados de ejemplo
A continuación, se muestra un ejemplo de los resultados de clasificación de reseñas de películas mediante el uso de MobileBert de Model Maker.
Entrada: "Es un viaje encantador y conmovedor"
Resultado:
category[0]: 'negative' : '0.00006'
category[1]: 'positive' : '0.99994'
Prueba la sencilla herramienta de demostración de CLI para BertNLClassifier con tu propio modelo y datos de prueba.
Requisitos de compatibilidad del modelo
La API de BetNLClassifier
espera un modelo de TFLite con el modelo de TFLite obligatorio
Metadatos.
Los metadatos deben cumplir con los siguientes requisitos:
input_process_units para el tokenizador de Wordpiece/Sentencepiece
3 tensores de entrada con nombres “ids” y “mask” y "segment_ids" para la salida de el tokenizador
1 tensor de salida de tipo float32, con un archivo de etiquetas adjunto opcionalmente. Si un se adjuntó el archivo de etiquetas, debe ser un archivo de texto sin formato con una etiqueta por línea y el número de etiquetas debe coincidir con el número de categorías como los resultados del modelo.