コンテンツにスキップ

Hugging Faceモデル

Hugging Faceモデルチュートリアル

Section titled “Hugging Faceモデルチュートリアル”

このチュートリアルでは、ONNX Runtimeを使用してHugging Faceモデルハブの事前学習済みモデルを実行する方法を示します。

Hugging FaceモデルをONNXにエクスポートする

Section titled “Hugging FaceモデルをONNXにエクスポートする”

Hugging Face Transformersモデルは、optimum-cliツールを使用してONNX形式にエクスポートできます。

Terminal window
optimum-cli export onnx --model distilbert-base-cased-distilled-squad distilbert-squad-onnx

これにより、distilbert-squad-onnxディレクトリにmodel.onnxファイルが作成されます。

ONNXモデルは、ONNX Runtimeを使用して実行できます。

import onnxruntime
from transformers import AutoTokenizer
import numpy as np
# ONNXモデルをロード
session = onnxruntime.InferenceSession("distilbert-squad-onnx/model.onnx")
# トークナイザをロード
tokenizer = AutoTokenizer.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 = result
start_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を使用して推論を実行し、回答を出力します。