File size: 3,395 Bytes
c1e370a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
---
license: apache-2.0
tags:
- onnx
- ort
---
# [google-bert/bert-base-cased](https://huggingface.co/google-bert/bert-base-cased) のONNXおよびORTモデルと量子化モデル
[Click here for the English README](README.md)
このリポジトリは、元のモデル [google-bert/bert-base-cased](https://huggingface.co/google-bert/bert-base-cased) をONNXおよびORT形式に変換し、さらに量子化したものです。
## ライセンス
このモデルのライセンスは「apache-2.0」です。詳細は元のモデルページ([google-bert/bert-base-cased](https://huggingface.co/google-bert/bert-base-cased))を参照してください。
## 使い方
このモデルを使用するには、ONNX Runtimeをインストールし、以下のように推論を行います。
```python
# サンプルコード
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](https://huggingface.co/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](https://huggingface.co/google-bert/bert-base-cased) のライセンスおよび使用条件を遵守してください。
## 貢献
問題や改善点があれば、Issueを作成するかプルリクエストを送ってください。
|