bert-base-cased-ONNX-ORT / README_ja.md
ayousanz's picture
Add ONNX and ORT models with quantization
c1e370a verified
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を作成するかプルリクエストを送ってください。