File size: 3,491 Bytes
3a546c8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
---


# [answerdotai/ModernBERT-large](https://huggingface.co/answerdotai/ModernBERT-large) のONNXおよびORTモデルと量子化モデル

[Click here for the English README](README.md)

このリポジトリは、元のモデル [answerdotai/ModernBERT-large](https://huggingface.co/answerdotai/ModernBERT-large) をONNXおよびORT形式に変換し、さらに量子化したものです。

## ライセンス
このモデルのライセンスは「apache-2.0」です。詳細は元のモデルページ([answerdotai/ModernBERT-large](https://huggingface.co/answerdotai/ModernBERT-large))を参照してください。

## 使い方
このモデルを使用するには、ONNX Runtimeをインストールし、以下のように推論を行います。
```python

# サンプルコード

import onnxruntime as ort

import numpy as np

from transformers import AutoTokenizer

import os



# トークナイザーの読み込み

tokenizer = AutoTokenizer.from_pretrained('answerdotai/ModernBERT-large')



# 入力の準備

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`: [answerdotai/ModernBERT-large](https://huggingface.co/answerdotai/ModernBERT-large) から変換された元の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モデル

## 注意事項
元のモデル [answerdotai/ModernBERT-large](https://huggingface.co/answerdotai/ModernBERT-large) のライセンスおよび使用条件を遵守してください。

## 貢献
問題や改善点があれば、Issueを作成するかプルリクエストを送ってください。