BERT SQuADによる質問応答
BERT SQuADによる質問応答チュートリアル
Section titled “BERT SQuADによる質問応答チュートリアル”このチュートリアルでは、ONNX Runtimeを使用して、事前学習済みのBERT SQuADモデルで質問応答を実行する方法を示します。
- ONNX Runtimeがインストールされていること
- Hugging Face Transformersライブラリがインストールされていること
- Hugging FaceモデルハブからBERT SQuAD ONNXモデルをダウンロードしていること
BERT SQuAD ONNXモデルのダウンロード
Section titled “BERT SQuAD ONNXモデルのダウンロード”Hugging FaceモデルハブからBERT SQuAD ONNXモデルをダウンロードできます。
wget https://huggingface.co/distilbert-base-cased-distilled-squad/resolve/main/onnx/model.onnx次のPythonスクリプトは、ONNX Runtimeを使用して質問応答を実行する方法を示しています。
import onnxruntimefrom transformers import BertTokenizerimport numpy as np
# ONNXモデルをロードsession = onnxruntime.InferenceSession("model.onnx")
# トークナイザをロードtokenizer = BertTokenizer.from_pretrained("distilbert-base-cased-distilled-squad")
# 質問とコンテキストを定義question = "ONNX Runtimeとは何ですか?"context = "ONNX Runtimeは、ONNXモデルを運用環境にデプロイするための高性能な推論エンジンです。"
# 入力をトークン化inputs = tokenizer(question, context, return_tensors="np")
# 入力名を取得input_names = [input.name for input in session.get_inputs()]
# 推論を実行result = session.run(None, dict(inputs))
# 出力を処理start_scores, end_scores = resultstart_index = np.argmax(start_scores)end_index = np.argmax(end_scores)answer = tokenizer.convert_tokens_to_string(tokenizer.convert_ids_to_tokens(inputs["input_ids"][0][start_index:end_index+1]))
# 回答を出力print(answer)このスクリプトは、質問とコンテキストをトークン化し、ONNX Runtimeを使用して推論を実行し、回答を出力します。