madlag/bert-base-uncased-squadv1-x2.01-f89.2-d30-hybrid-rewind-opt-v1
Modelo BERT-base en minúsculas ajustado en SQuAD v1 utilizando la biblioteca de python nn_pruning: las capas lineales contienen el 30,0% de los pesos originales. Este modelo NO se puede usar sin la función optimize_model de nn_pruning, ya que usa NoNorms en lugar de LayerNorms y esto no es compatible actualmente con la biblioteca de Transformers. Utiliza ReLUs en lugar de GeLUs como en la red BERT inicial, para acelerar la inferencia. Esto no necesita un manejo especial, ya que es compatible con la biblioteca de Transformers y está marcado en la configuración del modelo por la entrada 'hidden_act': 'relu'. El modelo contiene el 45,0% de los pesos originales en general (las incrustaciones representan una parte significativa del modelo, y no son podadas por este método). Con un simple cambio de tamaño de las matrices lineales, corrió 2.01 veces más rápido que bert-base-uncased 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 89,19, en comparación con 88,5 para el bert-base-uncased, una ganancia de F1 de 0,69.
Como usar
from transformers import pipeline
from nn_pruning.inference_model_patcher import optimize_model
qa_pipeline = pipeline(
"question-answering",
model="madlag/bert-base-uncased-squadv1-x2.01-f89.2-d30-hybrid-rewind-opt-v1",
tokenizer="madlag/bert-base-uncased-squadv1-x2.01-f89.2-d30-hybrid-rewind-opt-v1")
print("bert-base-uncased parameters: 200.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 ajustado en SQuAD v1
- NoNorms en lugar de LayerNorms
- Utiliza ReLUs en lugar de GeLUs
- Contiene 45.0% de los pesos originales
- 2.01 veces más rápido en la evaluación
Casos de uso
- Responder a preguntas usando SQuAD1.1
- Evaluar la velocidad de inferencia en comparación con BERT estándar
- Demostrar optimización de modelos basada en poda