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