Dynamic-TinyBERT

Intel
Pregunta y respuesta

Dynamic-TinyBERT ha sido ajustado para la tarea de procesamiento de lenguaje natural (NLP) de respuesta a preguntas, entrenado en el dataset SQuAD 1.1. Dynamic-TinyBERT es un modelo TinyBERT que utiliza la reducción de longitud de secuencia y la optimización de hiperparámetros para mejorar la eficiencia de inferencia según cualquier presupuesto computacional. Dynamic-TinyBERT se entrena solo una vez, desempeñándose a la par con BERT y logrando una compensación precisión-velocidad superior a cualquier otro enfoque eficiente (hasta 3.3x con <1% de pérdida).

Como usar

Aquí se explica cómo importar este modelo en Python:

import torch
from transformers import AutoTokenizer, AutoModelForQuestionAnswering

tokenizer = AutoTokenizer.from_pretrained("Intel/dynamic_tinybert")
model = AutoModelForQuestionAnswering.from_pretrained("Intel/dynamic_tinybert")

context = "recuerda el número 123456, te lo preguntaré más tarde."
question = "¿Cuál es el número que te dije?"

# Tokenizar el contexto y la pregunta
tokens = tokenizer.encode_plus(question, context, return_tensors="pt", truncation=True)

# Obtener las IDs de entrada y la máscara de atención
input_ids = tokens["input_ids"]
attention_mask = tokens["attention_mask"]

# Realizar la respuesta a preguntas
outputs = model(input_ids, attention_mask=attention_mask)
start_scores = outputs.start_logits
end_scores = outputs.end_logits

# Encontrar las posiciones de inicio y fin de la respuesta
answer_start = torch.argmax(start_scores)
answer_end = torch.argmax(end_scores) + 1
answer = tokenizer.convert_tokens_to_string(tokenizer.convert_ids_to_tokens(input_ids[0][answer_start:answer_end]))

# Imprimir la respuesta
print("Respuesta:", answer)

Funcionalidades

Optimización de hiperparámetros
Reducción de longitud de secuencia
Eficiencia mejorada de inferencia
Modelo TinyBERT6L con 6 capas, tamaño oculto de 768, tamaño de feedforward de 3072 y 12 cabezas
Utiliza el dataset SQuAD 1.1, que incluye artículos de Wikipedia

Casos de uso

Responder preguntas basadas en un corpus de texto
Utilización en tareas de comprensión de lecturas
No debe ser usado para crear intencionalmente ambientes hostiles o alienantes para las personas