DistilBERT base cased distilled SQuAD

distilbert
Pregunta y respuesta

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.

Recibe las últimas noticias y actualizaciones sobre el mundo de IA directamente en tu bandeja de entrada.