madlag/bert-base-uncased-squadv1-x1.16-f88.1-d8-unstruct-v1

madlag
Pregunta y respuesta

Modelo BERT-base sin mayúsculas afinado en SQuAD v1. Este modelo fue creado utilizando la biblioteca de Python nn_pruning: las capas lineales contienen un 8.0% de los pesos originales. En general, el modelo contiene el 28.0% de los pesos originales (las incrustaciones representan una parte significativa del modelo y no son podadas por este método). Con un simple redimensionamiento de las matrices lineales, funcionó 1.16x más rápido que bert-base-uncased en la evaluación. Esto es posible porque el método de poda condujo a matrices estructuradas.

Como usar

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

pip install nn_pruning

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

from transformers import pipeline
from nn_pruning.inference_model_patcher import optimize_model

qa_pipeline = pipeline(
"question-answering",
model="madlag/bert-base-uncased-squadv1-x1.16-f88.1-d8-unstruct-v1",
tokenizer="madlag/bert-base-uncased-squadv1-x1.16-f88.1-d8-unstruct-v1")

print("bert-base-uncased parameters: 152.0M")
print(f"Parameters count (includes only head pruning, not feed forward pruning)={int(qa_pipeline.model.num_parameters() / 1E6)}M")
qa_pipeline.model = optimize_model(qa_pipeline.model, "dense")

print(f"Parameters count after complete optimization={int(qa_pipeline.model.num_parameters() / 1E6)}M")
predictions = qa_pipeline({
'context': "Frédéric François Chopin, born Fryderyk Franciszek Chopin (1 March 1810 – 17 October 1849), was a Polish composer and virtuoso pianist of the Romantic era who wrote primarily for solo piano.",
'question': "Who is Frederic Chopin?",
})
print("Predictions", predictions)

Funcionalidades

Modelo BERT-base sin mayúsculas afinado en SQuAD v1
Las capas lineales contienen un 8.0% de los pesos originales
El modelo contiene el 28.0% de los pesos originales
Redimensionamiento simple de las matrices lineales
Método de poda que lleva a matrices estructuradas
Precisión de F1 es 88.11 comparado con 88.5 de bert-base-uncased (una caída de F1 de 0.39)
Modelo insensible a mayúsculas: no hace diferencia entre 'english' y 'English'
22 cabezas de atención fueron removidas (15.3% del total de 144 cabezas)

Casos de uso

Respuesta a preguntas
Optimización de modelos BERT mediante poda de pesos