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を作成するかプルリクエストを送ってください。