metadata
license: apache-2.0
tags:
- onnx
- ort
google-bert/bert-base-cased のONNXおよびORTモデルと量子化モデル
Click here for the English README
このリポジトリは、元のモデル google-bert/bert-base-cased をONNXおよびORT形式に変換し、さらに量子化したものです。
ライセンス
このモデルのライセンスは「apache-2.0」です。詳細は元のモデルページ(google-bert/bert-base-cased)を参照してください。
使い方
このモデルを使用するには、ONNX Runtimeをインストールし、以下のように推論を行います。
# サンプルコード
import onnxruntime as ort
import numpy as np
from transformers import AutoTokenizer
import os
# トークナイザーの読み込み
tokenizer = AutoTokenizer.from_pretrained('google-bert/bert-base-cased')
# 入力の準備
text = 'ここに入力テキストを置き換えてください。'
inputs = tokenizer(text, return_tensors='np')
# 使用するモデルのパスを指定
# ONNXモデルとORTモデルの両方をテストする
model_paths = [
'onnx_models/model_opt.onnx', # ONNXモデル
'ort_models/model.ort' # ORTフォーマットのモデル
]
# モデルごとに推論を実行
for model_path in model_paths:
print(f'\n===== Using model: {model_path} =====')
# モデルの拡張子を取得
model_extension = os.path.splitext(model_path)[1]
# モデルの読み込み
if model_extension == '.ort':
# ORTフォーマットのモデルをロード
session = ort.InferenceSession(model_path, providers=['CPUExecutionProvider'])
else:
# ONNXモデルをロード
session = ort.InferenceSession(model_path)
# 推論の実行
outputs = session.run(None, dict(inputs))
# 出力の形状を表示
for idx, output in enumerate(outputs):
print(f'Output {idx} shape: {output.shape}')
# 結果の表示(必要に応じて処理を追加)
print(outputs)
モデルの内容
このリポジトリには、以下のモデルが含まれています。
ONNXモデル
onnx_models/model.onnx
: google-bert/bert-base-cased から変換された元のONNXモデルonnx_models/model_opt.onnx
: 最適化されたONNXモデルonnx_models/model_fp16.onnx
: FP16による量子化モデルonnx_models/model_int8.onnx
: INT8による量子化モデルonnx_models/model_uint8.onnx
: UINT8による量子化モデル
ORTモデル
ort_models/model.ort
: 最適化されたONNXモデルを使用したORTモデルort_models/model_fp16.ort
: FP16量子化モデルを使用したORTモデルort_models/model_int8.ort
: INT8量子化モデルを使用したORTモデルort_models/model_uint8.ort
: UINT8量子化モデルを使用したORTモデル
注意事項
元のモデル google-bert/bert-base-cased のライセンスおよび使用条件を遵守してください。
貢献
問題や改善点があれば、Issueを作成するかプルリクエストを送ってください。