DistilBERT base cased distilled SQuAD
El modelo DistilBERT fue propuesto en la publicación del blog 'Más pequeño, más rápido, más barato, más ligero: Presentando DistilBERT', una versión destilada de BERT, y el artículo 'DistilBERT, una versión destilada de BERT: más pequeño, más rápido, más barato y más ligero'. DistilBERT es un modelo Transformer pequeño, rápido, barato y ligero entrenado mediante la destilación de BERT base. Tiene un 40% menos de parámetros que bert-base-uncased, funciona un 60% más rápido mientras preserva más del 95% del rendimiento de BERT medido en el benchmark de comprensión del lenguaje GLUE. Este modelo es un punto de control de ajuste fino de DistilBERT-base-cased, ajustado utilizando (un segundo paso de) destilación del conocimiento en SQuAD v1.1.
Como usar
from transformers import pipeline
question_answerer = pipeline('question-answering', model='distilbert-base-cased-distilled-squad')
context = r"""
... El cuestionamiento extractivo es la tarea de extraer una respuesta de un texto dada una pregunta. Un ejemplo de
... conjunto de datos de cuestionamiento es el conjunto de datos SQuAD, que se basa completamente en esa tarea. Si desea ajustar
... un modelo en una tarea de SQuAD, puede aprovechar el script examples/pytorch/question-answering/run_squad.py.
... """
result = question_answerer(question="¿Cuál es un buen ejemplo de un conjunto de datos de cuestionamiento?", context=context)
print(f"Respuesta: '{result['answer']}', puntuación: {round(result['score'], 4)}, inicio: {result['start']}, fin: {result['end']}")
Respuesta: 'conjunto de datos SQuAD', puntuación: 0.5152, inicio: 147, fin: 160
from transformers import DistilBertTokenizer, DistilBertModel
import torch
tokenizer = DistilBertTokenizer.from_pretrained('distilbert-base-cased-distilled-squad')
model = DistilBertModel.from_pretrained('distilbert-base-cased-distilled-squad')
question, text = "¿Quién era Jim Henson?", "Jim Henson era un buen muñeco"
inputs = tokenizer(question, text, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
print(outputs)
from transformers import DistilBertTokenizer, TFDistilBertForQuestionAnswering
import tensorflow as tf
tokenizer = DistilBertTokenizer.from_pretrained('distilbert-base-cased-distilled-squad')
model = TFDistilBertForQuestionAnswering.from_pretrained('distilbert-base-cased-distilled-squad')
question, text = "¿Quién era Jim Henson?", "Jim Henson era un buen muñeco"
inputs = tokenizer(question, text, return_tensors="tf")
outputs = model(**inputs)
answer_start_index = int(tf.math.argmax(outputs.start_logits, axis=-1)[0])
answer_end_index = int(tf.math.argmax(outputs.end_logits, axis=-1)[0])
predict_answer_tokens = inputs.input_ids[0, answer_start_index : answer_end_index + 1]
tokenizer.decode(predict_answer_tokens)
Funcionalidades
- Modelo Transformer pequeño, rápido, barato y ligero
- 40% menos de parámetros que bert-base-uncased
- Funciona un 60% más rápido
- Preserva más del 95% del rendimiento de BERT
Casos de uso
- Este modelo puede ser utilizado para responder preguntas.
- No debe ser utilizado para crear intencionalmente entornos hostiles o alienantes para las personas.
- No fue entrenado para representar de manera factual o verdadera a personas o eventos.