roberta_qa_japanese
tsmatz
Pregunta y respuesta
Este modelo es una versión afinada de rinna/japanese-roberta-base (modelo RoBERTa preentrenado proporcionado por rinna Co., Ltd.) entrenado para la respuesta a preguntas extractivas. El modelo está afinado en el conjunto de datos JaQuAD proporcionado por Skelter Labs, en el cual los datos se recopilan de artículos de Wikipedia en japonés y anotados por humanos.
Como usar
Cuando se ejecuta con una pipeline dedicada:
from transformers import pipeline
model_name = "tsmatz/roberta_qa_japanese"
qa_pipeline = pipeline(
"question-answering",
model=model_name,
tokenizer=model_name)
result = qa_pipeline(
question = "決勝トーナメントで日本に勝ったのはどこでしたか。",
context = "日本は予選リーグで強豪のドイツとスペインに勝って決勝トーナメントに進んだが、クロアチアと対戦して敗れた。",
align_to_words = False,
)
print(result)
Cuando se ejecuta manualmente a través de forward pass:
import torch
import numpy as np
from transformers import AutoModelForQuestionAnswering, AutoTokenizer
model_name = "tsmatz/roberta_qa_japanese"
model = (AutoModelForQuestionAnswering
.from_pretrained(model_name))
tokenizer = AutoTokenizer.from_pretrained(model_name)
def inference_answer(question, context):
question = question
context = context
test_feature = tokenizer(
question,
context,
max_length=318,
)
with torch.no_grad():
outputs = model(torch.tensor([test_feature["input_ids"]]))
start_logits = outputs.start_logits.cpu().numpy()
end_logits = outputs.end_logits.cpu().numpy()
answer_ids = test_feature["input_ids"][np.argmax(start_logits):np.argmax(end_logits)+1]
return "".join(tokenizer.batch_decode(answer_ids))
question = "決勝トーナメントで日本に勝ったのはどこでしたか。"
context = "日本は予選リーグで強豪のドイツとスペインに勝って決勝トーナメントに進んだが、クロアチアと対戦して敗れた。"
answer_pred = inference_answer(question, context)
print(answer_pred)
Funcionalidades
- Transformers
- PyTorch
- Safetensors
- RoBERTa
- Respuesta a preguntas
- Generado desde Trainer
- BERT
- JaQuAD
Casos de uso
- Respuesta a preguntas extractivas
- Búsqueda de información en artículos de Wikipedia japonesa
- Acceso rápido a datos anotados por humanos en japonés