madlag/bert-large-uncased-wwm-squadv2-x2.15-f83.2-d25-hybrid-v1

madlag
Pregunta y respuesta

El modelo 'bert-large-uncased-whole-word-masking' afinado en SQuAD v2. Este modelo fue creado utilizando la librería python nn_pruning: las capas lineales contienen el 25.0% de los pesos originales. El modelo contiene el 32.0% de los pesos originales en general (las embeddings representan una parte significativa del modelo y no son podadas por este método). Con un simple redimensionamiento de las matrices lineales, se ejecutó 2.15x más rápido que 'bert-large-uncased-whole-word-masking' en la evaluación. Esto es posible porque el método de poda llevó a matrices estructuradas. En términos de precisión, su F1 es 83.22, en comparación con 85.85 de 'bert-large-uncased-whole-word-masking', una caída de F1 de 2.63.

Como usar

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

pip install nn_pruning

Luego, puede usar la biblioteca transformers casi como de costumbre: simplemente tiene que llamar a optimize_model cuando se haya cargado el pipeline.

from transformers import pipeline
from nn_pruning.inference_model_patcher import optimize_model

qa_pipeline = pipeline(
"question-answering",
model="madlag/bert-large-uncased-wwm-squadv2-x2.15-f83.2-d25-hybrid-v1",
tokenizer="madlag/bert-large-uncased-wwm-squadv2-x2.15-f83.2-d25-hybrid-v1")

print("bert-large-uncased-whole-word-masking parameters: 497.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 afinado usando nn_pruning.
Las capas lineales contienen el 25% de los pesos originales.
El modelo contiene el 32% de los pesos originales en general.
Corre 2.15x más rápido que el modelo original.
F1 de 83.22 en comparación con 85.85 del modelo original.

Casos de uso

Responder preguntas basadas en el contexto proporcionado.
Extraer información relevante de textos en inglés.