echarlaix/bert-base-uncased-sst2-acc91.1-d37-hybrid

echarlaix
Clasificación de texto

Modelo bert-base-uncased ajustado con el conjunto de datos SST-2. Este modelo fue creado utilizando la biblioteca python nn_pruning: las capas lineales contienen el 37% de los pesos originales. El modelo contiene el 51% de los pesos originales en general (las embeddings representan una parte significativa del modelo y no se podan con este método). Su precisión es del 91.17%.

Como usar

Instala nn_pruning: contiene el script de optimización, que simplemente empaqueta las capas lineales en otras más pequeñas al eliminar filas/columnas vacías.

pip install nn_pruning

Luego puedes usar la biblioteca transformers casi como de costumbre: solo tienes que llamar a optimize_model cuando el pipeline se haya cargado.

from transformers import pipeline
from nn_pruning.inference_model_patcher import optimize_model

cls_pipeline = pipeline(
"text-classification",
model="echarlaix/bert-base-uncased-sst2-acc91.1-d37-hybrid",
tokenizer="echarlaix/bert-base-uncased-sst2-acc91.1-d37-hybrid",
)

print(f"Cantidad de parámetros (incluye solo la poda de cabezas, sin poda de feed forward)={int(cls_pipeline.model.num_parameters() / 1E6)}M")
cls_pipeline.model = optimize_model(cls_pipeline.model, "dense")
print(f"Cantidad de parámetros después de la optimización={int(cls_pipeline.model.num_parameters() / 1E6)}M")
predictions = cls_pipeline("This restaurant is awesome")
print(predictions)

Funcionalidades

Ajustado a partir del punto de control del modelo HuggingFace
Destilado del modelo textattack/bert-base-uncased-SST-2
Modelo insensible a mayúsculas y minúsculas
Método de poda de bloques elimina algunas cabezas de atención
Tamaño de archivo del modelo Pytorch: 351MB

Casos de uso

Clasificación de texto
Análisis de sentimientos