HelloSun commited on
Commit
69cbd51
·
verified ·
1 Parent(s): e149b3e

Upload folder using huggingface_hub

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +16 -0
  2. README.md +159 -0
  3. REPORT.md +143 -0
  4. examples/01_hanfu.png +3 -0
  5. examples/02_astronaut.png +3 -0
  6. examples/03_taipei.png +3 -0
  7. examples/04_shiba.png +3 -0
  8. examples/05_ink.png +3 -0
  9. generate5.py +267 -0
  10. inference_int4.py +115 -0
  11. model_index.json +49 -0
  12. openvino_config.json +67 -0
  13. outputs/01_hanfu_1024.png +3 -0
  14. outputs/01_hanfu_512.png +3 -0
  15. outputs/02_astronaut_1024.png +3 -0
  16. outputs/02_astronaut_512.png +3 -0
  17. outputs/03_taipei_1024.png +3 -0
  18. outputs/03_taipei_512.png +3 -0
  19. outputs/04_shiba_1024.png +3 -0
  20. outputs/04_shiba_512.png +3 -0
  21. outputs/05_ink_1024.png +3 -0
  22. outputs/05_ink_512.png +3 -0
  23. outputs/benchmark.json +79 -0
  24. outputs/benchmark_quantization.json +30 -0
  25. outputs/prompts.txt +10 -0
  26. quantize_int4.py +228 -0
  27. requirements.txt +15 -0
  28. scheduler/scheduler_config.json +18 -0
  29. text_encoder/config.json +25 -0
  30. text_encoder/openvino_model.bin +3 -0
  31. text_encoder/openvino_model.xml +0 -0
  32. text_encoder_2/config.json +25 -0
  33. text_encoder_2/openvino_model.bin +3 -0
  34. text_encoder_2/openvino_model.xml +0 -0
  35. text_encoder_3/config.json +31 -0
  36. text_encoder_3/openvino_model.bin +3 -0
  37. text_encoder_3/openvino_model.xml +0 -0
  38. tokenizer/merges.txt +0 -0
  39. tokenizer/openvino_detokenizer.bin +3 -0
  40. tokenizer/openvino_detokenizer.xml +378 -0
  41. tokenizer/openvino_tokenizer.bin +3 -0
  42. tokenizer/openvino_tokenizer.xml +995 -0
  43. tokenizer/special_tokens_map.json +30 -0
  44. tokenizer/tokenizer_config.json +31 -0
  45. tokenizer/vocab.json +0 -0
  46. tokenizer_2/merges.txt +0 -0
  47. tokenizer_2/openvino_detokenizer.bin +3 -0
  48. tokenizer_2/openvino_detokenizer.xml +378 -0
  49. tokenizer_2/openvino_tokenizer.bin +3 -0
  50. tokenizer_2/openvino_tokenizer.xml +995 -0
.gitattributes CHANGED
@@ -33,3 +33,19 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ tokenizer/tokenizer.json filter=lfs diff=lfs merge=lfs -text
37
+ examples/01_hanfu.png filter=lfs diff=lfs merge=lfs -text
38
+ examples/02_astronaut.png filter=lfs diff=lfs merge=lfs -text
39
+ examples/03_taipei.png filter=lfs diff=lfs merge=lfs -text
40
+ examples/04_shiba.png filter=lfs diff=lfs merge=lfs -text
41
+ examples/05_ink.png filter=lfs diff=lfs merge=lfs -text
42
+ outputs/01_hanfu_1024.png filter=lfs diff=lfs merge=lfs -text
43
+ outputs/01_hanfu_512.png filter=lfs diff=lfs merge=lfs -text
44
+ outputs/02_astronaut_1024.png filter=lfs diff=lfs merge=lfs -text
45
+ outputs/02_astronaut_512.png filter=lfs diff=lfs merge=lfs -text
46
+ outputs/03_taipei_1024.png filter=lfs diff=lfs merge=lfs -text
47
+ outputs/03_taipei_512.png filter=lfs diff=lfs merge=lfs -text
48
+ outputs/04_shiba_1024.png filter=lfs diff=lfs merge=lfs -text
49
+ outputs/04_shiba_512.png filter=lfs diff=lfs merge=lfs -text
50
+ outputs/05_ink_1024.png filter=lfs diff=lfs merge=lfs -text
51
+ outputs/05_ink_512.png filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,159 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: other
3
+ license_name: stabilityai-ai-community
4
+ license_link: https://huggingface.co/stabilityai/stable-diffusion-3.5-medium/blob/main/LICENSE.md
5
+ base_model: stabilityai/stable-diffusion-3.5-medium
6
+ library_name: optimum-intel
7
+ pipeline_tag: text-to-image
8
+ tags:
9
+ - text-to-image
10
+ - stable-diffusion
11
+ - stable-diffusion-3
12
+ - diffusers
13
+ - OpenVINO
14
+ - optimum-intel
15
+ - int4
16
+ - nncf
17
+ - sd3
18
+ ---
19
+
20
+ # SD3.5-medium OpenVINO INT4
21
+
22
+ ## SD3.5-medium OpenVINO INT4
23
+
24
+ OpenVINO + NNCF weight-only INT4 conversion of `stabilityai/stable-diffusion-3.5-medium`.
25
+
26
+ `transformer` + `text_encoder_3` (T5-XXL):
27
+ `OVWeightQuantizationConfig(bits=4, sym=False, group_size=128, group_size_fallback="adjust", ratio=1.0)`
28
+
29
+ rest: default INT8 (`OVWeightQuantizationConfig()` bits=8)
30
+
31
+ via `OVQuantizer` + `ov_config=OVConfig(quantization_config=OVPipelineQuantizationConfig(...))`
32
+
33
+ FP16 export: `optimum-cli export openvino -m stabilityai/stable-diffusion-3.5-medium --task text-to-image --library diffusers --weight-format fp16 sd3.5-medium-ov-fp16`
34
+
35
+ Inference params follow the **original SD3.5-medium model card**: 1024x1024, `num_inference_steps=40`, `guidance_scale=4.5`.
36
+ (The sibling `HelloSun/FLUX.2-klein-4B-OpenVINO-INT4` uses 4 steps / guidance 1.0 because FLUX.2-klein-4B is a 4-step distilled model. Do not copy those values here.)
37
+
38
+ Pinned env: `diffusers==0.37.1 transformers==4.57.6 tokenizers==0.22.0 huggingface-hub==0.35.1 optimum-intel==2.2.0 optimum==2.3.0 openvino==2026.4.0 nncf==3.4.0 torch pillow psutil sentencepiece accelerate`
39
+
40
+ > **License.** This is a derivative of `stabilityai/stable-diffusion-3.5-medium`, which is released under the
41
+ > **Stability AI Community License** (`license: other`), *not* Apache-2.0. Anyone redistributing or serving this
42
+ > repo must keep complying with the original Stability AI terms. See
43
+ > [LICENSE.md](https://huggingface.co/stabilityai/stable-diffusion-3.5-medium/blob/main/LICENSE.md).
44
+ > The base model is gated: accept the license on the Hub page before running the scripts.
45
+
46
+ ---
47
+
48
+ ## Examples (1024x1024, INT4, CPU)
49
+
50
+ ### 01_hanfu (seed 42)
51
+ ![01_hanfu](examples/01_hanfu.png)
52
+ `Young Chinese woman in red Hanfu, intricate embroidery, impeccable makeup, red floral forehead pattern, elaborate high bun, golden phoenix headdress, soft-lit outdoor night background, silhouetted tiered pagoda, blurred colorful distant lights, photorealistic, ultra detailed, 8k`
53
+
54
+ ### 02_astronaut (seed 43)
55
+ ![02_astronaut](examples/02_astronaut.png)
56
+ `Astronaut in a jungle, cold color palette, muted colors, detailed, 8k, photorealistic, cinematic lighting`
57
+
58
+ ### 03_taipei (seed 44)
59
+ ![03_taipei](examples/03_taipei.png)
60
+ `Cyberpunk street in Taipei at night, heavy rain, neon signs with text 'TAIPEI' and Chinese characters '台北', reflections on wet asphalt, crowded night market, cinematic, ultra detailed`
61
+
62
+ ### 04_shiba (seed 45)
63
+ ![04_shiba](examples/04_shiba.png)
64
+ `Cute Shiba Inu wearing a tiny astronaut helmet, sitting in a field of sunflowers under a starry sky, dreamy illustration, vibrant colors, high quality`
65
+
66
+ ### 05_ink (seed 46)
67
+ ![05_ink](examples/05_ink.png)
68
+ `Traditional Chinese ink wash landscape, misty mountains, a small pagoda on a cliff, cranes flying, minimalist, elegant, high aesthetic quality`
69
+
70
+ 512px resized controls are in `outputs/` (`*_512.png`), full timing in `outputs/benchmark.json`.
71
+
72
+ ---
73
+
74
+ ## 實驗數據
75
+
76
+ HW: Intel Xeon Platinum 8559C, 192 logical / 96 physical, OpenVINO 2026.4.0. Load+compile 8.72s, final RSS 3276.2MB.
77
+
78
+ | name | seed | steps | guidance | 總時間(s) | 平均單步(s) | peak RSS(MB) |
79
+ |---|---|---|---|---|---|---|
80
+ | 01_hanfu | 42 | 40 | 4.5 | 228.41 | 5.71 | 3276.2 |
81
+ | 02_astronaut | 43 | 40 | 4.5 | 228.58 | 5.71 | 3276.2 |
82
+ | 03_taipei | 44 | 40 | 4.5 | 224.70 | 5.62 | 3276.2 |
83
+ | 04_shiba | 45 | 40 | 4.5 | 222.18 | 5.55 | 3276.2 |
84
+ | 05_ink | 46 | 40 | 4.5 | 226.27 | 5.66 | 3276.2 |
85
+
86
+ Quantize: 68.55s. Sizes: FP16 transformer 4.60GB / text_encoder_3 8.87GB (15.17GB total) -> INT4 transformer 1.51GB / text_encoder_3 2.38GB (4.76GB total, ~3.19x).
87
+ 詳見 [REPORT.md](REPORT.md) + `outputs/benchmark.json` + `outputs/prompts.txt`.
88
+
89
+ ---
90
+
91
+ ## 用法
92
+
93
+ ```bash
94
+ pip install diffusers==0.37.1 transformers==4.57.6 tokenizers==0.22.0 huggingface-hub==0.35.1 \
95
+ optimum-intel==2.2.0 optimum==2.3.0 openvino==2026.4.0 nncf==3.4.0 torch pillow psutil sentencepiece accelerate
96
+ ```
97
+
98
+ ```python
99
+ from optimum.intel import OVDiffusionPipeline
100
+ import torch
101
+
102
+ pipe = OVDiffusionPipeline.from_pretrained("HelloSun/SD3.5-medium-OpenVINO-INT4", compile=True)
103
+ img = pipe(
104
+ prompt="Young Chinese woman in red Hanfu, intricate embroidery, ...",
105
+ num_inference_steps=40,
106
+ guidance_scale=4.5,
107
+ height=1024,
108
+ width=1024,
109
+ generator=torch.Generator().manual_seed(42),
110
+ ).images[0]
111
+ img.save("out.png")
112
+ ```
113
+
114
+ 或用本 repo 腳本:
115
+
116
+ ```bash
117
+ python inference_int4.py --prompt "Astronaut in a jungle, cold color palette, ..." --seed 43 --output out.png
118
+ python generate5.py # 複現 5 張 + benchmark.json/prompts.txt
119
+ python quantize_int4.py # FP16 導出 + INT4 量化(見 REPORT.md)
120
+ ```
121
+
122
+ **Speed note.** 40 steps at 1024x1024 is the original model card's setting, and it is slow on CPU. For a faster
123
+ preview: `--steps 28`, or `--width/--height 512`. Lowering steps below ~28 visibly degrades SD3.5-medium; it is not a
124
+ distilled few-step model like FLUX.2-klein-4B.
125
+
126
+ ---
127
+
128
+ ## 檔案結構
129
+
130
+ ```
131
+ ./ (INT4 模型: model_index.json, transformer/, text_encoder/, text_encoder_2/, text_encoder_3/,
132
+ vae_decoder/, vae_encoder/, scheduler/, tokenizer/, tokenizer_2/, tokenizer_3/, openvino_config.json)
133
+ README.md / REPORT.md
134
+ inference_int4.py / quantize_int4.py / generate5.py
135
+ examples/01_hanfu.png ... 05_ink.png (展示用, 同 outputs 1024)
136
+ outputs/benchmark.json / prompts.txt / benchmark_quantization.json / *_1024.png / *_512.png
137
+ ```
138
+
139
+ ---
140
+
141
+ ## 轉換細節
142
+
143
+ The base model is a `StableDiffusion3Pipeline` with **three** text encoders:
144
+
145
+ | component | class | approx. params | precision used here |
146
+ |---|---|---|---|
147
+ | `transformer` | `SD3Transformer2DModel` (MMDiT, 24 layers) | 2.5B | **INT4** |
148
+ | `text_encoder_3` | `T5EncoderModel` (T5-XXL) | 4.7B | **INT4** |
149
+ | `text_encoder` | `CLIPTextModelWithProjection` (CLIP-L) | 123M | INT8 |
150
+ | `text_encoder_2` | `CLIPTextModelWithProjection` (CLIP-G) | 694M | INT8 |
151
+ | `vae_decoder` / `vae_encoder` | `AutoencoderKL` | 84M | INT8 |
152
+
153
+ Only `text_encoder_3` goes to INT4, unlike the FLUX.2 reference where the single text encoder is T5. The two CLIP
154
+ encoders stay at INT8 on purpose: they are small, they dominate prompt fidelity, and per the optimum-intel docs,
155
+ "quantizing the rest of the diffusion pipeline does not significantly improve inference performance but could
156
+ potentially lead to substantial accuracy degradation."
157
+
158
+ `group_size_fallback="adjust"` matters for SD3: several MMDiT projections have shapes that are not divisible by 128,
159
+ and without it NNCF would silently skip those layers and leave them in FP16. See [REPORT.md](REPORT.md).
REPORT.md ADDED
@@ -0,0 +1,143 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # SD3.5-medium → OpenVINO INT4 轉換報告
2
+
3
+ 目標模型:`stabilityai/stable-diffusion-3.5-medium`(`StableDiffusion3Pipeline`)
4
+ 目標倉庫:`HelloSun/SD3.5-medium-OpenVINO-INT4`
5
+ 方法參考:`HelloSun/FLUX.2-klein-4B-OpenVINO-INT4`
6
+
7
+ ---
8
+
9
+ ## 1. 為什麼不能直接沿用 FLUX.2 的設定
10
+
11
+ | | FLUX.2-klein-4B | SD3.5-medium |
12
+ |---|---|---|
13
+ | pipeline | FluxPipeline | StableDiffusion3Pipeline |
14
+ | text encoder | 1 個(T5-XXL) | **3 個**:CLIP-L、CLIP-G、T5-XXL |
15
+ | transformer | FLUX transformer | `SD3Transformer2DModel`(MMDiT,24 層,joint_attention_dim 4096) |
16
+ | 原模型推論參數 | 1024, 4 steps, guidance 1.0 | 1024, **40 steps**, **guidance 4.5** |
17
+ | 架構 | distilled 4-step | flow-matching,非 distilled |
18
+ | 授權 | Apache-2.0 | **Stability AI Community License(`license: other`)** |
19
+
20
+ 兩點特別注意:
21
+
22
+ 1. **推論參數不能照抄。** FLUX.2-klein-4B 的 4 steps 是因為它本身是蒸餾後的少步模型。SD3.5-medium 是完整
23
+ flow-matching 模型,原 model card 用 40 steps。降到 28 以下畫質會明顯變差。
24
+ 2. **授權不能沿用 apache-2.0。** SD3.5-medium 是 `license: other` /
25
+ `stabilityai-ai-community`,衍生倉庫必須保留並遵守 Stability AI 條款。model card 的 YAML 與內文都必須反映這點。
26
+
27
+ ## 2. 元件與精度分配
28
+
29
+ 原始 pipeline 有三個 text encoder,所以 INT4 只打在最大的那一個:
30
+
31
+ | component | class | 約略參數量 | 精度 |
32
+ |---|---|---|---|
33
+ | `transformer` | SD3Transformer2DModel | 2.5B | **INT4** |
34
+ | `text_encoder_3` | T5EncoderModel (T5-XXL) | 4.7B | **INT4** |
35
+ | `text_encoder` | CLIPTextModelWithProjection (CLIP-L) | 123M | INT8 |
36
+ | `text_encoder_2` | CLIPTextModelWithProjection (CLIP-G) | 694M | INT8 |
37
+ | `vae_decoder` / `vae_encoder` | AutoencoderKL | 84M | INT8 |
38
+
39
+ 理由:T5-XXL FP16 約 9.5 GB,不壓 INT4 的話整體體積降不下來;而兩個 CLIP 很小,卻直接影響 prompt
40
+ 遵循度。optimum-intel 官方文件也註明擴散 pipeline 中其餘元件量化「不會顯著提升推論效能,反而可能造成
41
+ 實質的準確率退化」。
42
+
43
+ ## 3. 量化參數
44
+
45
+ ```python
46
+ OVPipelineQuantizationConfig(
47
+ quantization_configs={
48
+ "transformer": OVWeightQuantizationConfig(
49
+ bits=4, sym=False, group_size=128, group_size_fallback="adjust", ratio=1.0),
50
+ "text_encoder_3": OVWeightQuantizationConfig(
51
+ bits=4, sym=False, group_size=128, group_size_fallback="adjust", ratio=1.0),
52
+ },
53
+ default_config=OVWeightQuantizationConfig(bits=8),
54
+ )
55
+ ```
56
+
57
+ 透過 `OVQuantizer` + `ov_config=OVConfig(quantization_config=...)` 套用。
58
+
59
+ `group_size_fallback="adjust"` 對 SD3 特別重要。MMDiT 內有部分 projection 的維度無法被 128 整除;預設值是
60
+ `"ignore"`,那樣 NNCF 會**靜默跳過**那些層、讓它們留在 FP16,導致實際壓縮率不如預期。`"adjust"` 會把
61
+ group size 自動調到可整除的最大值(若連 32 都無法整除則退回 backup precision,預設 int8_asym)。
62
+
63
+ `ratio=1.0` 代表全部符合條件的層都壓到 INT4,不做混合精度。
64
+
65
+ ## 4. 執行步驟
66
+
67
+ ```bash
68
+ export HF_TOKEN=... # SD3.5-medium 是 gated,需先在 Hub 頁面接受授權
69
+
70
+ # 階段一:FP16 導出(約 16 GB,耗時最久)
71
+ python quantize_int4.py --export-only
72
+
73
+ # 階段二:INT4 量化
74
+ python quantize_int4.py --quantize-only
75
+
76
+ # 驗證 + 產生展示圖與 benchmark
77
+ python generate5.py
78
+ python inference_int4.py --prompt "Astronaut in a jungle, ..." --seed 43 --output out.png
79
+ ```
80
+
81
+ `quantize_int4.py` 會寫出 `benchmark_quantization.json`(導出耗時、量化耗時、FP16/INT4 體積、壓縮倍率)。
82
+ `generate5.py` 會寫出 `outputs/benchmark.json` + `outputs/prompts.txt`。把這兩個檔案裡的數字填回
83
+ `README.md` 的「實驗數據」表格。
84
+
85
+ ### 記憶體
86
+
87
+ 實測(Intel Xeon Platinum 8559C, 192 logical / 96 physical):
88
+
89
+ ```
90
+ FP16 IR: transformer 4.60GB / text_encoder_3 8.87GB / text_encoder 0.23GB /
91
+ text_encoder_2 1.30GB / vae 0.15GB (合計 15.17GB)
92
+ INT4: transformer 1.51GB / text_encoder_3 2.38GB / text_encoder 0.12GB /
93
+ text_encoder_2 0.65GB / vae 0.08GB (合計 4.76GB, ~3.19x)
94
+ 量化耗時 68.55s, 推論 peak RSS 3276.2MB (VmHWM), load+compile 8.72s
95
+ ```
96
+
97
+ 加上 `optimum-cli` 匯出時的轉換開銷,實務上需要 **32 GB 以上**可用 RAM。`quantize_int4.py` 傳入
98
+ `immediate_save=True`,讓每個子模型量化完立刻落盤並釋放,可以明顯降低尖峰記憶體,但量化完成後
99
+ in-memory pipeline 就不能用了(此腳本流程中不需要再用)。注意 `immediate_save=True` 會就地覆寫
100
+ 輸出目錄,腳本會自動把 FP16 IR 先複製過去;且 `TMPDIR` 必須與輸出目錄在同一檔案系統,
101
+ 否則 `rename()` 會報 `EXDEV Invalid cross-device link`。
102
+
103
+ ### 建議硬體
104
+
105
+ | | 最低 | 建議 |
106
+ |---|---|---|
107
+ | RAM(匯出 + 量化) | 32 GB | 64 GB |
108
+ | 磁碟 | 40 GB 可用 | 60 GB 可用 |
109
+ | 推論(40 steps, 1024²) | 很慢 | 96 實體核心以上(對照 FLUX 卡片:4 steps 約 35s) |
110
+
111
+ ## 5. 推論
112
+
113
+ ```python
114
+ from optimum.intel import OVDiffusionPipeline
115
+ import torch
116
+
117
+ pipe = OVDiffusionPipeline.from_pretrained("HelloSun/SD3.5-medium-OpenVINO-INT4", compile=True)
118
+ img = pipe(prompt=..., num_inference_steps=40, guidance_scale=4.5,
119
+ height=1024, width=1024,
120
+ generator=torch.Generator().manual_seed(42)).images[0]
121
+ ```
122
+
123
+ scheduler 為 `FlowMatchEulerDiscreteScheduler`,`shift=3.0` 直接取自原 repo 的
124
+ `scheduler/scheduler_config.json`,載入時會自動套用,不需要手動設定。
125
+
126
+ `inference_int4.py` 另外提供 `--stepsize`(預設 8)用來微調 shift,可在速度與畫質間取捨。
127
+
128
+ ## 6. 上傳
129
+
130
+ ```bash
131
+ export HF_TOKEN=... # 或 hf auth login;token 絕不寫進檔案
132
+ huggingface-cli upload HelloSun/SD3.5-medium-OpenVINO-INT4 SD3.5-medium-OpenVINO-INT4 --repo-type model
133
+ ```
134
+
135
+ `.gitignore` 已排除本地产物(`sd3.5-medium-ov-fp16/`、INT4 输出目录、`outputs/`),避免把十幾 GB 的
136
+ 權重誤commit進任何 git 倉庫。
137
+
138
+ ## 7. 待填項目
139
+
140
+ - [x] `README.md` 「Examples」區段的 5 張圖(`examples/*.png`, 2026-09-30 實測產生)
141
+ - [x] `README.md` 「實驗數據」的 HW 描述、Load+compile 時間、最終 RSS(8559C / 8.72s / 3276.2MB)
142
+ - [x] `README.md` 「實驗數據」的 5 列量測表(見 `outputs/benchmark.json`)
143
+ - [x] `README.md` / `REPORT.md` 的 FP16/INT4 體積與壓縮倍率、Quantize 耗時(15.17GB -> 4.76GB ~3.19x / 68.55s)
examples/01_hanfu.png ADDED

Git LFS Details

  • SHA256: 66bbd264c3cc308636d5624ab38605a14cee8d1f6ee02ebfb19bf3cf8f52fe67
  • Pointer size: 132 Bytes
  • Size of remote file: 1.63 MB
examples/02_astronaut.png ADDED

Git LFS Details

  • SHA256: aaa62e93d61df28d55adcb8c6bfab474270e60d5ed73024dcffddbc24fc1429c
  • Pointer size: 132 Bytes
  • Size of remote file: 1.63 MB
examples/03_taipei.png ADDED

Git LFS Details

  • SHA256: 8f7dc3cedcb9c608f8956113409401e7edf132f6b0db03a966d8cb01fdd7625d
  • Pointer size: 132 Bytes
  • Size of remote file: 1.85 MB
examples/04_shiba.png ADDED

Git LFS Details

  • SHA256: 99b4802df2620e4d439e5a0950c15b5c1241d4a3f60d8633d952b644791296e4
  • Pointer size: 132 Bytes
  • Size of remote file: 1.66 MB
examples/05_ink.png ADDED

Git LFS Details

  • SHA256: d9aa86796e3de0d989cc48d2fdcf0348b28a81d344a17910f404a5a282f8c973
  • Pointer size: 132 Bytes
  • Size of remote file: 1.62 MB
generate5.py ADDED
@@ -0,0 +1,267 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """Reproduce the 5 example images and write outputs/benchmark.json + outputs/prompts.txt.
3
+
4
+ Same layout as HelloSun/FLUX.2-klein-4B-OpenVINO-INT4 so the two model cards can be
5
+ compared side by side. Parameters follow the SD3.5-medium original model card:
6
+
7
+ 1024x1024, num_inference_steps=40, guidance_scale=4.5, seeds 42-46
8
+
9
+ Warning: 40 steps on CPU is the expensive part. On a 16 vCPU box expect minutes
10
+ per image, not seconds. Use --steps 28 for a quick pass, or --size 512 to
11
+ pre-flight the pipeline, then re-run at full settings for the published numbers.
12
+
13
+ Usage
14
+ -----
15
+ python generate5.py
16
+ python generate5.py --steps 28 --size 768 --outdir outputs_preview
17
+ """
18
+
19
+ from __future__ import annotations
20
+
21
+ import argparse
22
+ import json
23
+ import os
24
+ import platform
25
+ import threading
26
+ import time
27
+ from pathlib import Path
28
+
29
+ from PIL import Image
30
+
31
+ REPO_ID = "HelloSun/SD3.5-medium-OpenVINO-INT4"
32
+
33
+ # Original model card parameters.
34
+ DEFAULT_STEPS = 40
35
+ DEFAULT_GUIDANCE = 4.5
36
+ DEFAULT_SIZE = 1024
37
+
38
+ PROMPTS = [
39
+ (
40
+ "01_hanfu",
41
+ 42,
42
+ "Young Chinese woman in red Hanfu, intricate embroidery, impeccable makeup, "
43
+ "red floral forehead pattern, elaborate high bun, golden phoenix headdress, "
44
+ "soft-lit outdoor night background, silhouetted tiered pagoda, blurred colorful "
45
+ "distant lights, photorealistic, ultra detailed, 8k",
46
+ ),
47
+ (
48
+ "02_astronaut",
49
+ 43,
50
+ "Astronaut in a jungle, cold color palette, muted colors, detailed, "
51
+ "8k, photorealistic, cinematic lighting",
52
+ ),
53
+ (
54
+ "03_taipei",
55
+ 44,
56
+ "Cyberpunk street in Taipei at night, heavy rain, neon signs with text 'TAIPEI' "
57
+ "and Chinese characters '台北', reflections on wet asphalt, crowded night market, "
58
+ "cinematic, ultra detailed",
59
+ ),
60
+ (
61
+ "04_shiba",
62
+ 45,
63
+ "Cute Shiba Inu wearing a tiny astronaut helmet, sitting in a field of sunflowers "
64
+ "under a starry sky, dreamy illustration, vibrant colors, high quality",
65
+ ),
66
+ (
67
+ "05_ink",
68
+ 46,
69
+ "Traditional Chinese ink wash landscape, misty mountains, a small pagoda on a cliff, "
70
+ "cranes flying, minimalist, elegant, high aesthetic quality",
71
+ ),
72
+ ]
73
+
74
+
75
+ def _vmhwm_mb() -> float:
76
+ """Peak RSS high-water mark in MB from /proc. Exact, and dependency-free.
77
+
78
+ VmHWM is monotonic, so a single read at the end gives the true peak for the
79
+ whole process lifetime. Returns 0.0 if unavailable (non-Linux).
80
+ """
81
+ try:
82
+ for line in Path("/proc/self/status").read_text().splitlines():
83
+ if line.startswith("VmHWM:"):
84
+ return int(line.split()[1]) / 1024
85
+ except (OSError, ValueError, IndexError):
86
+ pass
87
+ return 0.0
88
+
89
+
90
+ class PeakRss:
91
+ """Tracks peak resident memory for this process.
92
+
93
+ Prefers the kernel's VmHWM counter (exact high-water mark, no sampling
94
+ error, no extra dependency). Falls back to sampling RSS via psutil only if
95
+ VmHWM is unavailable, and to 0.0 if neither works - in which case
96
+ `peak_rss_mb` is reported as 0 rather than being silently wrong.
97
+ """
98
+
99
+ def __init__(self, interval: float = 0.2) -> None:
100
+ self.interval = interval
101
+ self.peak_mb = 0.0
102
+ self.source = "none"
103
+ self._stop = threading.Event()
104
+ self._thread: threading.Thread | None = None
105
+
106
+ def _sample_psutil(self) -> None:
107
+ import psutil
108
+
109
+ proc = psutil.Process(os.getpid())
110
+ while not self._stop.is_set():
111
+ self.peak_mb = max(self.peak_mb, proc.memory_info().rss / 1024**2)
112
+ self._stop.wait(self.interval)
113
+
114
+ def _start(self) -> None:
115
+ if _vmhwm_mb() > 0.0:
116
+ self.source = "/proc/self/status VmHWM"
117
+ return
118
+ try:
119
+ import psutil # noqa: F401
120
+ except ImportError:
121
+ print(
122
+ "WARNING: no VmHWM and no psutil; peak_rss_mb will be reported as 0. "
123
+ "Install psutil to get memory numbers.",
124
+ flush=True,
125
+ )
126
+ return
127
+ self.source = "psutil sampled"
128
+ self._thread = threading.Thread(target=self._sample_psutil, daemon=True)
129
+ self._thread.start()
130
+
131
+ def _refresh(self) -> None:
132
+ # VmHWM is monotonic and authoritative, so always fold it in even when
133
+ # psutil sampling is the active source.
134
+ hwm = _vmhwm_mb()
135
+ if hwm > 0.0:
136
+ self.peak_mb = max(self.peak_mb, hwm)
137
+ elif self.source == "none":
138
+ self.source = "unavailable"
139
+
140
+ def __enter__(self) -> PeakRss:
141
+ self._start()
142
+ self._refresh()
143
+ return self
144
+
145
+ def __exit__(self, *exc) -> None:
146
+ self._stop.set()
147
+ if self._thread:
148
+ self._thread.join(timeout=2 * self.interval)
149
+ self._refresh()
150
+
151
+
152
+ def cpu_name() -> str:
153
+ try:
154
+ for line in Path("/proc/cpuinfo").read_text().splitlines():
155
+ if line.startswith("model name"):
156
+ return line.split(":", 1)[1].strip()
157
+ except OSError:
158
+ pass
159
+ return platform.processor() or "unknown"
160
+
161
+
162
+ def main() -> int:
163
+ parser = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
164
+ parser.add_argument("--model", default=REPO_ID, help="local path or Hub id")
165
+ parser.add_argument("--steps", type=int, default=DEFAULT_STEPS)
166
+ parser.add_argument("--guidance", type=float, default=DEFAULT_GUIDANCE)
167
+ parser.add_argument("--size", type=int, default=DEFAULT_SIZE)
168
+ parser.add_argument("--preview-size", type=int, default=512, help="0 disables the downscaled copies")
169
+ parser.add_argument("--outdir", type=Path, default=Path("outputs"))
170
+ parser.add_argument("--device", default="CPU")
171
+ parser.add_argument("--no-compile", action="store_true")
172
+ args = parser.parse_args()
173
+
174
+ import torch
175
+ from optimum.intel import OVDiffusionPipeline
176
+
177
+ args.outdir.mkdir(parents=True, exist_ok=True)
178
+
179
+ print(f"loading {args.model} ...", flush=True)
180
+ t0 = time.perf_counter()
181
+ pipe = OVDiffusionPipeline.from_pretrained(args.model, device=args.device, compile=not args.no_compile)
182
+ load_seconds = time.perf_counter() - t0
183
+ print(f"load+compile {load_seconds:.2f}s", flush=True)
184
+
185
+ try:
186
+ import openvino
187
+
188
+ ov_version = openvino.__version__
189
+ except Exception:
190
+ ov_version = "unknown"
191
+
192
+ results = []
193
+ with PeakRss() as rss:
194
+ for name, seed, prompt in PROMPTS:
195
+ print(f"--- {name} (seed {seed}) ---", flush=True)
196
+ started = time.perf_counter()
197
+ image = pipe(
198
+ prompt=prompt,
199
+ num_inference_steps=args.steps,
200
+ guidance_scale=args.guidance,
201
+ width=args.size,
202
+ height=args.size,
203
+ generator=torch.Generator().manual_seed(seed),
204
+ ).images[0]
205
+ elapsed = time.perf_counter() - started
206
+
207
+ image.save(args.outdir / f"{name}_{args.size}.png")
208
+ if args.preview_size:
209
+ try:
210
+ resample = Image.Resampling.LANCZOS # Pillow >= 9.1
211
+ except AttributeError:
212
+ resample = Image.LANCZOS # Pillow < 9.1
213
+ image.resize((args.preview_size, args.preview_size), resample).save(
214
+ args.outdir / f"{name}_{args.preview_size}.png"
215
+ )
216
+
217
+ entry = {
218
+ "name": name,
219
+ "seed": seed,
220
+ "steps": args.steps,
221
+ "guidance": args.guidance,
222
+ "size": f"{args.size}x{args.size}",
223
+ "total_seconds": round(elapsed, 2),
224
+ "seconds_per_step": round(elapsed / max(args.steps, 1), 2),
225
+ "peak_rss_mb": round(rss.peak_mb, 1),
226
+ "prompt": prompt,
227
+ }
228
+ results.append(entry)
229
+ print(json.dumps(entry, ensure_ascii=False), flush=True)
230
+
231
+ benchmark = {
232
+ "model_id": REPO_ID,
233
+ "hardware": {
234
+ "cpu": cpu_name(),
235
+ "logical_cores": os.cpu_count(),
236
+ "device": args.device,
237
+ },
238
+ "software": {
239
+ "openvino": ov_version,
240
+ "python": platform.python_version(),
241
+ "platform": platform.platform(),
242
+ },
243
+ "load_compile_seconds": round(load_seconds, 2),
244
+ "params": {
245
+ "num_inference_steps": args.steps,
246
+ "guidance_scale": args.guidance,
247
+ "height": args.size,
248
+ "width": args.size,
249
+ },
250
+ "results": results,
251
+ "peak_rss_mb": round(max(r["peak_rss_mb"] for r in results), 1),
252
+ "peak_rss_source": rss.source,
253
+ }
254
+ (args.outdir / "benchmark.json").write_text(
255
+ json.dumps(benchmark, indent=2, ensure_ascii=False) + "\n", encoding="utf-8"
256
+ )
257
+ (args.outdir / "prompts.txt").write_text(
258
+ "".join(f"{n}\tseed={s}\t{p}\n\n" for n, s, p in PROMPTS), encoding="utf-8"
259
+ )
260
+
261
+ print(f"\nwrote {args.outdir / 'benchmark.json'} and {args.outdir / 'prompts.txt'}", flush=True)
262
+ print("paste the table into README.md 實驗數據 when publishing.", flush=True)
263
+ return 0
264
+
265
+
266
+ if __name__ == "__main__":
267
+ raise SystemExit(main())
inference_int4.py ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """Generate one image with the INT4 OpenVINO build of stable-diffusion-3.5-medium.
3
+
4
+ Inference parameters follow the ORIGINAL model card, not the FLUX.2 reference:
5
+
6
+ stabilityai/stable-diffusion-3.5-medium
7
+ 1024x1024, num_inference_steps=40, guidance_scale=4.5
8
+
9
+ (FLUX.2-klein-4B-OpenVINO-INT4 uses 4 steps / guidance 1.0 because FLUX.2 is a
10
+ 4-step distilled model. SD3.5-medium is a full flow-matching model, so the step
11
+ count is 10x higher. The scheduler shift of 3.0 comes from the repo's
12
+ scheduler/scheduler_config.json and is picked up automatically.)
13
+
14
+ Usage
15
+ -----
16
+ python inference_int4.py --prompt "Astronaut in a jungle" --seed 43 --output out.png
17
+ python inference_int4.py --prompt "..." --steps 28 # faster, lower quality
18
+ python inference_int4.py --prompt "..." --resize 512 # cheap preview
19
+ """
20
+
21
+ from __future__ import annotations
22
+
23
+ import argparse
24
+ import os
25
+ import time
26
+ from pathlib import Path
27
+
28
+ REPO_ID = "HelloSun/SD3.5-medium-OpenVINO-INT4"
29
+
30
+ # Values from the original model card.
31
+ DEFAULT_STEPS = 40
32
+ DEFAULT_GUIDANCE = 4.5
33
+ DEFAULT_SIZE = 1024
34
+
35
+
36
+ def load_pipeline(repo_id: str, device: str, compile_model: bool):
37
+ import torch
38
+ from optimum.intel import OVDiffusionPipeline
39
+
40
+ print(f"loading {repo_id} ...", flush=True)
41
+ t0 = time.perf_counter()
42
+ pipe = OVDiffusionPipeline.from_pretrained(repo_id, device=device, compile=compile_model)
43
+ print(f"load+compile {time.perf_counter() - t0:.2f}s", flush=True)
44
+ return pipe, torch
45
+
46
+
47
+ def main() -> int:
48
+ parser = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
49
+ parser.add_argument("--prompt", required=True)
50
+ parser.add_argument("--negative-prompt", default="")
51
+ parser.add_argument("--model", default=REPO_ID, help="local path or Hub id")
52
+ parser.add_argument("--output", type=Path, default=Path("out.png"))
53
+ parser.add_argument("--steps", type=int, default=DEFAULT_STEPS)
54
+ parser.add_argument("--guidance", type=float, default=DEFAULT_GUIDANCE)
55
+ parser.add_argument("--width", type=int, default=DEFAULT_SIZE)
56
+ parser.add_argument("--height", type=int, default=DEFAULT_SIZE)
57
+ parser.add_argument("--seed", type=int, default=42)
58
+ parser.add_argument("--stepsize", type=int, default=8, help="scheduler shift; 8 is common for SD3 speed/quality")
59
+ parser.add_argument("--resize", type=int, default=None, help="also save a downscaled copy at this size")
60
+ parser.add_argument("--device", default="CPU")
61
+ parser.add_argument("--no-compile", action="store_true", help="skip OV graph compilation")
62
+ parser.add_argument("--num-images", type=int, default=1)
63
+ args = parser.parse_args()
64
+
65
+ pipe, torch = load_pipeline(args.model, args.device, not args.no_compile)
66
+
67
+ args.output.parent.mkdir(parents=True, exist_ok=True)
68
+ started = time.perf_counter()
69
+ image = pipe(
70
+ prompt=args.prompt,
71
+ negative_prompt=args.negative_prompt,
72
+ num_inference_steps=args.steps,
73
+ guidance_scale=args.guidance,
74
+ width=args.width,
75
+ height=args.height,
76
+ num_images_per_prompt=args.num_images,
77
+ generator=torch.Generator().manual_seed(args.seed),
78
+ ).images[0]
79
+ elapsed = time.perf_counter() - started
80
+
81
+ image.save(args.output)
82
+ print(f"saved {args.output} {image.size[0]}x{image.size[1]} {elapsed:.2f}s "
83
+ f"({elapsed / max(args.steps, 1):.2f}s/step)", flush=True)
84
+
85
+ if args.resize:
86
+ preview = args.output.with_name(f"{args.output.stem}_{args.resize}.png")
87
+ try:
88
+ from PIL import Image as _Image
89
+
90
+ _resample = _Image.Resampling.LANCZOS # Pillow >= 9.1
91
+ except (ImportError, AttributeError):
92
+ _resample = image.LANCZOS
93
+ image.resize((args.resize, args.resize), _resample).save(preview)
94
+ print(f"saved {preview}", flush=True)
95
+
96
+ peak_mb = 0.0
97
+ try:
98
+ # Kernel high-water mark: exact and dependency-free on Linux.
99
+ for line in Path("/proc/self/status").read_text().splitlines():
100
+ if line.startswith("VmHWM:"):
101
+ peak_mb = int(line.split()[1]) / 1024
102
+ break
103
+ else:
104
+ import psutil
105
+
106
+ peak_mb = psutil.Process(os.getpid()).memory_info().rss / 1024**2
107
+ except (OSError, ValueError, IndexError, ImportError):
108
+ pass
109
+ if peak_mb:
110
+ print(f"peak RSS: {peak_mb:.0f} MB", flush=True)
111
+ return 0
112
+
113
+
114
+ if __name__ == "__main__":
115
+ raise SystemExit(main())
model_index.json ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "StableDiffusion3Pipeline",
3
+ "_diffusers_version": "0.37.1",
4
+ "_name_or_path": "stabilityai/stable-diffusion-3.5-medium",
5
+ "feature_extractor": [
6
+ null,
7
+ null
8
+ ],
9
+ "image_encoder": [
10
+ null,
11
+ null
12
+ ],
13
+ "scheduler": [
14
+ "diffusers",
15
+ "FlowMatchEulerDiscreteScheduler"
16
+ ],
17
+ "text_encoder": [
18
+ "transformers",
19
+ "CLIPTextModelWithProjection"
20
+ ],
21
+ "text_encoder_2": [
22
+ "transformers",
23
+ "CLIPTextModelWithProjection"
24
+ ],
25
+ "text_encoder_3": [
26
+ "transformers",
27
+ "T5EncoderModel"
28
+ ],
29
+ "tokenizer": [
30
+ "transformers",
31
+ "CLIPTokenizer"
32
+ ],
33
+ "tokenizer_2": [
34
+ "transformers",
35
+ "CLIPTokenizer"
36
+ ],
37
+ "tokenizer_3": [
38
+ "transformers",
39
+ "T5TokenizerFast"
40
+ ],
41
+ "transformer": [
42
+ "diffusers",
43
+ "SD3Transformer2DModel"
44
+ ],
45
+ "vae": [
46
+ "diffusers",
47
+ "AutoencoderKL"
48
+ ]
49
+ }
openvino_config.json ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "dtype": "int4_int4",
3
+ "input_info": null,
4
+ "optimum_version": "2.3.0",
5
+ "output_attentions": false,
6
+ "quantization_config": {
7
+ "_dataset_kwargs": {},
8
+ "dataset": null,
9
+ "default_config": {
10
+ "quant_method": "default"
11
+ },
12
+ "ignored_scope": null,
13
+ "num_samples": null,
14
+ "processor": null,
15
+ "quantization_configs": {
16
+ "text_encoder_3": {
17
+ "_dataset_kwargs": {},
18
+ "all_layers": null,
19
+ "backup_precision": null,
20
+ "bits": 4,
21
+ "dataset": null,
22
+ "dq_group_size": null,
23
+ "dtype": "int4",
24
+ "gptq": null,
25
+ "group_size": 128,
26
+ "group_size_fallback": "adjust",
27
+ "ignored_scope": null,
28
+ "lora_correction": null,
29
+ "num_samples": null,
30
+ "processor": null,
31
+ "quant_method": "default",
32
+ "ratio": 1.0,
33
+ "scale_estimation": null,
34
+ "sensitivity_metric": null,
35
+ "statistics_path": null,
36
+ "sym": false,
37
+ "tokenizer": null
38
+ },
39
+ "transformer": {
40
+ "_dataset_kwargs": {},
41
+ "all_layers": null,
42
+ "backup_precision": null,
43
+ "bits": 4,
44
+ "dataset": null,
45
+ "dq_group_size": null,
46
+ "dtype": "int4",
47
+ "gptq": null,
48
+ "group_size": 128,
49
+ "group_size_fallback": "adjust",
50
+ "ignored_scope": null,
51
+ "lora_correction": null,
52
+ "num_samples": null,
53
+ "processor": null,
54
+ "quant_method": "default",
55
+ "ratio": 1.0,
56
+ "scale_estimation": null,
57
+ "sensitivity_metric": null,
58
+ "statistics_path": null,
59
+ "sym": false,
60
+ "tokenizer": null
61
+ }
62
+ },
63
+ "tokenizer": null
64
+ },
65
+ "save_onnx_model": false,
66
+ "transformers_version": "4.57.6"
67
+ }
outputs/01_hanfu_1024.png ADDED

Git LFS Details

  • SHA256: 66bbd264c3cc308636d5624ab38605a14cee8d1f6ee02ebfb19bf3cf8f52fe67
  • Pointer size: 132 Bytes
  • Size of remote file: 1.63 MB
outputs/01_hanfu_512.png ADDED

Git LFS Details

  • SHA256: b5e5f7fc317022096ad11adb4605e187159883dd925d84f5e25923e0ecbae5df
  • Pointer size: 131 Bytes
  • Size of remote file: 413 kB
outputs/02_astronaut_1024.png ADDED

Git LFS Details

  • SHA256: aaa62e93d61df28d55adcb8c6bfab474270e60d5ed73024dcffddbc24fc1429c
  • Pointer size: 132 Bytes
  • Size of remote file: 1.63 MB
outputs/02_astronaut_512.png ADDED

Git LFS Details

  • SHA256: f9a5c237ed2aa38cfab471e1810302a91693b96e545ef20a571df1c9e18df5e6
  • Pointer size: 131 Bytes
  • Size of remote file: 461 kB
outputs/03_taipei_1024.png ADDED

Git LFS Details

  • SHA256: 8f7dc3cedcb9c608f8956113409401e7edf132f6b0db03a966d8cb01fdd7625d
  • Pointer size: 132 Bytes
  • Size of remote file: 1.85 MB
outputs/03_taipei_512.png ADDED

Git LFS Details

  • SHA256: eeec2a2b82976d9764f962e899b4e38e37a268bcc9e33cf172d0de0e4c05f12b
  • Pointer size: 131 Bytes
  • Size of remote file: 501 kB
outputs/04_shiba_1024.png ADDED

Git LFS Details

  • SHA256: 99b4802df2620e4d439e5a0950c15b5c1241d4a3f60d8633d952b644791296e4
  • Pointer size: 132 Bytes
  • Size of remote file: 1.66 MB
outputs/04_shiba_512.png ADDED

Git LFS Details

  • SHA256: ee2b3a9264d69375f3f71ae8da6d57143db85236062aa7d6b40c0b611fb4f380
  • Pointer size: 131 Bytes
  • Size of remote file: 451 kB
outputs/05_ink_1024.png ADDED

Git LFS Details

  • SHA256: d9aa86796e3de0d989cc48d2fdcf0348b28a81d344a17910f404a5a282f8c973
  • Pointer size: 132 Bytes
  • Size of remote file: 1.62 MB
outputs/05_ink_512.png ADDED

Git LFS Details

  • SHA256: ef70f2d99c8c0d591f1c24078f0ccf74eda6d707a4a9484e26d653d9b72bab79
  • Pointer size: 131 Bytes
  • Size of remote file: 410 kB
outputs/benchmark.json ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model_id": "HelloSun/SD3.5-medium-OpenVINO-INT4",
3
+ "hardware": {
4
+ "cpu": "Intel(R) Xeon(R) Platinum 8559C",
5
+ "logical_cores": 192,
6
+ "device": "CPU"
7
+ },
8
+ "software": {
9
+ "openvino": "2026.4.0-22959-99c81491cc3-releases/2026/4",
10
+ "python": "3.12.12",
11
+ "platform": "Linux-6.18.48-107.148.amzn2023.x86_64-x86_64-with-glibc2.41"
12
+ },
13
+ "load_compile_seconds": 8.72,
14
+ "params": {
15
+ "num_inference_steps": 40,
16
+ "guidance_scale": 4.5,
17
+ "height": 1024,
18
+ "width": 1024
19
+ },
20
+ "results": [
21
+ {
22
+ "name": "01_hanfu",
23
+ "seed": 42,
24
+ "steps": 40,
25
+ "guidance": 4.5,
26
+ "size": "1024x1024",
27
+ "total_seconds": 228.41,
28
+ "seconds_per_step": 5.71,
29
+ "peak_rss_mb": 3276.2,
30
+ "prompt": "Young Chinese woman in red Hanfu, intricate embroidery, impeccable makeup, red floral forehead pattern, elaborate high bun, golden phoenix headdress, soft-lit outdoor night background, silhouetted tiered pagoda, blurred colorful distant lights, photorealistic, ultra detailed, 8k"
31
+ },
32
+ {
33
+ "name": "02_astronaut",
34
+ "seed": 43,
35
+ "steps": 40,
36
+ "guidance": 4.5,
37
+ "size": "1024x1024",
38
+ "total_seconds": 228.58,
39
+ "seconds_per_step": 5.71,
40
+ "peak_rss_mb": 3276.2,
41
+ "prompt": "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k, photorealistic, cinematic lighting"
42
+ },
43
+ {
44
+ "name": "03_taipei",
45
+ "seed": 44,
46
+ "steps": 40,
47
+ "guidance": 4.5,
48
+ "size": "1024x1024",
49
+ "total_seconds": 224.7,
50
+ "seconds_per_step": 5.62,
51
+ "peak_rss_mb": 3276.2,
52
+ "prompt": "Cyberpunk street in Taipei at night, heavy rain, neon signs with text 'TAIPEI' and Chinese characters '台北', reflections on wet asphalt, crowded night market, cinematic, ultra detailed"
53
+ },
54
+ {
55
+ "name": "04_shiba",
56
+ "seed": 45,
57
+ "steps": 40,
58
+ "guidance": 4.5,
59
+ "size": "1024x1024",
60
+ "total_seconds": 222.18,
61
+ "seconds_per_step": 5.55,
62
+ "peak_rss_mb": 3276.2,
63
+ "prompt": "Cute Shiba Inu wearing a tiny astronaut helmet, sitting in a field of sunflowers under a starry sky, dreamy illustration, vibrant colors, high quality"
64
+ },
65
+ {
66
+ "name": "05_ink",
67
+ "seed": 46,
68
+ "steps": 40,
69
+ "guidance": 4.5,
70
+ "size": "1024x1024",
71
+ "total_seconds": 226.27,
72
+ "seconds_per_step": 5.66,
73
+ "peak_rss_mb": 3276.2,
74
+ "prompt": "Traditional Chinese ink wash landscape, misty mountains, a small pagoda on a cliff, cranes flying, minimalist, elegant, high aesthetic quality"
75
+ }
76
+ ],
77
+ "peak_rss_mb": 3276.2,
78
+ "peak_rss_source": "/proc/self/status VmHWM"
79
+ }
outputs/benchmark_quantization.json ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model_id": "stabilityai/stable-diffusion-3.5-medium",
3
+ "repo_id": "HelloSun/SD3.5-medium-OpenVINO-INT4",
4
+ "quantize_seconds": 68.55,
5
+ "int4_size_gb": 4.76,
6
+ "int4_components_gb": {
7
+ "scheduler": 0.0,
8
+ "text_encoder": 0.12,
9
+ "text_encoder_2": 0.65,
10
+ "text_encoder_3": 2.38,
11
+ "tokenizer": 0.0,
12
+ "tokenizer_2": 0.0,
13
+ "tokenizer_3": 0.0,
14
+ "transformer": 1.51,
15
+ "vae_decoder": 0.05,
16
+ "vae_encoder": 0.03
17
+ },
18
+ "int4_config": {
19
+ "components": [
20
+ "transformer",
21
+ "text_encoder_3"
22
+ ],
23
+ "bits": 4,
24
+ "sym": false,
25
+ "group_size": 128,
26
+ "group_size_fallback": "adjust",
27
+ "ratio": 1.0,
28
+ "rest": "int8"
29
+ }
30
+ }
outputs/prompts.txt ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ 01_hanfu seed=42 Young Chinese woman in red Hanfu, intricate embroidery, impeccable makeup, red floral forehead pattern, elaborate high bun, golden phoenix headdress, soft-lit outdoor night background, silhouetted tiered pagoda, blurred colorful distant lights, photorealistic, ultra detailed, 8k
2
+
3
+ 02_astronaut seed=43 Astronaut in a jungle, cold color palette, muted colors, detailed, 8k, photorealistic, cinematic lighting
4
+
5
+ 03_taipei seed=44 Cyberpunk street in Taipei at night, heavy rain, neon signs with text 'TAIPEI' and Chinese characters '台北', reflections on wet asphalt, crowded night market, cinematic, ultra detailed
6
+
7
+ 04_shiba seed=45 Cute Shiba Inu wearing a tiny astronaut helmet, sitting in a field of sunflowers under a starry sky, dreamy illustration, vibrant colors, high quality
8
+
9
+ 05_ink seed=46 Traditional Chinese ink wash landscape, misty mountains, a small pagoda on a cliff, cranes flying, minimalist, elegant, high aesthetic quality
10
+
quantize_int4.py ADDED
@@ -0,0 +1,228 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """Convert stabilityai/stable-diffusion-3.5-medium to OpenVINO IR (FP16), then
3
+ compress weights to INT4 with NNCF.
4
+
5
+ Method mirrors the conversion documented in
6
+ https://huggingface.co/HelloSun/FLUX.2-klein-4B-OpenVINO-INT4
7
+
8
+ INT4 : transformer + text_encoder_3 (T5-XXL)
9
+ OVWeightQuantizationConfig(bits=4, sym=False, group_size=128,
10
+ group_size_fallback="adjust", ratio=1.0)
11
+ rest : default INT8
12
+ OVWeightQuantizationConfig(bits=8)
13
+
14
+ via OVQuantizer + ov_config=OVConfig(
15
+ quantization_config=OVPipelineQuantizationConfig(...))
16
+
17
+ SD3.5-medium has three text encoders. Only text_encoder_3 (T5-XXL, 4.7B params,
18
+ ~9.5 GB FP16) is pushed to INT4; the two small CLIP encoders (CLIP-L / CLIP-G)
19
+ stay at INT8 because quantizing them costs little size and risks prompt fidelity.
20
+
21
+ Inference parameters are NOT changed by this script: they stay at the values in
22
+ the original model card (1024x1024, 40 steps, guidance 4.5).
23
+
24
+ Usage
25
+ -----
26
+ export HF_TOKEN=... # SD3.5-medium is gated
27
+ python quantize_int4.py
28
+
29
+ # or split the two phases
30
+ python quantize_int4.py --export-only
31
+ python quantize_int4.py --quantize-only
32
+ """
33
+
34
+ from __future__ import annotations
35
+
36
+ import argparse
37
+ import json
38
+ import os
39
+ import subprocess
40
+ import sys
41
+ import tempfile
42
+ import time
43
+ from pathlib import Path
44
+
45
+ MODEL_ID = "stabilityai/stable-diffusion-3.5-medium"
46
+ REPO_ID = "HelloSun/SD3.5-medium-OpenVINO-INT4"
47
+
48
+ # INT4 keeps the two large components. group_size_fallback="adjust" downshifts to
49
+ # the largest compatible group when a tensor's shape is not divisible by 128,
50
+ # which is common for the small projection matrices inside MMDiT blocks.
51
+ INT4_COMPONENTS = ("transformer", "text_encoder_3")
52
+
53
+ INT4_KWARGS = {
54
+ "bits": 4,
55
+ "sym": False,
56
+ "group_size": 128,
57
+ "group_size_fallback": "adjust",
58
+ "ratio": 1.0,
59
+ }
60
+
61
+
62
+ def log(msg: str) -> None:
63
+ print(f"[quantize_int4] {msg}", flush=True)
64
+
65
+
66
+ def dir_size_gb(path: Path) -> float:
67
+ total = 0
68
+ for root, _dirs, files in os.walk(path):
69
+ for name in files:
70
+ fp = Path(root) / name
71
+ if fp.is_file() and not fp.is_symlink():
72
+ total += fp.stat().st_size
73
+ return total / 1024**3
74
+
75
+
76
+ def component_sizes(path: Path) -> dict[str, float]:
77
+ """Per-subfolder size in GB, for the components we actually quantize."""
78
+ out: dict[str, float] = {}
79
+ if not path.is_dir():
80
+ return out
81
+ for child in sorted(p for p in path.iterdir() if p.is_dir()):
82
+ out[child.name] = dir_size_gb(child)
83
+ return out
84
+
85
+
86
+ def require_token() -> None:
87
+ """SD3.5-medium is gated (license must be accepted on the Hub)."""
88
+ if os.environ.get("HF_TOKEN") or os.environ.get("HUGGING_FACE_HUB_TOKEN"):
89
+ return
90
+ log("No HF_TOKEN in environment. If the repo is not already accepted for")
91
+ log("your account, run: hf auth login")
92
+
93
+
94
+ def export_fp16(out_dir: Path) -> None:
95
+ """FP16 export via optimum-cli, matching the reference card's export step."""
96
+ if (out_dir / "openvino_config.json").is_file():
97
+ log(f"FP16 export already present at {out_dir}, skipping.")
98
+ return
99
+
100
+ cmd = [
101
+ "optimum-cli",
102
+ "export",
103
+ "openvino",
104
+ "--model",
105
+ MODEL_ID,
106
+ "--task",
107
+ "text-to-image",
108
+ "--library",
109
+ "diffusers",
110
+ "--weight-format",
111
+ "fp16",
112
+ str(out_dir),
113
+ ]
114
+ log("running: " + " ".join(cmd))
115
+ log("(downloads ~16 GB of FP16 weights; this is the long part)")
116
+ subprocess.run(cmd, check=True)
117
+
118
+
119
+ def quantize_int4(fp16_dir: Path, out_dir: Path) -> None:
120
+ import shutil
121
+
122
+ # immediate_save=True overwrites files in save_directory in place, so the
123
+ # FP16 IR must already be there. Seed it automatically on first run.
124
+ out_exists = out_dir.exists() and any(out_dir.iterdir())
125
+ if not out_exists:
126
+ if (fp16_dir / "model_index.json").is_file():
127
+ log(f"seeding {out_dir} from {fp16_dir} (required for immediate_save=True)")
128
+ shutil.copytree(fp16_dir, out_dir, dirs_exist_ok=True)
129
+ # TemporaryDirectory (used internally for each sub-model) must live on the
130
+ # same filesystem as out_dir, otherwise rename() fails with EXDEV
131
+ # (Invalid cross-device link). E.g.: export TMPDIR=/data-nvme/work/tmp
132
+ try:
133
+ if out_dir.exists() and Path(tempfile.gettempdir()).stat().st_dev != Path(out_dir).stat().st_dev:
134
+ log("WARNING: TMPDIR is on a different filesystem than out_dir; "
135
+ "set TMPDIR inside the same filesystem to avoid EXDEV rename errors.")
136
+ except OSError:
137
+ pass
138
+
139
+ from optimum.intel import (
140
+ OVConfig,
141
+ OVDiffusionPipeline,
142
+ OVPipelineQuantizationConfig,
143
+ OVQuantizer,
144
+ OVWeightQuantizationConfig,
145
+ )
146
+
147
+ log(f"loading FP16 OpenVINO pipeline from {fp16_dir}")
148
+ model = OVDiffusionPipeline.from_pretrained(str(fp16_dir))
149
+
150
+ available = sorted(c for c in ("transformer", "text_encoder_3") if getattr(model, c, None) is not None)
151
+ if available != list(INT4_COMPONENTS):
152
+ log(f"WARNING: expected components {list(INT4_COMPONENTS)}, pipeline exposes {available}")
153
+
154
+ def int4_cfg():
155
+ return OVWeightQuantizationConfig(**INT4_KWARGS)
156
+
157
+ quantization_config = OVPipelineQuantizationConfig(
158
+ quantization_configs={name: int4_cfg() for name in INT4_COMPONENTS},
159
+ # Everything else (CLIP encoders, VAE decoder/encoder) at INT8.
160
+ default_config=OVWeightQuantizationConfig(bits=8),
161
+ )
162
+
163
+ quantizer = OVQuantizer.from_pretrained(model)
164
+ log("quantizing -> INT4 (transformer, text_encoder_3) / INT8 (rest)")
165
+ quantizer.quantize(
166
+ ov_config=OVConfig(quantization_config=quantization_config),
167
+ save_directory=str(out_dir),
168
+ # Saves each sub-model as soon as it is compressed, so the FP16 copy of a
169
+ # component can be released. Cuts peak RSS substantially. The in-memory
170
+ # pipeline is unusable afterwards, which is fine here.
171
+ immediate_save=True,
172
+ )
173
+
174
+
175
+ def main() -> int:
176
+ parser = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
177
+ parser.add_argument("--fp16-dir", default="sd3.5-medium-ov-fp16", type=Path)
178
+ parser.add_argument("--out-dir", default=REPO_ID.split("/")[-1], type=Path)
179
+ parser.add_argument("--export-only", action="store_true")
180
+ parser.add_argument("--quantize-only", action="store_true")
181
+ args = parser.parse_args()
182
+
183
+ if args.export_only and args.quantize_only:
184
+ parser.error("--export-only and --quantize-only are mutually exclusive")
185
+
186
+ require_token()
187
+ report: dict[str, object] = {"model_id": MODEL_ID, "repo_id": REPO_ID}
188
+
189
+ if not args.quantize_only:
190
+ t0 = time.perf_counter()
191
+ export_fp16(args.fp16_dir)
192
+ report["export_seconds"] = round(time.perf_counter() - t0, 2)
193
+ report["fp16_size_gb"] = round(dir_size_gb(args.fp16_dir), 2)
194
+ report["fp16_components_gb"] = {k: round(v, 2) for k, v in component_sizes(args.fp16_dir).items()}
195
+ log(f"FP16 export done: {report['fp16_size_gb']} GB")
196
+ if args.export_only:
197
+ (args.out_dir).mkdir(parents=True, exist_ok=True)
198
+ (args.out_dir / "benchmark_quantization.json").write_text(
199
+ json.dumps(report, indent=2, ensure_ascii=False) + "\n", encoding="utf-8"
200
+ )
201
+ return 0
202
+
203
+ if args.out_dir.exists() and args.out_dir.is_dir() and any(args.out_dir.iterdir()):
204
+ log(f"WARNING: {args.out_dir} is not empty; quantize will overwrite its contents.")
205
+
206
+ t0 = time.perf_counter()
207
+ quantize_int4(args.fp16_dir, args.out_dir)
208
+ report["quantize_seconds"] = round(time.perf_counter() - t0, 2)
209
+
210
+ report["int4_size_gb"] = round(dir_size_gb(args.out_dir), 2)
211
+ report["int4_components_gb"] = {k: round(v, 2) for k, v in component_sizes(args.out_dir).items()}
212
+ if isinstance(report.get("fp16_size_gb"), float) and report["fp16_size_gb"]:
213
+ report["compression_ratio"] = round(report["fp16_size_gb"] / report["int4_size_gb"], 2)
214
+ report["int4_config"] = {"components": list(INT4_COMPONENTS), **INT4_KWARGS, "rest": "int8"}
215
+
216
+ args.out_dir.mkdir(parents=True, exist_ok=True)
217
+ (args.out_dir / "benchmark_quantization.json").write_text(
218
+ json.dumps(report, indent=2, ensure_ascii=False) + "\n", encoding="utf-8"
219
+ )
220
+ log(json.dumps(report, indent=2, ensure_ascii=False))
221
+
222
+ log("done. copy README.md / REPORT.md / *.py into the output dir, then:")
223
+ log(f" huggingface-cli upload {REPO_ID} {args.out_dir} --repo-type model")
224
+ return 0
225
+
226
+
227
+ if __name__ == "__main__":
228
+ sys.exit(main())
requirements.txt ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Pinned to the same env used for HelloSun/FLUX.2-klein-4B-OpenVINO-INT4
2
+ # (+ sentencepiece/accelerate: required to load the SD3 T5 tokenizer & FP16 pipeline)
3
+ diffusers==0.37.1
4
+ transformers==4.57.6
5
+ tokenizers==0.22.0
6
+ huggingface-hub==0.35.1
7
+ optimum-intel==2.2.0
8
+ optimum==2.3.0
9
+ openvino==2026.4.0
10
+ nncf==3.4.0
11
+ torch
12
+ pillow
13
+ psutil
14
+ sentencepiece
15
+ accelerate
scheduler/scheduler_config.json ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "FlowMatchEulerDiscreteScheduler",
3
+ "_diffusers_version": "0.37.1",
4
+ "base_image_seq_len": 256,
5
+ "base_shift": 0.5,
6
+ "invert_sigmas": false,
7
+ "max_image_seq_len": 4096,
8
+ "max_shift": 1.15,
9
+ "num_train_timesteps": 1000,
10
+ "shift": 3.0,
11
+ "shift_terminal": null,
12
+ "stochastic_sampling": false,
13
+ "time_shift_type": "exponential",
14
+ "use_beta_sigmas": false,
15
+ "use_dynamic_shifting": false,
16
+ "use_exponential_sigmas": false,
17
+ "use_karras_sigmas": false
18
+ }
text_encoder/config.json ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "CLIPTextModelWithProjection"
4
+ ],
5
+ "attention_dropout": 0.0,
6
+ "bos_token_id": 0,
7
+ "dropout": 0.0,
8
+ "dtype": "float16",
9
+ "eos_token_id": 2,
10
+ "hidden_act": "quick_gelu",
11
+ "hidden_size": 768,
12
+ "initializer_factor": 1.0,
13
+ "initializer_range": 0.02,
14
+ "intermediate_size": 3072,
15
+ "layer_norm_eps": 1e-05,
16
+ "max_position_embeddings": 77,
17
+ "model_type": "clip_text_model",
18
+ "num_attention_heads": 12,
19
+ "num_hidden_layers": 12,
20
+ "output_hidden_states": true,
21
+ "pad_token_id": 1,
22
+ "projection_dim": 768,
23
+ "transformers_version": "4.57.6",
24
+ "vocab_size": 49408
25
+ }
text_encoder/openvino_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d11495c3f5811cdc97f8f3403fec66f0f6e9ffe495d64aecb5a0251e93168c41
3
+ size 124172025
text_encoder/openvino_model.xml ADDED
The diff for this file is too large to render. See raw diff
 
text_encoder_2/config.json ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "CLIPTextModelWithProjection"
4
+ ],
5
+ "attention_dropout": 0.0,
6
+ "bos_token_id": 0,
7
+ "dropout": 0.0,
8
+ "dtype": "float16",
9
+ "eos_token_id": 2,
10
+ "hidden_act": "gelu",
11
+ "hidden_size": 1280,
12
+ "initializer_factor": 1.0,
13
+ "initializer_range": 0.02,
14
+ "intermediate_size": 5120,
15
+ "layer_norm_eps": 1e-05,
16
+ "max_position_embeddings": 77,
17
+ "model_type": "clip_text_model",
18
+ "num_attention_heads": 20,
19
+ "num_hidden_layers": 32,
20
+ "output_hidden_states": true,
21
+ "pad_token_id": 1,
22
+ "projection_dim": 1280,
23
+ "transformers_version": "4.57.6",
24
+ "vocab_size": 49408
25
+ }
text_encoder_2/openvino_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4b3cc1721e60e684250207f8153520e1b4cef7f02044bc06e05e1e711d682572
3
+ size 696453879
text_encoder_2/openvino_model.xml ADDED
The diff for this file is too large to render. See raw diff
 
text_encoder_3/config.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "T5EncoderModel"
4
+ ],
5
+ "classifier_dropout": 0.0,
6
+ "d_ff": 10240,
7
+ "d_kv": 64,
8
+ "d_model": 4096,
9
+ "decoder_start_token_id": 0,
10
+ "dense_act_fn": "gelu_new",
11
+ "dropout_rate": 0.1,
12
+ "dtype": "float16",
13
+ "eos_token_id": 1,
14
+ "feed_forward_proj": "gated-gelu",
15
+ "initializer_factor": 1.0,
16
+ "is_encoder_decoder": false,
17
+ "is_gated_act": true,
18
+ "layer_norm_epsilon": 1e-06,
19
+ "model_type": "t5",
20
+ "num_decoder_layers": 24,
21
+ "num_heads": 64,
22
+ "num_layers": 24,
23
+ "output_past": true,
24
+ "pad_token_id": 0,
25
+ "relative_attention_max_distance": 128,
26
+ "relative_attention_num_buckets": 32,
27
+ "tie_word_embeddings": false,
28
+ "transformers_version": "4.57.6",
29
+ "use_cache": false,
30
+ "vocab_size": 32128
31
+ }
text_encoder_3/openvino_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b5e9c9d9e8d171891c26cc5e92de2d42cffee5f0dcde691f5864924b9e6d171f
3
+ size 2557956630
text_encoder_3/openvino_model.xml ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer/merges.txt ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer/openvino_detokenizer.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6d4c1a4c1bbaff35f9e5921a0c5bab412bb0e465fcf59762f32cf4ae7a01c9d7
3
+ size 814403
tokenizer/openvino_detokenizer.xml ADDED
@@ -0,0 +1,378 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <net name="detokenizer" version="11">
3
+ <layers>
4
+ <layer id="0" name="Parameter_244712" type="Parameter" version="opset1">
5
+ <data shape="?,?" element_type="i64" />
6
+ <output>
7
+ <port id="0" precision="I64" names="Parameter_244712">
8
+ <dim>-1</dim>
9
+ <dim>-1</dim>
10
+ </port>
11
+ </output>
12
+ </layer>
13
+ <layer id="1" name="Convert_244762" type="Convert" version="opset1">
14
+ <data destination_type="i32" />
15
+ <input>
16
+ <port id="0" precision="I64">
17
+ <dim>-1</dim>
18
+ <dim>-1</dim>
19
+ </port>
20
+ </input>
21
+ <output>
22
+ <port id="1" precision="I32">
23
+ <dim>-1</dim>
24
+ <dim>-1</dim>
25
+ </port>
26
+ </output>
27
+ </layer>
28
+ <layer id="2" name="Constant_244714" type="Const" version="opset1">
29
+ <data element_type="i32" shape="49408" offset="0" size="197632" />
30
+ <output>
31
+ <port id="0" precision="I32">
32
+ <dim>49408</dim>
33
+ </port>
34
+ </output>
35
+ </layer>
36
+ <layer id="3" name="Constant_244716" type="Const" version="opset1">
37
+ <data element_type="i32" shape="49408" offset="197632" size="197632" />
38
+ <output>
39
+ <port id="0" precision="I32">
40
+ <dim>49408</dim>
41
+ </port>
42
+ </output>
43
+ </layer>
44
+ <layer id="4" name="Constant_244718" type="Const" version="opset1">
45
+ <data element_type="u8" shape="419070" offset="395264" size="419070" />
46
+ <output>
47
+ <port id="0" precision="U8">
48
+ <dim>419070</dim>
49
+ </port>
50
+ </output>
51
+ </layer>
52
+ <layer id="5" name="Slice_244723" type="Const" version="opset1">
53
+ <data element_type="i32" shape="2" offset="814334" size="8" />
54
+ <output>
55
+ <port id="0" precision="I32">
56
+ <dim>2</dim>
57
+ </port>
58
+ </output>
59
+ </layer>
60
+ <layer id="6" name="VocabDecoder_244725" type="VocabDecoder" version="extension">
61
+ <data skip_tokens="" />
62
+ <input>
63
+ <port id="0" precision="I32">
64
+ <dim>-1</dim>
65
+ <dim>-1</dim>
66
+ </port>
67
+ <port id="1" precision="I32">
68
+ <dim>49408</dim>
69
+ </port>
70
+ <port id="2" precision="I32">
71
+ <dim>49408</dim>
72
+ </port>
73
+ <port id="3" precision="U8">
74
+ <dim>419070</dim>
75
+ </port>
76
+ <port id="4" precision="I32">
77
+ <dim>2</dim>
78
+ </port>
79
+ </input>
80
+ <output>
81
+ <port id="5" precision="I32">
82
+ <dim>-1</dim>
83
+ </port>
84
+ <port id="6" precision="I32">
85
+ <dim>-1</dim>
86
+ </port>
87
+ <port id="7" precision="I32">
88
+ <dim>-1</dim>
89
+ </port>
90
+ <port id="8" precision="I32">
91
+ <dim>-1</dim>
92
+ </port>
93
+ <port id="9" precision="U8">
94
+ <dim>-1</dim>
95
+ </port>
96
+ </output>
97
+ </layer>
98
+ <layer id="7" name="FuzeRagged_244726" type="FuzeRagged" version="extension">
99
+ <input>
100
+ <port id="0" precision="I32">
101
+ <dim>-1</dim>
102
+ </port>
103
+ <port id="1" precision="I32">
104
+ <dim>-1</dim>
105
+ </port>
106
+ <port id="2" precision="I32">
107
+ <dim>-1</dim>
108
+ </port>
109
+ <port id="3" precision="I32">
110
+ <dim>-1</dim>
111
+ </port>
112
+ </input>
113
+ <output>
114
+ <port id="4" precision="I32">
115
+ <dim>-1</dim>
116
+ </port>
117
+ <port id="5" precision="I32">
118
+ <dim>-1</dim>
119
+ </port>
120
+ </output>
121
+ </layer>
122
+ <layer id="8" name="UTF8Validate_244727" type="UTF8Validate" version="extension">
123
+ <data replace_mode="true" />
124
+ <input>
125
+ <port id="0" precision="I32">
126
+ <dim>-1</dim>
127
+ </port>
128
+ <port id="1" precision="I32">
129
+ <dim>-1</dim>
130
+ </port>
131
+ <port id="2" precision="U8">
132
+ <dim>-1</dim>
133
+ </port>
134
+ </input>
135
+ <output>
136
+ <port id="3" precision="I32">
137
+ <dim>-1</dim>
138
+ </port>
139
+ <port id="4" precision="I32">
140
+ <dim>-1</dim>
141
+ </port>
142
+ <port id="5" precision="U8">
143
+ <dim>-1</dim>
144
+ </port>
145
+ </output>
146
+ </layer>
147
+ <layer id="9" name="Constant_244729" type="Const" version="opset1">
148
+ <data element_type="u8" shape="4" offset="814342" size="4" />
149
+ <output>
150
+ <port id="0" precision="U8">
151
+ <dim>4</dim>
152
+ </port>
153
+ </output>
154
+ </layer>
155
+ <layer id="10" name="Constant_244731" type="Const" version="opset1">
156
+ <data element_type="u8" shape="1" offset="814346" size="1" />
157
+ <output>
158
+ <port id="0" precision="U8">
159
+ <dim>1</dim>
160
+ </port>
161
+ </output>
162
+ </layer>
163
+ <layer id="11" name="RegexNormalization_244732" type="RegexNormalization" version="extension">
164
+ <data global_replace="true" />
165
+ <input>
166
+ <port id="0" precision="I32">
167
+ <dim>-1</dim>
168
+ </port>
169
+ <port id="1" precision="I32">
170
+ <dim>-1</dim>
171
+ </port>
172
+ <port id="2" precision="U8">
173
+ <dim>-1</dim>
174
+ </port>
175
+ <port id="3" precision="U8">
176
+ <dim>4</dim>
177
+ </port>
178
+ <port id="4" precision="U8">
179
+ <dim>1</dim>
180
+ </port>
181
+ </input>
182
+ <output>
183
+ <port id="5" precision="I32">
184
+ <dim>-1</dim>
185
+ </port>
186
+ <port id="6" precision="I32">
187
+ <dim>-1</dim>
188
+ </port>
189
+ <port id="7" precision="U8">
190
+ <dim>-1</dim>
191
+ </port>
192
+ </output>
193
+ </layer>
194
+ <layer id="12" name="Constant_244734" type="Const" version="opset1">
195
+ <data element_type="u8" shape="2" offset="814347" size="2" />
196
+ <output>
197
+ <port id="0" precision="U8">
198
+ <dim>2</dim>
199
+ </port>
200
+ </output>
201
+ </layer>
202
+ <layer id="13" name="Constant_244736" type="Const" version="opset1">
203
+ <data element_type="u8" shape="0" offset="814349" size="1" />
204
+ <output>
205
+ <port id="0" precision="U8">
206
+ <dim>0</dim>
207
+ </port>
208
+ </output>
209
+ </layer>
210
+ <layer id="14" name="RegexNormalization_244737" type="RegexNormalization" version="extension">
211
+ <data global_replace="true" />
212
+ <input>
213
+ <port id="0" precision="I32">
214
+ <dim>-1</dim>
215
+ </port>
216
+ <port id="1" precision="I32">
217
+ <dim>-1</dim>
218
+ </port>
219
+ <port id="2" precision="U8">
220
+ <dim>-1</dim>
221
+ </port>
222
+ <port id="3" precision="U8">
223
+ <dim>2</dim>
224
+ </port>
225
+ <port id="4" precision="U8">
226
+ <dim>0</dim>
227
+ </port>
228
+ </input>
229
+ <output>
230
+ <port id="5" precision="I32">
231
+ <dim>-1</dim>
232
+ </port>
233
+ <port id="6" precision="I32">
234
+ <dim>-1</dim>
235
+ </port>
236
+ <port id="7" precision="U8">
237
+ <dim>-1</dim>
238
+ </port>
239
+ </output>
240
+ </layer>
241
+ <layer id="15" name="Constant_244739" type="Const" version="opset1">
242
+ <data element_type="u8" shape="51" offset="814350" size="51" />
243
+ <output>
244
+ <port id="0" precision="U8">
245
+ <dim>51</dim>
246
+ </port>
247
+ </output>
248
+ </layer>
249
+ <layer id="16" name="Constant_244741" type="Const" version="opset1">
250
+ <data element_type="u8" shape="2" offset="814401" size="2" />
251
+ <output>
252
+ <port id="0" precision="U8">
253
+ <dim>2</dim>
254
+ </port>
255
+ </output>
256
+ </layer>
257
+ <layer id="17" name="RegexNormalization_244742" type="RegexNormalization" version="extension">
258
+ <data global_replace="true" />
259
+ <input>
260
+ <port id="0" precision="I32">
261
+ <dim>-1</dim>
262
+ </port>
263
+ <port id="1" precision="I32">
264
+ <dim>-1</dim>
265
+ </port>
266
+ <port id="2" precision="U8">
267
+ <dim>-1</dim>
268
+ </port>
269
+ <port id="3" precision="U8">
270
+ <dim>51</dim>
271
+ </port>
272
+ <port id="4" precision="U8">
273
+ <dim>2</dim>
274
+ </port>
275
+ </input>
276
+ <output>
277
+ <port id="5" precision="I32">
278
+ <dim>-1</dim>
279
+ </port>
280
+ <port id="6" precision="I32">
281
+ <dim>-1</dim>
282
+ </port>
283
+ <port id="7" precision="U8">
284
+ <dim>-1</dim>
285
+ </port>
286
+ </output>
287
+ </layer>
288
+ <layer id="18" name="StringTensorPack_244743" type="StringTensorPack" version="opset15">
289
+ <input>
290
+ <port id="0" precision="I32">
291
+ <dim>-1</dim>
292
+ </port>
293
+ <port id="1" precision="I32">
294
+ <dim>-1</dim>
295
+ </port>
296
+ <port id="2" precision="U8">
297
+ <dim>-1</dim>
298
+ </port>
299
+ </input>
300
+ <output>
301
+ <port id="3" precision="STRING" names="Result_244744,string_output">
302
+ <dim>-1</dim>
303
+ </port>
304
+ </output>
305
+ </layer>
306
+ <layer id="19" name="Result_244744" type="Result" version="opset1" output_names="Result_244744,string_output">
307
+ <input>
308
+ <port id="0" precision="STRING">
309
+ <dim>-1</dim>
310
+ </port>
311
+ </input>
312
+ </layer>
313
+ </layers>
314
+ <edges>
315
+ <edge from-layer="0" from-port="0" to-layer="1" to-port="0" />
316
+ <edge from-layer="1" from-port="1" to-layer="6" to-port="0" />
317
+ <edge from-layer="2" from-port="0" to-layer="6" to-port="1" />
318
+ <edge from-layer="3" from-port="0" to-layer="6" to-port="2" />
319
+ <edge from-layer="4" from-port="0" to-layer="6" to-port="3" />
320
+ <edge from-layer="5" from-port="0" to-layer="6" to-port="4" />
321
+ <edge from-layer="6" from-port="5" to-layer="7" to-port="0" />
322
+ <edge from-layer="6" from-port="6" to-layer="7" to-port="1" />
323
+ <edge from-layer="6" from-port="7" to-layer="7" to-port="2" />
324
+ <edge from-layer="6" from-port="8" to-layer="7" to-port="3" />
325
+ <edge from-layer="6" from-port="9" to-layer="8" to-port="2" />
326
+ <edge from-layer="7" from-port="4" to-layer="8" to-port="0" />
327
+ <edge from-layer="7" from-port="5" to-layer="8" to-port="1" />
328
+ <edge from-layer="8" from-port="3" to-layer="11" to-port="0" />
329
+ <edge from-layer="8" from-port="4" to-layer="11" to-port="1" />
330
+ <edge from-layer="8" from-port="5" to-layer="11" to-port="2" />
331
+ <edge from-layer="9" from-port="0" to-layer="11" to-port="3" />
332
+ <edge from-layer="10" from-port="0" to-layer="11" to-port="4" />
333
+ <edge from-layer="11" from-port="5" to-layer="14" to-port="0" />
334
+ <edge from-layer="11" from-port="6" to-layer="14" to-port="1" />
335
+ <edge from-layer="11" from-port="7" to-layer="14" to-port="2" />
336
+ <edge from-layer="12" from-port="0" to-layer="14" to-port="3" />
337
+ <edge from-layer="13" from-port="0" to-layer="14" to-port="4" />
338
+ <edge from-layer="14" from-port="5" to-layer="17" to-port="0" />
339
+ <edge from-layer="14" from-port="6" to-layer="17" to-port="1" />
340
+ <edge from-layer="14" from-port="7" to-layer="17" to-port="2" />
341
+ <edge from-layer="15" from-port="0" to-layer="17" to-port="3" />
342
+ <edge from-layer="16" from-port="0" to-layer="17" to-port="4" />
343
+ <edge from-layer="17" from-port="5" to-layer="18" to-port="0" />
344
+ <edge from-layer="17" from-port="6" to-layer="18" to-port="1" />
345
+ <edge from-layer="17" from-port="7" to-layer="18" to-port="2" />
346
+ <edge from-layer="18" from-port="3" to-layer="19" to-port="0" />
347
+ </edges>
348
+ <rt_info>
349
+ <info name="OpenVINO Runtime" value="2026.4.0-22959-99c81491cc3-releases/2026/4" />
350
+ <add_attention_mask value="True" />
351
+ <add_prefix_space />
352
+ <add_special_tokens value="True" />
353
+ <bos_token_id value="49406" />
354
+ <clean_up_tokenization_spaces />
355
+ <detokenizer_input_type value="i64" />
356
+ <eos_token_id value="49407" />
357
+ <handle_special_tokens_with_re />
358
+ <max_length />
359
+ <number_of_inputs value="1" />
360
+ <openvino_tokenizers_version value="2026.4.0.0-736-a04accf6282" />
361
+ <openvino_version value="2026.4.0-22959-99c81491cc3-releases/2026/4" />
362
+ <original_post_processor_template value="{&quot;type&quot;: &quot;RobertaProcessing&quot;, &quot;sep&quot;: [&quot;&lt;|endoftext|>&quot;, 49407], &quot;cls&quot;: [&quot;&lt;|startoftext|>&quot;, 49406], &quot;trim_offsets&quot;: false, &quot;add_prefix_space&quot;: false}" />
363
+ <original_tokenizer_class value="&lt;class 'transformers.models.clip.tokenization_clip_fast.CLIPTokenizerFast'>" />
364
+ <pad_token_id value="49407" />
365
+ <processed_post_processor_template value="{&quot;single&quot;: {&quot;ids&quot;: [49406, -1, 49407], &quot;type_ids&quot;: [0, 0, 0]}, &quot;pair&quot;: {&quot;ids&quot;: [49406, -1, 49407, 49407, -1, 49407], &quot;type_ids&quot;: [0, 0, 0, 0, 0, 0]}}" />
366
+ <sentencepiece_version value="0.2.2" />
367
+ <skip_special_tokens value="True" />
368
+ <streaming_detokenizer value="False" />
369
+ <tokenizer_output_type value="i64" />
370
+ <tokenizers_version value="0.22.0" />
371
+ <transformers_version value="4.57.6" />
372
+ <truncation value="False" />
373
+ <use_max_padding value="False" />
374
+ <use_sentencepiece_backend value="False" />
375
+ <utf8_replace_mode value="replace" />
376
+ <with_detokenizer value="True" />
377
+ </rt_info>
378
+ </net>
tokenizer/openvino_tokenizer.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:669e4fcb55e51ba994db4ad1eaa787883971550e1119dd93d732c70dcc24e85e
3
+ size 2014441
tokenizer/openvino_tokenizer.xml ADDED
@@ -0,0 +1,995 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <net name="tokenizer" version="11">
3
+ <layers>
4
+ <layer id="0" name="Parameter_244565" type="Parameter" version="opset1">
5
+ <data shape="?" element_type="string" />
6
+ <output>
7
+ <port id="0" precision="STRING" names="Parameter_244565">
8
+ <dim>-1</dim>
9
+ </port>
10
+ </output>
11
+ </layer>
12
+ <layer id="1" name="Constant_244682" type="Const" version="opset1">
13
+ <data element_type="boolean" shape="" offset="0" size="1" />
14
+ <output>
15
+ <port id="0" precision="BOOL" />
16
+ </output>
17
+ </layer>
18
+ <layer id="2" name="ReadValue_244683" type="ReadValue" version="opset6">
19
+ <data variable_id="truncation" variable_type="dynamic" variable_shape="..." />
20
+ <input>
21
+ <port id="0" precision="BOOL" />
22
+ </input>
23
+ <output>
24
+ <port id="1" precision="BOOL" />
25
+ </output>
26
+ </layer>
27
+ <layer id="3" name="Constant_244693" type="Const" version="opset1">
28
+ <data element_type="i32" shape="" offset="1" size="4" />
29
+ <output>
30
+ <port id="0" precision="I32" />
31
+ </output>
32
+ </layer>
33
+ <layer id="4" name="Constant_244694" type="Const" version="opset1">
34
+ <data element_type="i32" shape="" offset="5" size="4" />
35
+ <output>
36
+ <port id="0" precision="I32" />
37
+ </output>
38
+ </layer>
39
+ <layer id="5" name="Constant_244695" type="Const" version="opset1">
40
+ <data element_type="i32" shape="1" offset="9" size="4" />
41
+ <output>
42
+ <port id="0" precision="I32">
43
+ <dim>1</dim>
44
+ </port>
45
+ </output>
46
+ </layer>
47
+ <layer id="6" name="Constant_244571" type="Const" version="opset1">
48
+ <data element_type="i64" shape="" offset="13" size="8" />
49
+ <output>
50
+ <port id="0" precision="I64" />
51
+ </output>
52
+ </layer>
53
+ <layer id="7" name="StringTensorUnpack_244566" type="StringTensorUnpack" version="opset15">
54
+ <input>
55
+ <port id="0" precision="STRING">
56
+ <dim>-1</dim>
57
+ </port>
58
+ </input>
59
+ <output>
60
+ <port id="1" precision="I32">
61
+ <dim>-1</dim>
62
+ </port>
63
+ <port id="2" precision="I32">
64
+ <dim>-1</dim>
65
+ </port>
66
+ <port id="3" precision="U8">
67
+ <dim>-1</dim>
68
+ </port>
69
+ </output>
70
+ </layer>
71
+ <layer id="8" name="ShapeOf_244567" type="ShapeOf" version="opset3">
72
+ <data output_type="i64" />
73
+ <input>
74
+ <port id="0" precision="I32">
75
+ <dim>-1</dim>
76
+ </port>
77
+ </input>
78
+ <output>
79
+ <port id="1" precision="I64">
80
+ <dim>1</dim>
81
+ </port>
82
+ </output>
83
+ </layer>
84
+ <layer id="9" name="Constant_244568" type="Const" version="opset1">
85
+ <data element_type="i64" shape="" offset="13" size="8" />
86
+ <output>
87
+ <port id="0" precision="I64" />
88
+ </output>
89
+ </layer>
90
+ <layer id="10" name="Constant_244569" type="Const" version="opset1">
91
+ <data element_type="i64" shape="" offset="13" size="8" />
92
+ <output>
93
+ <port id="0" precision="I64" />
94
+ </output>
95
+ </layer>
96
+ <layer id="11" name="Gather_244570" type="Gather" version="opset8">
97
+ <data batch_dims="0" />
98
+ <input>
99
+ <port id="0" precision="I64">
100
+ <dim>1</dim>
101
+ </port>
102
+ <port id="1" precision="I64" />
103
+ <port id="2" precision="I64" />
104
+ </input>
105
+ <output>
106
+ <port id="3" precision="I64" />
107
+ </output>
108
+ </layer>
109
+ <layer id="12" name="Constant_244572" type="Const" version="opset1">
110
+ <data element_type="i64" shape="" offset="21" size="8" />
111
+ <output>
112
+ <port id="0" precision="I64" />
113
+ </output>
114
+ </layer>
115
+ <layer id="13" name="Range_244573" type="Range" version="opset4">
116
+ <data output_type="i32" />
117
+ <input>
118
+ <port id="0" precision="I64" />
119
+ <port id="1" precision="I64" />
120
+ <port id="2" precision="I64" />
121
+ </input>
122
+ <output>
123
+ <port id="3" precision="I32">
124
+ <dim>-1</dim>
125
+ </port>
126
+ </output>
127
+ </layer>
128
+ <layer id="14" name="Constant_244574" type="Const" version="opset1">
129
+ <data element_type="i64" shape="" offset="21" size="8" />
130
+ <output>
131
+ <port id="0" precision="I64" />
132
+ </output>
133
+ </layer>
134
+ <layer id="15" name="Constant_244575" type="Const" version="opset1">
135
+ <data element_type="i64" shape="" offset="21" size="8" />
136
+ <output>
137
+ <port id="0" precision="I64" />
138
+ </output>
139
+ </layer>
140
+ <layer id="16" name="Add_244576" type="Add" version="opset1">
141
+ <data auto_broadcast="numpy" />
142
+ <input>
143
+ <port id="0" precision="I64" />
144
+ <port id="1" precision="I64" />
145
+ </input>
146
+ <output>
147
+ <port id="2" precision="I64" />
148
+ </output>
149
+ </layer>
150
+ <layer id="17" name="Constant_244577" type="Const" version="opset1">
151
+ <data element_type="i64" shape="" offset="21" size="8" />
152
+ <output>
153
+ <port id="0" precision="I64" />
154
+ </output>
155
+ </layer>
156
+ <layer id="18" name="Range_244578" type="Range" version="opset4">
157
+ <data output_type="i32" />
158
+ <input>
159
+ <port id="0" precision="I64" />
160
+ <port id="1" precision="I64" />
161
+ <port id="2" precision="I64" />
162
+ </input>
163
+ <output>
164
+ <port id="3" precision="I32">
165
+ <dim>-1</dim>
166
+ </port>
167
+ </output>
168
+ </layer>
169
+ <layer id="19" name="Constant_244642" type="Const" version="opset1">
170
+ <data element_type="u8" shape="39" offset="29" size="39" />
171
+ <output>
172
+ <port id="0" precision="U8">
173
+ <dim>39</dim>
174
+ </port>
175
+ </output>
176
+ </layer>
177
+ <layer id="20" name="SpecialTokensSplit_244643" type="SpecialTokensSplit" version="extension">
178
+ <input>
179
+ <port id="0" precision="I32">
180
+ <dim>-1</dim>
181
+ </port>
182
+ <port id="1" precision="I32">
183
+ <dim>-1</dim>
184
+ </port>
185
+ <port id="2" precision="I32">
186
+ <dim>-1</dim>
187
+ </port>
188
+ <port id="3" precision="I32">
189
+ <dim>-1</dim>
190
+ </port>
191
+ <port id="4" precision="U8">
192
+ <dim>-1</dim>
193
+ </port>
194
+ <port id="5" precision="U8">
195
+ <dim>39</dim>
196
+ </port>
197
+ </input>
198
+ <output>
199
+ <port id="6" precision="I32">
200
+ <dim>-1</dim>
201
+ </port>
202
+ <port id="7" precision="I32">
203
+ <dim>-1</dim>
204
+ </port>
205
+ <port id="8" precision="I32">
206
+ <dim>-1</dim>
207
+ </port>
208
+ <port id="9" precision="I32">
209
+ <dim>-1</dim>
210
+ </port>
211
+ <port id="10" precision="U8">
212
+ <dim>-1</dim>
213
+ </port>
214
+ <port id="11" precision="BOOL">
215
+ <dim>-1</dim>
216
+ </port>
217
+ </output>
218
+ </layer>
219
+ <layer id="21" name="CharsMapNormalization_244644" type="CharsMapNormalization" version="extension">
220
+ <data add_dummy_prefix="false" remove_extra_whitespaces="false" escape_whitespaces="false" normalization_form="nfc" case_fold="true" nmt="false" />
221
+ <input>
222
+ <port id="0" precision="I32">
223
+ <dim>-1</dim>
224
+ </port>
225
+ <port id="1" precision="I32">
226
+ <dim>-1</dim>
227
+ </port>
228
+ <port id="2" precision="U8">
229
+ <dim>-1</dim>
230
+ </port>
231
+ <port id="3" precision="BOOL">
232
+ <dim>-1</dim>
233
+ </port>
234
+ </input>
235
+ <output>
236
+ <port id="4" precision="I32">
237
+ <dim>-1</dim>
238
+ </port>
239
+ <port id="5" precision="I32">
240
+ <dim>-1</dim>
241
+ </port>
242
+ <port id="6" precision="U8">
243
+ <dim>-1</dim>
244
+ </port>
245
+ <port id="7" precision="BOOL">
246
+ <dim>-1</dim>
247
+ </port>
248
+ </output>
249
+ </layer>
250
+ <layer id="22" name="Constant_244646" type="Const" version="opset1">
251
+ <data element_type="u8" shape="3" offset="68" size="3" />
252
+ <output>
253
+ <port id="0" precision="U8">
254
+ <dim>3</dim>
255
+ </port>
256
+ </output>
257
+ </layer>
258
+ <layer id="23" name="Constant_244648" type="Const" version="opset1">
259
+ <data element_type="u8" shape="1" offset="71" size="1" />
260
+ <output>
261
+ <port id="0" precision="U8">
262
+ <dim>1</dim>
263
+ </port>
264
+ </output>
265
+ </layer>
266
+ <layer id="24" name="RegexNormalization_244649" type="RegexNormalization" version="extension">
267
+ <data global_replace="true" />
268
+ <input>
269
+ <port id="0" precision="I32">
270
+ <dim>-1</dim>
271
+ </port>
272
+ <port id="1" precision="I32">
273
+ <dim>-1</dim>
274
+ </port>
275
+ <port id="2" precision="U8">
276
+ <dim>-1</dim>
277
+ </port>
278
+ <port id="3" precision="BOOL">
279
+ <dim>-1</dim>
280
+ </port>
281
+ <port id="4" precision="U8">
282
+ <dim>3</dim>
283
+ </port>
284
+ <port id="5" precision="U8">
285
+ <dim>1</dim>
286
+ </port>
287
+ </input>
288
+ <output>
289
+ <port id="6" precision="I32">
290
+ <dim>-1</dim>
291
+ </port>
292
+ <port id="7" precision="I32">
293
+ <dim>-1</dim>
294
+ </port>
295
+ <port id="8" precision="U8">
296
+ <dim>-1</dim>
297
+ </port>
298
+ <port id="9" precision="BOOL">
299
+ <dim>-1</dim>
300
+ </port>
301
+ </output>
302
+ </layer>
303
+ <layer id="25" name="Constant_244651" type="Const" version="opset1">
304
+ <data element_type="u8" shape="57" offset="72" size="57" />
305
+ <output>
306
+ <port id="0" precision="U8">
307
+ <dim>57</dim>
308
+ </port>
309
+ </output>
310
+ </layer>
311
+ <layer id="26" name="RegexSplit_244652" type="RegexSplit" version="extension">
312
+ <data behaviour="remove" invert="true" max_splits="-1" />
313
+ <input>
314
+ <port id="0" precision="I32">
315
+ <dim>-1</dim>
316
+ </port>
317
+ <port id="1" precision="I32">
318
+ <dim>-1</dim>
319
+ </port>
320
+ <port id="2" precision="I32">
321
+ <dim>-1</dim>
322
+ </port>
323
+ <port id="3" precision="I32">
324
+ <dim>-1</dim>
325
+ </port>
326
+ <port id="4" precision="U8">
327
+ <dim>-1</dim>
328
+ </port>
329
+ <port id="5" precision="BOOL">
330
+ <dim>-1</dim>
331
+ </port>
332
+ <port id="6" precision="U8">
333
+ <dim>57</dim>
334
+ </port>
335
+ </input>
336
+ <output>
337
+ <port id="7" precision="I32">
338
+ <dim>-1</dim>
339
+ </port>
340
+ <port id="8" precision="I32">
341
+ <dim>-1</dim>
342
+ </port>
343
+ <port id="9" precision="I32">
344
+ <dim>-1</dim>
345
+ </port>
346
+ <port id="10" precision="I32">
347
+ <dim>-1</dim>
348
+ </port>
349
+ <port id="11" precision="U8">
350
+ <dim>-1</dim>
351
+ </port>
352
+ <port id="12" precision="BOOL">
353
+ <dim>-1</dim>
354
+ </port>
355
+ </output>
356
+ </layer>
357
+ <layer id="27" name="Constant_244654" type="Const" version="opset1">
358
+ <data element_type="u8" shape="74" offset="129" size="74" />
359
+ <output>
360
+ <port id="0" precision="U8">
361
+ <dim>74</dim>
362
+ </port>
363
+ </output>
364
+ </layer>
365
+ <layer id="28" name="RegexSplit_244655" type="RegexSplit" version="extension">
366
+ <data behaviour="isolate" invert="false" max_splits="-1" />
367
+ <input>
368
+ <port id="0" precision="I32">
369
+ <dim>-1</dim>
370
+ </port>
371
+ <port id="1" precision="I32">
372
+ <dim>-1</dim>
373
+ </port>
374
+ <port id="2" precision="I32">
375
+ <dim>-1</dim>
376
+ </port>
377
+ <port id="3" precision="I32">
378
+ <dim>-1</dim>
379
+ </port>
380
+ <port id="4" precision="U8">
381
+ <dim>-1</dim>
382
+ </port>
383
+ <port id="5" precision="BOOL">
384
+ <dim>-1</dim>
385
+ </port>
386
+ <port id="6" precision="U8">
387
+ <dim>74</dim>
388
+ </port>
389
+ </input>
390
+ <output>
391
+ <port id="7" precision="I32">
392
+ <dim>-1</dim>
393
+ </port>
394
+ <port id="8" precision="I32">
395
+ <dim>-1</dim>
396
+ </port>
397
+ <port id="9" precision="I32">
398
+ <dim>-1</dim>
399
+ </port>
400
+ <port id="10" precision="I32">
401
+ <dim>-1</dim>
402
+ </port>
403
+ <port id="11" precision="U8">
404
+ <dim>-1</dim>
405
+ </port>
406
+ <port id="12" precision="BOOL">
407
+ <dim>-1</dim>
408
+ </port>
409
+ </output>
410
+ </layer>
411
+ <layer id="29" name="Constant_244657" type="Const" version="opset1">
412
+ <data element_type="i32" shape="49408" offset="203" size="197632" />
413
+ <output>
414
+ <port id="0" precision="I32">
415
+ <dim>49408</dim>
416
+ </port>
417
+ </output>
418
+ </layer>
419
+ <layer id="30" name="Constant_244659" type="Const" version="opset1">
420
+ <data element_type="i32" shape="49408" offset="197835" size="197632" />
421
+ <output>
422
+ <port id="0" precision="I32">
423
+ <dim>49408</dim>
424
+ </port>
425
+ </output>
426
+ </layer>
427
+ <layer id="31" name="Constant_244661" type="Const" version="opset1">
428
+ <data element_type="u8" shape="419070" offset="395467" size="419070" />
429
+ <output>
430
+ <port id="0" precision="U8">
431
+ <dim>419070</dim>
432
+ </port>
433
+ </output>
434
+ </layer>
435
+ <layer id="32" name="Constant_244669" type="Const" version="opset1">
436
+ <data element_type="i32" shape="48894" offset="814537" size="195576" />
437
+ <output>
438
+ <port id="0" precision="I32">
439
+ <dim>48894</dim>
440
+ </port>
441
+ </output>
442
+ </layer>
443
+ <layer id="33" name="Constant_244671" type="Const" version="opset1">
444
+ <data element_type="i32" shape="48894" offset="1010113" size="195576" />
445
+ <output>
446
+ <port id="0" precision="I32">
447
+ <dim>48894</dim>
448
+ </port>
449
+ </output>
450
+ </layer>
451
+ <layer id="34" name="Constant_244673" type="Const" version="opset1">
452
+ <data element_type="u8" shape="145154" offset="1205689" size="145154" />
453
+ <output>
454
+ <port id="0" precision="U8">
455
+ <dim>145154</dim>
456
+ </port>
457
+ </output>
458
+ </layer>
459
+ <layer id="35" name="Constant_244675" type="Const" version="opset1">
460
+ <data element_type="i32" shape="48894" offset="1350843" size="195576" />
461
+ <output>
462
+ <port id="0" precision="I32">
463
+ <dim>48894</dim>
464
+ </port>
465
+ </output>
466
+ </layer>
467
+ <layer id="36" name="Constant_244677" type="Const" version="opset1">
468
+ <data element_type="i32" shape="48894" offset="1546419" size="195576" />
469
+ <output>
470
+ <port id="0" precision="I32">
471
+ <dim>48894</dim>
472
+ </port>
473
+ </output>
474
+ </layer>
475
+ <layer id="37" name="Constant_244679" type="Const" version="opset1">
476
+ <data element_type="u8" shape="272352" offset="1741995" size="272352" />
477
+ <output>
478
+ <port id="0" precision="U8">
479
+ <dim>272352</dim>
480
+ </port>
481
+ </output>
482
+ </layer>
483
+ <layer id="38" name="Constant_244663" type="Const" version="opset1">
484
+ <data element_type="i32" shape="2" offset="2014347" size="8" />
485
+ <output>
486
+ <port id="0" precision="I32">
487
+ <dim>2</dim>
488
+ </port>
489
+ </output>
490
+ </layer>
491
+ <layer id="39" name="Constant_244665" type="Const" version="opset1">
492
+ <data element_type="i32" shape="2" offset="2014355" size="8" />
493
+ <output>
494
+ <port id="0" precision="I32">
495
+ <dim>2</dim>
496
+ </port>
497
+ </output>
498
+ </layer>
499
+ <layer id="40" name="Constant_244667" type="Const" version="opset1">
500
+ <data element_type="u8" shape="28" offset="2014363" size="28" />
501
+ <output>
502
+ <port id="0" precision="U8">
503
+ <dim>28</dim>
504
+ </port>
505
+ </output>
506
+ </layer>
507
+ <layer id="41" name="Constant_244680" type="Const" version="opset1">
508
+ <data element_type="i32" shape="2" offset="2014391" size="8" />
509
+ <output>
510
+ <port id="0" precision="I32">
511
+ <dim>2</dim>
512
+ </port>
513
+ </output>
514
+ </layer>
515
+ <layer id="42" name="BPETokenizer_244681" type="BPETokenizer" version="extension">
516
+ <data unk_token="&lt;|endoftext|>" fuse_unk="false" suffix_indicator="" end_suffix="&lt;/w>" byte_fallback="false" cache_capacity="20000" />
517
+ <input>
518
+ <port id="0" precision="I32">
519
+ <dim>-1</dim>
520
+ </port>
521
+ <port id="1" precision="I32">
522
+ <dim>-1</dim>
523
+ </port>
524
+ <port id="2" precision="I32">
525
+ <dim>-1</dim>
526
+ </port>
527
+ <port id="3" precision="I32">
528
+ <dim>-1</dim>
529
+ </port>
530
+ <port id="4" precision="U8">
531
+ <dim>-1</dim>
532
+ </port>
533
+ <port id="5" precision="I32">
534
+ <dim>49408</dim>
535
+ </port>
536
+ <port id="6" precision="I32">
537
+ <dim>49408</dim>
538
+ </port>
539
+ <port id="7" precision="U8">
540
+ <dim>419070</dim>
541
+ </port>
542
+ <port id="8" precision="I32">
543
+ <dim>48894</dim>
544
+ </port>
545
+ <port id="9" precision="I32">
546
+ <dim>48894</dim>
547
+ </port>
548
+ <port id="10" precision="U8">
549
+ <dim>145154</dim>
550
+ </port>
551
+ <port id="11" precision="I32">
552
+ <dim>48894</dim>
553
+ </port>
554
+ <port id="12" precision="I32">
555
+ <dim>48894</dim>
556
+ </port>
557
+ <port id="13" precision="U8">
558
+ <dim>272352</dim>
559
+ </port>
560
+ <port id="14" precision="I32">
561
+ <dim>2</dim>
562
+ </port>
563
+ <port id="15" precision="I32">
564
+ <dim>2</dim>
565
+ </port>
566
+ <port id="16" precision="U8">
567
+ <dim>28</dim>
568
+ </port>
569
+ <port id="17" precision="I32">
570
+ <dim>2</dim>
571
+ </port>
572
+ </input>
573
+ <output>
574
+ <port id="18" precision="I32">
575
+ <dim>-1</dim>
576
+ </port>
577
+ <port id="19" precision="I32">
578
+ <dim>-1</dim>
579
+ </port>
580
+ <port id="20" precision="I32">
581
+ <dim>-1</dim>
582
+ </port>
583
+ </output>
584
+ </layer>
585
+ <layer id="43" name="Constant_244685" type="Const" version="opset1">
586
+ <data element_type="i32" shape="" offset="2014399" size="4" />
587
+ <output>
588
+ <port id="0" precision="I32" />
589
+ </output>
590
+ </layer>
591
+ <layer id="44" name="Constant_244686" type="Const" version="opset1">
592
+ <data element_type="i32" shape="" offset="2014403" size="4" />
593
+ <output>
594
+ <port id="0" precision="I32" />
595
+ </output>
596
+ </layer>
597
+ <layer id="45" name="Select_244687" type="Select" version="opset1">
598
+ <data auto_broadcast="numpy" />
599
+ <input>
600
+ <port id="0" precision="BOOL" />
601
+ <port id="1" precision="I32" />
602
+ <port id="2" precision="I32" />
603
+ </input>
604
+ <output>
605
+ <port id="3" precision="I32" />
606
+ </output>
607
+ </layer>
608
+ <layer id="46" name="Constant_244689" type="Const" version="opset1">
609
+ <data element_type="u8" shape="5" offset="2014407" size="5" />
610
+ <output>
611
+ <port id="0" precision="U8">
612
+ <dim>5</dim>
613
+ </port>
614
+ </output>
615
+ </layer>
616
+ <layer id="47" name="Constant_244691" type="Const" version="opset1">
617
+ <data element_type="u8" shape="13" offset="2014412" size="13" />
618
+ <output>
619
+ <port id="0" precision="U8">
620
+ <dim>13</dim>
621
+ </port>
622
+ </output>
623
+ </layer>
624
+ <layer id="48" name="Truncate_244692" type="Truncate" version="extension">
625
+ <data m_num_inputs="1" />
626
+ <input>
627
+ <port id="0" precision="I32">
628
+ <dim>-1</dim>
629
+ </port>
630
+ <port id="1" precision="I32">
631
+ <dim>-1</dim>
632
+ </port>
633
+ <port id="2" precision="I32">
634
+ <dim>-1</dim>
635
+ </port>
636
+ <port id="3" precision="I32" />
637
+ <port id="4" precision="U8">
638
+ <dim>5</dim>
639
+ </port>
640
+ <port id="5" precision="U8">
641
+ <dim>13</dim>
642
+ </port>
643
+ </input>
644
+ <output>
645
+ <port id="6" precision="I32">
646
+ <dim>-1</dim>
647
+ </port>
648
+ <port id="7" precision="I32">
649
+ <dim>-1</dim>
650
+ </port>
651
+ <port id="8" precision="I32">
652
+ <dim>-1</dim>
653
+ </port>
654
+ </output>
655
+ </layer>
656
+ <layer id="49" name="Constant_244696" type="Const" version="opset1">
657
+ <data element_type="i32" shape="" offset="1" size="4" />
658
+ <output>
659
+ <port id="0" precision="I32" />
660
+ </output>
661
+ </layer>
662
+ <layer id="50" name="Constant_244697" type="Const" version="opset1">
663
+ <data element_type="i32" shape="" offset="5" size="4" />
664
+ <output>
665
+ <port id="0" precision="I32" />
666
+ </output>
667
+ </layer>
668
+ <layer id="51" name="Constant_244698" type="Const" version="opset1">
669
+ <data element_type="i32" shape="1" offset="2014425" size="4" />
670
+ <output>
671
+ <port id="0" precision="I32">
672
+ <dim>1</dim>
673
+ </port>
674
+ </output>
675
+ </layer>
676
+ <layer id="52" name="Constant_244699" type="Const" version="opset1">
677
+ <data element_type="i32" shape="3" offset="2014429" size="12" />
678
+ <output>
679
+ <port id="0" precision="I32">
680
+ <dim>3</dim>
681
+ </port>
682
+ </output>
683
+ </layer>
684
+ <layer id="53" name="CombineSegments_244700" type="CombineSegments" version="extension">
685
+ <input>
686
+ <port id="0" precision="I32" />
687
+ <port id="1" precision="I32" />
688
+ <port id="2" precision="I32">
689
+ <dim>1</dim>
690
+ </port>
691
+ <port id="3" precision="I32">
692
+ <dim>-1</dim>
693
+ </port>
694
+ <port id="4" precision="I32">
695
+ <dim>-1</dim>
696
+ </port>
697
+ <port id="5" precision="I32">
698
+ <dim>-1</dim>
699
+ </port>
700
+ <port id="6" precision="I32" />
701
+ <port id="7" precision="I32" />
702
+ <port id="8" precision="I32">
703
+ <dim>1</dim>
704
+ </port>
705
+ <port id="9" precision="I32">
706
+ <dim>3</dim>
707
+ </port>
708
+ </input>
709
+ <output>
710
+ <port id="10" precision="I32">
711
+ <dim>-1</dim>
712
+ </port>
713
+ <port id="11" precision="I32">
714
+ <dim>-1</dim>
715
+ </port>
716
+ <port id="12" precision="I32">
717
+ <dim>-1</dim>
718
+ </port>
719
+ <port id="13" precision="I32">
720
+ <dim>-1</dim>
721
+ </port>
722
+ <port id="14" precision="I32">
723
+ <dim>-1</dim>
724
+ </port>
725
+ <port id="15" precision="I32">
726
+ <dim>-1</dim>
727
+ </port>
728
+ </output>
729
+ </layer>
730
+ <layer id="54" name="Subtract_244701" type="Subtract" version="opset1">
731
+ <data auto_broadcast="numpy" />
732
+ <input>
733
+ <port id="0" precision="I32">
734
+ <dim>-1</dim>
735
+ </port>
736
+ <port id="1" precision="I32">
737
+ <dim>-1</dim>
738
+ </port>
739
+ </input>
740
+ <output>
741
+ <port id="2" precision="I32">
742
+ <dim>-1</dim>
743
+ </port>
744
+ </output>
745
+ </layer>
746
+ <layer id="55" name="Constant_244702" type="Const" version="opset1">
747
+ <data element_type="i32" shape="" offset="1" size="4" />
748
+ <output>
749
+ <port id="0" precision="I32" />
750
+ </output>
751
+ </layer>
752
+ <layer id="56" name="ReduceMax_244703" type="ReduceMax" version="opset1">
753
+ <data keep_dims="false" />
754
+ <input>
755
+ <port id="0" precision="I32">
756
+ <dim>-1</dim>
757
+ </port>
758
+ <port id="1" precision="I32" />
759
+ </input>
760
+ <output>
761
+ <port id="2" precision="I32" />
762
+ </output>
763
+ </layer>
764
+ <layer id="57" name="Constant_244704" type="Const" version="opset1">
765
+ <data element_type="i32" shape="" offset="2014425" size="4" />
766
+ <output>
767
+ <port id="0" precision="I32" />
768
+ </output>
769
+ </layer>
770
+ <layer id="58" name="RaggedToDense_244705" type="RaggedToDense" version="extension">
771
+ <data pad_right="true" m_pad_max_length="false" />
772
+ <input>
773
+ <port id="0" precision="I32">
774
+ <dim>-1</dim>
775
+ </port>
776
+ <port id="1" precision="I32">
777
+ <dim>-1</dim>
778
+ </port>
779
+ <port id="2" precision="I32">
780
+ <dim>-1</dim>
781
+ </port>
782
+ <port id="3" precision="I32" />
783
+ <port id="4" precision="I32" />
784
+ </input>
785
+ <output>
786
+ <port id="5" precision="I32">
787
+ <dim>-1</dim>
788
+ <dim>-1</dim>
789
+ </port>
790
+ <port id="6" precision="BOOL">
791
+ <dim>-1</dim>
792
+ <dim>-1</dim>
793
+ </port>
794
+ </output>
795
+ </layer>
796
+ <layer id="59" name="Convert_244706" type="Convert" version="opset1">
797
+ <data destination_type="i32" />
798
+ <input>
799
+ <port id="0" precision="BOOL">
800
+ <dim>-1</dim>
801
+ <dim>-1</dim>
802
+ </port>
803
+ </input>
804
+ <output>
805
+ <port id="1" precision="I32">
806
+ <dim>-1</dim>
807
+ <dim>-1</dim>
808
+ </port>
809
+ </output>
810
+ </layer>
811
+ <layer id="60" name="Convert_244706.0" type="Convert" version="opset1">
812
+ <data destination_type="i64" />
813
+ <input>
814
+ <port id="0" precision="I32">
815
+ <dim>-1</dim>
816
+ <dim>-1</dim>
817
+ </port>
818
+ </input>
819
+ <output>
820
+ <port id="1" precision="I64" names="attention_mask">
821
+ <dim>-1</dim>
822
+ <dim>-1</dim>
823
+ </port>
824
+ </output>
825
+ </layer>
826
+ <layer id="61" name="RaggedToDense_244705.0" type="Convert" version="opset1">
827
+ <data destination_type="i64" />
828
+ <input>
829
+ <port id="0" precision="I32">
830
+ <dim>-1</dim>
831
+ <dim>-1</dim>
832
+ </port>
833
+ </input>
834
+ <output>
835
+ <port id="1" precision="I64" names="input_ids">
836
+ <dim>-1</dim>
837
+ <dim>-1</dim>
838
+ </port>
839
+ </output>
840
+ </layer>
841
+ <layer id="62" name="Assign_244684" type="Assign" version="opset6">
842
+ <data variable_id="truncation" />
843
+ <input>
844
+ <port id="0" precision="BOOL" />
845
+ </input>
846
+ <output>
847
+ <port id="1" precision="BOOL" />
848
+ </output>
849
+ </layer>
850
+ <layer id="63" name="Result_244709" type="Result" version="opset1" output_names="input_ids">
851
+ <input>
852
+ <port id="0" precision="I64">
853
+ <dim>-1</dim>
854
+ <dim>-1</dim>
855
+ </port>
856
+ </input>
857
+ </layer>
858
+ <layer id="64" name="Result_244711" type="Result" version="opset1" output_names="attention_mask">
859
+ <input>
860
+ <port id="0" precision="I64">
861
+ <dim>-1</dim>
862
+ <dim>-1</dim>
863
+ </port>
864
+ </input>
865
+ </layer>
866
+ </layers>
867
+ <edges>
868
+ <edge from-layer="0" from-port="0" to-layer="7" to-port="0" />
869
+ <edge from-layer="1" from-port="0" to-layer="2" to-port="0" />
870
+ <edge from-layer="2" from-port="1" to-layer="45" to-port="0" />
871
+ <edge from-layer="2" from-port="1" to-layer="62" to-port="0" />
872
+ <edge from-layer="3" from-port="0" to-layer="53" to-port="0" />
873
+ <edge from-layer="4" from-port="0" to-layer="53" to-port="1" />
874
+ <edge from-layer="5" from-port="0" to-layer="53" to-port="2" />
875
+ <edge from-layer="6" from-port="0" to-layer="13" to-port="0" />
876
+ <edge from-layer="7" from-port="1" to-layer="8" to-port="0" />
877
+ <edge from-layer="7" from-port="3" to-layer="20" to-port="4" />
878
+ <edge from-layer="7" from-port="2" to-layer="20" to-port="3" />
879
+ <edge from-layer="7" from-port="1" to-layer="20" to-port="2" />
880
+ <edge from-layer="8" from-port="1" to-layer="11" to-port="0" />
881
+ <edge from-layer="9" from-port="0" to-layer="11" to-port="1" />
882
+ <edge from-layer="10" from-port="0" to-layer="11" to-port="2" />
883
+ <edge from-layer="11" from-port="3" to-layer="13" to-port="1" />
884
+ <edge from-layer="11" from-port="3" to-layer="16" to-port="0" />
885
+ <edge from-layer="12" from-port="0" to-layer="13" to-port="2" />
886
+ <edge from-layer="13" from-port="3" to-layer="20" to-port="0" />
887
+ <edge from-layer="14" from-port="0" to-layer="18" to-port="0" />
888
+ <edge from-layer="15" from-port="0" to-layer="16" to-port="1" />
889
+ <edge from-layer="16" from-port="2" to-layer="18" to-port="1" />
890
+ <edge from-layer="17" from-port="0" to-layer="18" to-port="2" />
891
+ <edge from-layer="18" from-port="3" to-layer="20" to-port="1" />
892
+ <edge from-layer="19" from-port="0" to-layer="20" to-port="5" />
893
+ <edge from-layer="20" from-port="7" to-layer="26" to-port="1" />
894
+ <edge from-layer="20" from-port="6" to-layer="26" to-port="0" />
895
+ <edge from-layer="20" from-port="11" to-layer="21" to-port="3" />
896
+ <edge from-layer="20" from-port="10" to-layer="21" to-port="2" />
897
+ <edge from-layer="20" from-port="9" to-layer="21" to-port="1" />
898
+ <edge from-layer="20" from-port="8" to-layer="21" to-port="0" />
899
+ <edge from-layer="21" from-port="7" to-layer="24" to-port="3" />
900
+ <edge from-layer="21" from-port="4" to-layer="24" to-port="0" />
901
+ <edge from-layer="21" from-port="5" to-layer="24" to-port="1" />
902
+ <edge from-layer="21" from-port="6" to-layer="24" to-port="2" />
903
+ <edge from-layer="22" from-port="0" to-layer="24" to-port="4" />
904
+ <edge from-layer="23" from-port="0" to-layer="24" to-port="5" />
905
+ <edge from-layer="24" from-port="7" to-layer="26" to-port="3" />
906
+ <edge from-layer="24" from-port="8" to-layer="26" to-port="4" />
907
+ <edge from-layer="24" from-port="9" to-layer="26" to-port="5" />
908
+ <edge from-layer="24" from-port="6" to-layer="26" to-port="2" />
909
+ <edge from-layer="25" from-port="0" to-layer="26" to-port="6" />
910
+ <edge from-layer="26" from-port="11" to-layer="28" to-port="4" />
911
+ <edge from-layer="26" from-port="12" to-layer="28" to-port="5" />
912
+ <edge from-layer="26" from-port="10" to-layer="28" to-port="3" />
913
+ <edge from-layer="26" from-port="9" to-layer="28" to-port="2" />
914
+ <edge from-layer="26" from-port="8" to-layer="28" to-port="1" />
915
+ <edge from-layer="26" from-port="7" to-layer="28" to-port="0" />
916
+ <edge from-layer="27" from-port="0" to-layer="28" to-port="6" />
917
+ <edge from-layer="28" from-port="11" to-layer="42" to-port="4" />
918
+ <edge from-layer="28" from-port="7" to-layer="42" to-port="0" />
919
+ <edge from-layer="28" from-port="8" to-layer="42" to-port="1" />
920
+ <edge from-layer="28" from-port="9" to-layer="42" to-port="2" />
921
+ <edge from-layer="28" from-port="10" to-layer="42" to-port="3" />
922
+ <edge from-layer="29" from-port="0" to-layer="42" to-port="5" />
923
+ <edge from-layer="30" from-port="0" to-layer="42" to-port="6" />
924
+ <edge from-layer="31" from-port="0" to-layer="42" to-port="7" />
925
+ <edge from-layer="32" from-port="0" to-layer="42" to-port="8" />
926
+ <edge from-layer="33" from-port="0" to-layer="42" to-port="9" />
927
+ <edge from-layer="34" from-port="0" to-layer="42" to-port="10" />
928
+ <edge from-layer="35" from-port="0" to-layer="42" to-port="11" />
929
+ <edge from-layer="36" from-port="0" to-layer="42" to-port="12" />
930
+ <edge from-layer="37" from-port="0" to-layer="42" to-port="13" />
931
+ <edge from-layer="38" from-port="0" to-layer="42" to-port="14" />
932
+ <edge from-layer="39" from-port="0" to-layer="42" to-port="15" />
933
+ <edge from-layer="40" from-port="0" to-layer="42" to-port="16" />
934
+ <edge from-layer="41" from-port="0" to-layer="42" to-port="17" />
935
+ <edge from-layer="42" from-port="18" to-layer="48" to-port="0" />
936
+ <edge from-layer="42" from-port="19" to-layer="48" to-port="1" />
937
+ <edge from-layer="42" from-port="20" to-layer="48" to-port="2" />
938
+ <edge from-layer="43" from-port="0" to-layer="45" to-port="1" />
939
+ <edge from-layer="44" from-port="0" to-layer="45" to-port="2" />
940
+ <edge from-layer="45" from-port="3" to-layer="48" to-port="3" />
941
+ <edge from-layer="46" from-port="0" to-layer="48" to-port="4" />
942
+ <edge from-layer="47" from-port="0" to-layer="48" to-port="5" />
943
+ <edge from-layer="48" from-port="8" to-layer="53" to-port="5" />
944
+ <edge from-layer="48" from-port="6" to-layer="53" to-port="3" />
945
+ <edge from-layer="48" from-port="7" to-layer="53" to-port="4" />
946
+ <edge from-layer="49" from-port="0" to-layer="53" to-port="6" />
947
+ <edge from-layer="50" from-port="0" to-layer="53" to-port="7" />
948
+ <edge from-layer="51" from-port="0" to-layer="53" to-port="8" />
949
+ <edge from-layer="52" from-port="0" to-layer="53" to-port="9" />
950
+ <edge from-layer="53" from-port="11" to-layer="58" to-port="1" />
951
+ <edge from-layer="53" from-port="12" to-layer="58" to-port="2" />
952
+ <edge from-layer="53" from-port="10" to-layer="58" to-port="0" />
953
+ <edge from-layer="53" from-port="10" to-layer="54" to-port="1" />
954
+ <edge from-layer="53" from-port="11" to-layer="54" to-port="0" />
955
+ <edge from-layer="54" from-port="2" to-layer="56" to-port="0" />
956
+ <edge from-layer="55" from-port="0" to-layer="56" to-port="1" />
957
+ <edge from-layer="56" from-port="2" to-layer="58" to-port="3" />
958
+ <edge from-layer="57" from-port="0" to-layer="58" to-port="4" />
959
+ <edge from-layer="58" from-port="6" to-layer="59" to-port="0" />
960
+ <edge from-layer="58" from-port="5" to-layer="61" to-port="0" />
961
+ <edge from-layer="59" from-port="1" to-layer="60" to-port="0" />
962
+ <edge from-layer="60" from-port="1" to-layer="64" to-port="0" />
963
+ <edge from-layer="61" from-port="1" to-layer="63" to-port="0" />
964
+ </edges>
965
+ <rt_info>
966
+ <info name="OpenVINO Runtime" value="2026.4.0-22959-99c81491cc3-releases/2026/4" />
967
+ <add_attention_mask value="True" />
968
+ <add_prefix_space />
969
+ <add_special_tokens value="True" />
970
+ <bos_token_id value="49406" />
971
+ <clean_up_tokenization_spaces />
972
+ <detokenizer_input_type value="i64" />
973
+ <eos_token_id value="49407" />
974
+ <handle_special_tokens_with_re />
975
+ <max_length />
976
+ <number_of_inputs value="1" />
977
+ <openvino_tokenizers_version value="2026.4.0.0-736-a04accf6282" />
978
+ <openvino_version value="2026.4.0-22959-99c81491cc3-releases/2026/4" />
979
+ <original_post_processor_template value="{&quot;type&quot;: &quot;RobertaProcessing&quot;, &quot;sep&quot;: [&quot;&lt;|endoftext|>&quot;, 49407], &quot;cls&quot;: [&quot;&lt;|startoftext|>&quot;, 49406], &quot;trim_offsets&quot;: false, &quot;add_prefix_space&quot;: false}" />
980
+ <original_tokenizer_class value="&lt;class 'transformers.models.clip.tokenization_clip_fast.CLIPTokenizerFast'>" />
981
+ <pad_token_id value="49407" />
982
+ <processed_post_processor_template value="{&quot;single&quot;: {&quot;ids&quot;: [49406, -1, 49407], &quot;type_ids&quot;: [0, 0, 0]}, &quot;pair&quot;: {&quot;ids&quot;: [49406, -1, 49407, 49407, -1, 49407], &quot;type_ids&quot;: [0, 0, 0, 0, 0, 0]}}" />
983
+ <sentencepiece_version value="0.2.2" />
984
+ <skip_special_tokens value="True" />
985
+ <streaming_detokenizer value="False" />
986
+ <tokenizer_output_type value="i64" />
987
+ <tokenizers_version value="0.22.0" />
988
+ <transformers_version value="4.57.6" />
989
+ <truncation value="False" />
990
+ <use_max_padding value="False" />
991
+ <use_sentencepiece_backend value="False" />
992
+ <utf8_replace_mode value="replace" />
993
+ <with_detokenizer value="True" />
994
+ </rt_info>
995
+ </net>
tokenizer/special_tokens_map.json ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token": {
3
+ "content": "<|startoftext|>",
4
+ "lstrip": false,
5
+ "normalized": true,
6
+ "rstrip": false,
7
+ "single_word": false
8
+ },
9
+ "eos_token": {
10
+ "content": "<|endoftext|>",
11
+ "lstrip": false,
12
+ "normalized": false,
13
+ "rstrip": false,
14
+ "single_word": false
15
+ },
16
+ "pad_token": {
17
+ "content": "<|endoftext|>",
18
+ "lstrip": false,
19
+ "normalized": false,
20
+ "rstrip": false,
21
+ "single_word": false
22
+ },
23
+ "unk_token": {
24
+ "content": "<|endoftext|>",
25
+ "lstrip": false,
26
+ "normalized": false,
27
+ "rstrip": false,
28
+ "single_word": false
29
+ }
30
+ }
tokenizer/tokenizer_config.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_prefix_space": false,
3
+ "added_tokens_decoder": {
4
+ "49406": {
5
+ "content": "<|startoftext|>",
6
+ "lstrip": false,
7
+ "normalized": true,
8
+ "rstrip": false,
9
+ "single_word": false,
10
+ "special": true
11
+ },
12
+ "49407": {
13
+ "content": "<|endoftext|>",
14
+ "lstrip": false,
15
+ "normalized": false,
16
+ "rstrip": false,
17
+ "single_word": false,
18
+ "special": true
19
+ }
20
+ },
21
+ "bos_token": "<|startoftext|>",
22
+ "clean_up_tokenization_spaces": true,
23
+ "do_lower_case": true,
24
+ "eos_token": "<|endoftext|>",
25
+ "errors": "replace",
26
+ "extra_special_tokens": {},
27
+ "model_max_length": 77,
28
+ "pad_token": "<|endoftext|>",
29
+ "tokenizer_class": "CLIPTokenizer",
30
+ "unk_token": "<|endoftext|>"
31
+ }
tokenizer/vocab.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer_2/merges.txt ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer_2/openvino_detokenizer.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3c2f093137fe95a10c67c37897aa809730314d9a3e9da26be05c3cf4b39d4772
3
+ size 814407
tokenizer_2/openvino_detokenizer.xml ADDED
@@ -0,0 +1,378 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <net name="detokenizer" version="11">
3
+ <layers>
4
+ <layer id="0" name="Parameter_245150" type="Parameter" version="opset1">
5
+ <data shape="?,?" element_type="i64" />
6
+ <output>
7
+ <port id="0" precision="I64" names="Parameter_245150">
8
+ <dim>-1</dim>
9
+ <dim>-1</dim>
10
+ </port>
11
+ </output>
12
+ </layer>
13
+ <layer id="1" name="Convert_245200" type="Convert" version="opset1">
14
+ <data destination_type="i32" />
15
+ <input>
16
+ <port id="0" precision="I64">
17
+ <dim>-1</dim>
18
+ <dim>-1</dim>
19
+ </port>
20
+ </input>
21
+ <output>
22
+ <port id="1" precision="I32">
23
+ <dim>-1</dim>
24
+ <dim>-1</dim>
25
+ </port>
26
+ </output>
27
+ </layer>
28
+ <layer id="2" name="Constant_245152" type="Const" version="opset1">
29
+ <data element_type="i32" shape="49408" offset="0" size="197632" />
30
+ <output>
31
+ <port id="0" precision="I32">
32
+ <dim>49408</dim>
33
+ </port>
34
+ </output>
35
+ </layer>
36
+ <layer id="3" name="Constant_245154" type="Const" version="opset1">
37
+ <data element_type="i32" shape="49408" offset="197632" size="197632" />
38
+ <output>
39
+ <port id="0" precision="I32">
40
+ <dim>49408</dim>
41
+ </port>
42
+ </output>
43
+ </layer>
44
+ <layer id="4" name="Constant_245156" type="Const" version="opset1">
45
+ <data element_type="u8" shape="419070" offset="395264" size="419070" />
46
+ <output>
47
+ <port id="0" precision="U8">
48
+ <dim>419070</dim>
49
+ </port>
50
+ </output>
51
+ </layer>
52
+ <layer id="5" name="Slice_245161" type="Const" version="opset1">
53
+ <data element_type="i32" shape="3" offset="814334" size="12" />
54
+ <output>
55
+ <port id="0" precision="I32">
56
+ <dim>3</dim>
57
+ </port>
58
+ </output>
59
+ </layer>
60
+ <layer id="6" name="VocabDecoder_245163" type="VocabDecoder" version="extension">
61
+ <data skip_tokens="" />
62
+ <input>
63
+ <port id="0" precision="I32">
64
+ <dim>-1</dim>
65
+ <dim>-1</dim>
66
+ </port>
67
+ <port id="1" precision="I32">
68
+ <dim>49408</dim>
69
+ </port>
70
+ <port id="2" precision="I32">
71
+ <dim>49408</dim>
72
+ </port>
73
+ <port id="3" precision="U8">
74
+ <dim>419070</dim>
75
+ </port>
76
+ <port id="4" precision="I32">
77
+ <dim>3</dim>
78
+ </port>
79
+ </input>
80
+ <output>
81
+ <port id="5" precision="I32">
82
+ <dim>-1</dim>
83
+ </port>
84
+ <port id="6" precision="I32">
85
+ <dim>-1</dim>
86
+ </port>
87
+ <port id="7" precision="I32">
88
+ <dim>-1</dim>
89
+ </port>
90
+ <port id="8" precision="I32">
91
+ <dim>-1</dim>
92
+ </port>
93
+ <port id="9" precision="U8">
94
+ <dim>-1</dim>
95
+ </port>
96
+ </output>
97
+ </layer>
98
+ <layer id="7" name="FuzeRagged_245164" type="FuzeRagged" version="extension">
99
+ <input>
100
+ <port id="0" precision="I32">
101
+ <dim>-1</dim>
102
+ </port>
103
+ <port id="1" precision="I32">
104
+ <dim>-1</dim>
105
+ </port>
106
+ <port id="2" precision="I32">
107
+ <dim>-1</dim>
108
+ </port>
109
+ <port id="3" precision="I32">
110
+ <dim>-1</dim>
111
+ </port>
112
+ </input>
113
+ <output>
114
+ <port id="4" precision="I32">
115
+ <dim>-1</dim>
116
+ </port>
117
+ <port id="5" precision="I32">
118
+ <dim>-1</dim>
119
+ </port>
120
+ </output>
121
+ </layer>
122
+ <layer id="8" name="UTF8Validate_245165" type="UTF8Validate" version="extension">
123
+ <data replace_mode="true" />
124
+ <input>
125
+ <port id="0" precision="I32">
126
+ <dim>-1</dim>
127
+ </port>
128
+ <port id="1" precision="I32">
129
+ <dim>-1</dim>
130
+ </port>
131
+ <port id="2" precision="U8">
132
+ <dim>-1</dim>
133
+ </port>
134
+ </input>
135
+ <output>
136
+ <port id="3" precision="I32">
137
+ <dim>-1</dim>
138
+ </port>
139
+ <port id="4" precision="I32">
140
+ <dim>-1</dim>
141
+ </port>
142
+ <port id="5" precision="U8">
143
+ <dim>-1</dim>
144
+ </port>
145
+ </output>
146
+ </layer>
147
+ <layer id="9" name="Constant_245167" type="Const" version="opset1">
148
+ <data element_type="u8" shape="4" offset="814346" size="4" />
149
+ <output>
150
+ <port id="0" precision="U8">
151
+ <dim>4</dim>
152
+ </port>
153
+ </output>
154
+ </layer>
155
+ <layer id="10" name="Constant_245169" type="Const" version="opset1">
156
+ <data element_type="u8" shape="1" offset="814350" size="1" />
157
+ <output>
158
+ <port id="0" precision="U8">
159
+ <dim>1</dim>
160
+ </port>
161
+ </output>
162
+ </layer>
163
+ <layer id="11" name="RegexNormalization_245170" type="RegexNormalization" version="extension">
164
+ <data global_replace="true" />
165
+ <input>
166
+ <port id="0" precision="I32">
167
+ <dim>-1</dim>
168
+ </port>
169
+ <port id="1" precision="I32">
170
+ <dim>-1</dim>
171
+ </port>
172
+ <port id="2" precision="U8">
173
+ <dim>-1</dim>
174
+ </port>
175
+ <port id="3" precision="U8">
176
+ <dim>4</dim>
177
+ </port>
178
+ <port id="4" precision="U8">
179
+ <dim>1</dim>
180
+ </port>
181
+ </input>
182
+ <output>
183
+ <port id="5" precision="I32">
184
+ <dim>-1</dim>
185
+ </port>
186
+ <port id="6" precision="I32">
187
+ <dim>-1</dim>
188
+ </port>
189
+ <port id="7" precision="U8">
190
+ <dim>-1</dim>
191
+ </port>
192
+ </output>
193
+ </layer>
194
+ <layer id="12" name="Constant_245172" type="Const" version="opset1">
195
+ <data element_type="u8" shape="2" offset="814351" size="2" />
196
+ <output>
197
+ <port id="0" precision="U8">
198
+ <dim>2</dim>
199
+ </port>
200
+ </output>
201
+ </layer>
202
+ <layer id="13" name="Constant_245174" type="Const" version="opset1">
203
+ <data element_type="u8" shape="0" offset="814353" size="1" />
204
+ <output>
205
+ <port id="0" precision="U8">
206
+ <dim>0</dim>
207
+ </port>
208
+ </output>
209
+ </layer>
210
+ <layer id="14" name="RegexNormalization_245175" type="RegexNormalization" version="extension">
211
+ <data global_replace="true" />
212
+ <input>
213
+ <port id="0" precision="I32">
214
+ <dim>-1</dim>
215
+ </port>
216
+ <port id="1" precision="I32">
217
+ <dim>-1</dim>
218
+ </port>
219
+ <port id="2" precision="U8">
220
+ <dim>-1</dim>
221
+ </port>
222
+ <port id="3" precision="U8">
223
+ <dim>2</dim>
224
+ </port>
225
+ <port id="4" precision="U8">
226
+ <dim>0</dim>
227
+ </port>
228
+ </input>
229
+ <output>
230
+ <port id="5" precision="I32">
231
+ <dim>-1</dim>
232
+ </port>
233
+ <port id="6" precision="I32">
234
+ <dim>-1</dim>
235
+ </port>
236
+ <port id="7" precision="U8">
237
+ <dim>-1</dim>
238
+ </port>
239
+ </output>
240
+ </layer>
241
+ <layer id="15" name="Constant_245177" type="Const" version="opset1">
242
+ <data element_type="u8" shape="51" offset="814354" size="51" />
243
+ <output>
244
+ <port id="0" precision="U8">
245
+ <dim>51</dim>
246
+ </port>
247
+ </output>
248
+ </layer>
249
+ <layer id="16" name="Constant_245179" type="Const" version="opset1">
250
+ <data element_type="u8" shape="2" offset="814405" size="2" />
251
+ <output>
252
+ <port id="0" precision="U8">
253
+ <dim>2</dim>
254
+ </port>
255
+ </output>
256
+ </layer>
257
+ <layer id="17" name="RegexNormalization_245180" type="RegexNormalization" version="extension">
258
+ <data global_replace="true" />
259
+ <input>
260
+ <port id="0" precision="I32">
261
+ <dim>-1</dim>
262
+ </port>
263
+ <port id="1" precision="I32">
264
+ <dim>-1</dim>
265
+ </port>
266
+ <port id="2" precision="U8">
267
+ <dim>-1</dim>
268
+ </port>
269
+ <port id="3" precision="U8">
270
+ <dim>51</dim>
271
+ </port>
272
+ <port id="4" precision="U8">
273
+ <dim>2</dim>
274
+ </port>
275
+ </input>
276
+ <output>
277
+ <port id="5" precision="I32">
278
+ <dim>-1</dim>
279
+ </port>
280
+ <port id="6" precision="I32">
281
+ <dim>-1</dim>
282
+ </port>
283
+ <port id="7" precision="U8">
284
+ <dim>-1</dim>
285
+ </port>
286
+ </output>
287
+ </layer>
288
+ <layer id="18" name="StringTensorPack_245181" type="StringTensorPack" version="opset15">
289
+ <input>
290
+ <port id="0" precision="I32">
291
+ <dim>-1</dim>
292
+ </port>
293
+ <port id="1" precision="I32">
294
+ <dim>-1</dim>
295
+ </port>
296
+ <port id="2" precision="U8">
297
+ <dim>-1</dim>
298
+ </port>
299
+ </input>
300
+ <output>
301
+ <port id="3" precision="STRING" names="Result_245182,string_output">
302
+ <dim>-1</dim>
303
+ </port>
304
+ </output>
305
+ </layer>
306
+ <layer id="19" name="Result_245182" type="Result" version="opset1" output_names="Result_245182,string_output">
307
+ <input>
308
+ <port id="0" precision="STRING">
309
+ <dim>-1</dim>
310
+ </port>
311
+ </input>
312
+ </layer>
313
+ </layers>
314
+ <edges>
315
+ <edge from-layer="0" from-port="0" to-layer="1" to-port="0" />
316
+ <edge from-layer="1" from-port="1" to-layer="6" to-port="0" />
317
+ <edge from-layer="2" from-port="0" to-layer="6" to-port="1" />
318
+ <edge from-layer="3" from-port="0" to-layer="6" to-port="2" />
319
+ <edge from-layer="4" from-port="0" to-layer="6" to-port="3" />
320
+ <edge from-layer="5" from-port="0" to-layer="6" to-port="4" />
321
+ <edge from-layer="6" from-port="5" to-layer="7" to-port="0" />
322
+ <edge from-layer="6" from-port="6" to-layer="7" to-port="1" />
323
+ <edge from-layer="6" from-port="7" to-layer="7" to-port="2" />
324
+ <edge from-layer="6" from-port="8" to-layer="7" to-port="3" />
325
+ <edge from-layer="6" from-port="9" to-layer="8" to-port="2" />
326
+ <edge from-layer="7" from-port="4" to-layer="8" to-port="0" />
327
+ <edge from-layer="7" from-port="5" to-layer="8" to-port="1" />
328
+ <edge from-layer="8" from-port="3" to-layer="11" to-port="0" />
329
+ <edge from-layer="8" from-port="4" to-layer="11" to-port="1" />
330
+ <edge from-layer="8" from-port="5" to-layer="11" to-port="2" />
331
+ <edge from-layer="9" from-port="0" to-layer="11" to-port="3" />
332
+ <edge from-layer="10" from-port="0" to-layer="11" to-port="4" />
333
+ <edge from-layer="11" from-port="5" to-layer="14" to-port="0" />
334
+ <edge from-layer="11" from-port="6" to-layer="14" to-port="1" />
335
+ <edge from-layer="11" from-port="7" to-layer="14" to-port="2" />
336
+ <edge from-layer="12" from-port="0" to-layer="14" to-port="3" />
337
+ <edge from-layer="13" from-port="0" to-layer="14" to-port="4" />
338
+ <edge from-layer="14" from-port="5" to-layer="17" to-port="0" />
339
+ <edge from-layer="14" from-port="6" to-layer="17" to-port="1" />
340
+ <edge from-layer="14" from-port="7" to-layer="17" to-port="2" />
341
+ <edge from-layer="15" from-port="0" to-layer="17" to-port="3" />
342
+ <edge from-layer="16" from-port="0" to-layer="17" to-port="4" />
343
+ <edge from-layer="17" from-port="5" to-layer="18" to-port="0" />
344
+ <edge from-layer="17" from-port="6" to-layer="18" to-port="1" />
345
+ <edge from-layer="17" from-port="7" to-layer="18" to-port="2" />
346
+ <edge from-layer="18" from-port="3" to-layer="19" to-port="0" />
347
+ </edges>
348
+ <rt_info>
349
+ <info name="OpenVINO Runtime" value="2026.4.0-22959-99c81491cc3-releases/2026/4" />
350
+ <add_attention_mask value="True" />
351
+ <add_prefix_space />
352
+ <add_special_tokens value="True" />
353
+ <bos_token_id value="49406" />
354
+ <clean_up_tokenization_spaces />
355
+ <detokenizer_input_type value="i64" />
356
+ <eos_token_id value="49407" />
357
+ <handle_special_tokens_with_re />
358
+ <max_length />
359
+ <number_of_inputs value="1" />
360
+ <openvino_tokenizers_version value="2026.4.0.0-736-a04accf6282" />
361
+ <openvino_version value="2026.4.0-22959-99c81491cc3-releases/2026/4" />
362
+ <original_post_processor_template value="{&quot;type&quot;: &quot;RobertaProcessing&quot;, &quot;sep&quot;: [&quot;&lt;|endoftext|>&quot;, 49407], &quot;cls&quot;: [&quot;&lt;|startoftext|>&quot;, 49406], &quot;trim_offsets&quot;: false, &quot;add_prefix_space&quot;: false}" />
363
+ <original_tokenizer_class value="&lt;class 'transformers.models.clip.tokenization_clip_fast.CLIPTokenizerFast'>" />
364
+ <pad_token_id value="0" />
365
+ <processed_post_processor_template value="{&quot;single&quot;: {&quot;ids&quot;: [49406, -1, 49407], &quot;type_ids&quot;: [0, 0, 0]}, &quot;pair&quot;: {&quot;ids&quot;: [49406, -1, 49407, 49407, -1, 49407], &quot;type_ids&quot;: [0, 0, 0, 0, 0, 0]}}" />
366
+ <sentencepiece_version value="0.2.2" />
367
+ <skip_special_tokens value="True" />
368
+ <streaming_detokenizer value="False" />
369
+ <tokenizer_output_type value="i64" />
370
+ <tokenizers_version value="0.22.0" />
371
+ <transformers_version value="4.57.6" />
372
+ <truncation value="False" />
373
+ <use_max_padding value="False" />
374
+ <use_sentencepiece_backend value="False" />
375
+ <utf8_replace_mode value="replace" />
376
+ <with_detokenizer value="True" />
377
+ </rt_info>
378
+ </net>
tokenizer_2/openvino_tokenizer.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f3986625afe9c098fc3bba75ff400c9e6774b0b058202df4b896d62d89009a04
3
+ size 2014457
tokenizer_2/openvino_tokenizer.xml ADDED
@@ -0,0 +1,995 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <net name="tokenizer" version="11">
3
+ <layers>
4
+ <layer id="0" name="Parameter_245003" type="Parameter" version="opset1">
5
+ <data shape="?" element_type="string" />
6
+ <output>
7
+ <port id="0" precision="STRING" names="Parameter_245003">
8
+ <dim>-1</dim>
9
+ </port>
10
+ </output>
11
+ </layer>
12
+ <layer id="1" name="Constant_245120" type="Const" version="opset1">
13
+ <data element_type="boolean" shape="" offset="0" size="1" />
14
+ <output>
15
+ <port id="0" precision="BOOL" />
16
+ </output>
17
+ </layer>
18
+ <layer id="2" name="ReadValue_245121" type="ReadValue" version="opset6">
19
+ <data variable_id="truncation" variable_type="dynamic" variable_shape="..." />
20
+ <input>
21
+ <port id="0" precision="BOOL" />
22
+ </input>
23
+ <output>
24
+ <port id="1" precision="BOOL" />
25
+ </output>
26
+ </layer>
27
+ <layer id="3" name="Constant_245131" type="Const" version="opset1">
28
+ <data element_type="i32" shape="" offset="1" size="4" />
29
+ <output>
30
+ <port id="0" precision="I32" />
31
+ </output>
32
+ </layer>
33
+ <layer id="4" name="Constant_245132" type="Const" version="opset1">
34
+ <data element_type="i32" shape="" offset="5" size="4" />
35
+ <output>
36
+ <port id="0" precision="I32" />
37
+ </output>
38
+ </layer>
39
+ <layer id="5" name="Constant_245133" type="Const" version="opset1">
40
+ <data element_type="i32" shape="1" offset="9" size="4" />
41
+ <output>
42
+ <port id="0" precision="I32">
43
+ <dim>1</dim>
44
+ </port>
45
+ </output>
46
+ </layer>
47
+ <layer id="6" name="Constant_245009" type="Const" version="opset1">
48
+ <data element_type="i64" shape="" offset="13" size="8" />
49
+ <output>
50
+ <port id="0" precision="I64" />
51
+ </output>
52
+ </layer>
53
+ <layer id="7" name="StringTensorUnpack_245004" type="StringTensorUnpack" version="opset15">
54
+ <input>
55
+ <port id="0" precision="STRING">
56
+ <dim>-1</dim>
57
+ </port>
58
+ </input>
59
+ <output>
60
+ <port id="1" precision="I32">
61
+ <dim>-1</dim>
62
+ </port>
63
+ <port id="2" precision="I32">
64
+ <dim>-1</dim>
65
+ </port>
66
+ <port id="3" precision="U8">
67
+ <dim>-1</dim>
68
+ </port>
69
+ </output>
70
+ </layer>
71
+ <layer id="8" name="ShapeOf_245005" type="ShapeOf" version="opset3">
72
+ <data output_type="i64" />
73
+ <input>
74
+ <port id="0" precision="I32">
75
+ <dim>-1</dim>
76
+ </port>
77
+ </input>
78
+ <output>
79
+ <port id="1" precision="I64">
80
+ <dim>1</dim>
81
+ </port>
82
+ </output>
83
+ </layer>
84
+ <layer id="9" name="Constant_245006" type="Const" version="opset1">
85
+ <data element_type="i64" shape="" offset="13" size="8" />
86
+ <output>
87
+ <port id="0" precision="I64" />
88
+ </output>
89
+ </layer>
90
+ <layer id="10" name="Constant_245007" type="Const" version="opset1">
91
+ <data element_type="i64" shape="" offset="13" size="8" />
92
+ <output>
93
+ <port id="0" precision="I64" />
94
+ </output>
95
+ </layer>
96
+ <layer id="11" name="Gather_245008" type="Gather" version="opset8">
97
+ <data batch_dims="0" />
98
+ <input>
99
+ <port id="0" precision="I64">
100
+ <dim>1</dim>
101
+ </port>
102
+ <port id="1" precision="I64" />
103
+ <port id="2" precision="I64" />
104
+ </input>
105
+ <output>
106
+ <port id="3" precision="I64" />
107
+ </output>
108
+ </layer>
109
+ <layer id="12" name="Constant_245010" type="Const" version="opset1">
110
+ <data element_type="i64" shape="" offset="21" size="8" />
111
+ <output>
112
+ <port id="0" precision="I64" />
113
+ </output>
114
+ </layer>
115
+ <layer id="13" name="Range_245011" type="Range" version="opset4">
116
+ <data output_type="i32" />
117
+ <input>
118
+ <port id="0" precision="I64" />
119
+ <port id="1" precision="I64" />
120
+ <port id="2" precision="I64" />
121
+ </input>
122
+ <output>
123
+ <port id="3" precision="I32">
124
+ <dim>-1</dim>
125
+ </port>
126
+ </output>
127
+ </layer>
128
+ <layer id="14" name="Constant_245012" type="Const" version="opset1">
129
+ <data element_type="i64" shape="" offset="21" size="8" />
130
+ <output>
131
+ <port id="0" precision="I64" />
132
+ </output>
133
+ </layer>
134
+ <layer id="15" name="Constant_245013" type="Const" version="opset1">
135
+ <data element_type="i64" shape="" offset="21" size="8" />
136
+ <output>
137
+ <port id="0" precision="I64" />
138
+ </output>
139
+ </layer>
140
+ <layer id="16" name="Add_245014" type="Add" version="opset1">
141
+ <data auto_broadcast="numpy" />
142
+ <input>
143
+ <port id="0" precision="I64" />
144
+ <port id="1" precision="I64" />
145
+ </input>
146
+ <output>
147
+ <port id="2" precision="I64" />
148
+ </output>
149
+ </layer>
150
+ <layer id="17" name="Constant_245015" type="Const" version="opset1">
151
+ <data element_type="i64" shape="" offset="21" size="8" />
152
+ <output>
153
+ <port id="0" precision="I64" />
154
+ </output>
155
+ </layer>
156
+ <layer id="18" name="Range_245016" type="Range" version="opset4">
157
+ <data output_type="i32" />
158
+ <input>
159
+ <port id="0" precision="I64" />
160
+ <port id="1" precision="I64" />
161
+ <port id="2" precision="I64" />
162
+ </input>
163
+ <output>
164
+ <port id="3" precision="I32">
165
+ <dim>-1</dim>
166
+ </port>
167
+ </output>
168
+ </layer>
169
+ <layer id="19" name="Constant_245080" type="Const" version="opset1">
170
+ <data element_type="u8" shape="42" offset="29" size="42" />
171
+ <output>
172
+ <port id="0" precision="U8">
173
+ <dim>42</dim>
174
+ </port>
175
+ </output>
176
+ </layer>
177
+ <layer id="20" name="SpecialTokensSplit_245081" type="SpecialTokensSplit" version="extension">
178
+ <input>
179
+ <port id="0" precision="I32">
180
+ <dim>-1</dim>
181
+ </port>
182
+ <port id="1" precision="I32">
183
+ <dim>-1</dim>
184
+ </port>
185
+ <port id="2" precision="I32">
186
+ <dim>-1</dim>
187
+ </port>
188
+ <port id="3" precision="I32">
189
+ <dim>-1</dim>
190
+ </port>
191
+ <port id="4" precision="U8">
192
+ <dim>-1</dim>
193
+ </port>
194
+ <port id="5" precision="U8">
195
+ <dim>42</dim>
196
+ </port>
197
+ </input>
198
+ <output>
199
+ <port id="6" precision="I32">
200
+ <dim>-1</dim>
201
+ </port>
202
+ <port id="7" precision="I32">
203
+ <dim>-1</dim>
204
+ </port>
205
+ <port id="8" precision="I32">
206
+ <dim>-1</dim>
207
+ </port>
208
+ <port id="9" precision="I32">
209
+ <dim>-1</dim>
210
+ </port>
211
+ <port id="10" precision="U8">
212
+ <dim>-1</dim>
213
+ </port>
214
+ <port id="11" precision="BOOL">
215
+ <dim>-1</dim>
216
+ </port>
217
+ </output>
218
+ </layer>
219
+ <layer id="21" name="CharsMapNormalization_245082" type="CharsMapNormalization" version="extension">
220
+ <data add_dummy_prefix="false" remove_extra_whitespaces="false" escape_whitespaces="false" normalization_form="nfc" case_fold="true" nmt="false" />
221
+ <input>
222
+ <port id="0" precision="I32">
223
+ <dim>-1</dim>
224
+ </port>
225
+ <port id="1" precision="I32">
226
+ <dim>-1</dim>
227
+ </port>
228
+ <port id="2" precision="U8">
229
+ <dim>-1</dim>
230
+ </port>
231
+ <port id="3" precision="BOOL">
232
+ <dim>-1</dim>
233
+ </port>
234
+ </input>
235
+ <output>
236
+ <port id="4" precision="I32">
237
+ <dim>-1</dim>
238
+ </port>
239
+ <port id="5" precision="I32">
240
+ <dim>-1</dim>
241
+ </port>
242
+ <port id="6" precision="U8">
243
+ <dim>-1</dim>
244
+ </port>
245
+ <port id="7" precision="BOOL">
246
+ <dim>-1</dim>
247
+ </port>
248
+ </output>
249
+ </layer>
250
+ <layer id="22" name="Constant_245084" type="Const" version="opset1">
251
+ <data element_type="u8" shape="3" offset="71" size="3" />
252
+ <output>
253
+ <port id="0" precision="U8">
254
+ <dim>3</dim>
255
+ </port>
256
+ </output>
257
+ </layer>
258
+ <layer id="23" name="Constant_245086" type="Const" version="opset1">
259
+ <data element_type="u8" shape="1" offset="74" size="1" />
260
+ <output>
261
+ <port id="0" precision="U8">
262
+ <dim>1</dim>
263
+ </port>
264
+ </output>
265
+ </layer>
266
+ <layer id="24" name="RegexNormalization_245087" type="RegexNormalization" version="extension">
267
+ <data global_replace="true" />
268
+ <input>
269
+ <port id="0" precision="I32">
270
+ <dim>-1</dim>
271
+ </port>
272
+ <port id="1" precision="I32">
273
+ <dim>-1</dim>
274
+ </port>
275
+ <port id="2" precision="U8">
276
+ <dim>-1</dim>
277
+ </port>
278
+ <port id="3" precision="BOOL">
279
+ <dim>-1</dim>
280
+ </port>
281
+ <port id="4" precision="U8">
282
+ <dim>3</dim>
283
+ </port>
284
+ <port id="5" precision="U8">
285
+ <dim>1</dim>
286
+ </port>
287
+ </input>
288
+ <output>
289
+ <port id="6" precision="I32">
290
+ <dim>-1</dim>
291
+ </port>
292
+ <port id="7" precision="I32">
293
+ <dim>-1</dim>
294
+ </port>
295
+ <port id="8" precision="U8">
296
+ <dim>-1</dim>
297
+ </port>
298
+ <port id="9" precision="BOOL">
299
+ <dim>-1</dim>
300
+ </port>
301
+ </output>
302
+ </layer>
303
+ <layer id="25" name="Constant_245089" type="Const" version="opset1">
304
+ <data element_type="u8" shape="57" offset="75" size="57" />
305
+ <output>
306
+ <port id="0" precision="U8">
307
+ <dim>57</dim>
308
+ </port>
309
+ </output>
310
+ </layer>
311
+ <layer id="26" name="RegexSplit_245090" type="RegexSplit" version="extension">
312
+ <data behaviour="remove" invert="true" max_splits="-1" />
313
+ <input>
314
+ <port id="0" precision="I32">
315
+ <dim>-1</dim>
316
+ </port>
317
+ <port id="1" precision="I32">
318
+ <dim>-1</dim>
319
+ </port>
320
+ <port id="2" precision="I32">
321
+ <dim>-1</dim>
322
+ </port>
323
+ <port id="3" precision="I32">
324
+ <dim>-1</dim>
325
+ </port>
326
+ <port id="4" precision="U8">
327
+ <dim>-1</dim>
328
+ </port>
329
+ <port id="5" precision="BOOL">
330
+ <dim>-1</dim>
331
+ </port>
332
+ <port id="6" precision="U8">
333
+ <dim>57</dim>
334
+ </port>
335
+ </input>
336
+ <output>
337
+ <port id="7" precision="I32">
338
+ <dim>-1</dim>
339
+ </port>
340
+ <port id="8" precision="I32">
341
+ <dim>-1</dim>
342
+ </port>
343
+ <port id="9" precision="I32">
344
+ <dim>-1</dim>
345
+ </port>
346
+ <port id="10" precision="I32">
347
+ <dim>-1</dim>
348
+ </port>
349
+ <port id="11" precision="U8">
350
+ <dim>-1</dim>
351
+ </port>
352
+ <port id="12" precision="BOOL">
353
+ <dim>-1</dim>
354
+ </port>
355
+ </output>
356
+ </layer>
357
+ <layer id="27" name="Constant_245092" type="Const" version="opset1">
358
+ <data element_type="u8" shape="74" offset="132" size="74" />
359
+ <output>
360
+ <port id="0" precision="U8">
361
+ <dim>74</dim>
362
+ </port>
363
+ </output>
364
+ </layer>
365
+ <layer id="28" name="RegexSplit_245093" type="RegexSplit" version="extension">
366
+ <data behaviour="isolate" invert="false" max_splits="-1" />
367
+ <input>
368
+ <port id="0" precision="I32">
369
+ <dim>-1</dim>
370
+ </port>
371
+ <port id="1" precision="I32">
372
+ <dim>-1</dim>
373
+ </port>
374
+ <port id="2" precision="I32">
375
+ <dim>-1</dim>
376
+ </port>
377
+ <port id="3" precision="I32">
378
+ <dim>-1</dim>
379
+ </port>
380
+ <port id="4" precision="U8">
381
+ <dim>-1</dim>
382
+ </port>
383
+ <port id="5" precision="BOOL">
384
+ <dim>-1</dim>
385
+ </port>
386
+ <port id="6" precision="U8">
387
+ <dim>74</dim>
388
+ </port>
389
+ </input>
390
+ <output>
391
+ <port id="7" precision="I32">
392
+ <dim>-1</dim>
393
+ </port>
394
+ <port id="8" precision="I32">
395
+ <dim>-1</dim>
396
+ </port>
397
+ <port id="9" precision="I32">
398
+ <dim>-1</dim>
399
+ </port>
400
+ <port id="10" precision="I32">
401
+ <dim>-1</dim>
402
+ </port>
403
+ <port id="11" precision="U8">
404
+ <dim>-1</dim>
405
+ </port>
406
+ <port id="12" precision="BOOL">
407
+ <dim>-1</dim>
408
+ </port>
409
+ </output>
410
+ </layer>
411
+ <layer id="29" name="Constant_245095" type="Const" version="opset1">
412
+ <data element_type="i32" shape="49408" offset="206" size="197632" />
413
+ <output>
414
+ <port id="0" precision="I32">
415
+ <dim>49408</dim>
416
+ </port>
417
+ </output>
418
+ </layer>
419
+ <layer id="30" name="Constant_245097" type="Const" version="opset1">
420
+ <data element_type="i32" shape="49408" offset="197838" size="197632" />
421
+ <output>
422
+ <port id="0" precision="I32">
423
+ <dim>49408</dim>
424
+ </port>
425
+ </output>
426
+ </layer>
427
+ <layer id="31" name="Constant_245099" type="Const" version="opset1">
428
+ <data element_type="u8" shape="419070" offset="395470" size="419070" />
429
+ <output>
430
+ <port id="0" precision="U8">
431
+ <dim>419070</dim>
432
+ </port>
433
+ </output>
434
+ </layer>
435
+ <layer id="32" name="Constant_245107" type="Const" version="opset1">
436
+ <data element_type="i32" shape="48894" offset="814540" size="195576" />
437
+ <output>
438
+ <port id="0" precision="I32">
439
+ <dim>48894</dim>
440
+ </port>
441
+ </output>
442
+ </layer>
443
+ <layer id="33" name="Constant_245109" type="Const" version="opset1">
444
+ <data element_type="i32" shape="48894" offset="1010116" size="195576" />
445
+ <output>
446
+ <port id="0" precision="I32">
447
+ <dim>48894</dim>
448
+ </port>
449
+ </output>
450
+ </layer>
451
+ <layer id="34" name="Constant_245111" type="Const" version="opset1">
452
+ <data element_type="u8" shape="145154" offset="1205692" size="145154" />
453
+ <output>
454
+ <port id="0" precision="U8">
455
+ <dim>145154</dim>
456
+ </port>
457
+ </output>
458
+ </layer>
459
+ <layer id="35" name="Constant_245113" type="Const" version="opset1">
460
+ <data element_type="i32" shape="48894" offset="1350846" size="195576" />
461
+ <output>
462
+ <port id="0" precision="I32">
463
+ <dim>48894</dim>
464
+ </port>
465
+ </output>
466
+ </layer>
467
+ <layer id="36" name="Constant_245115" type="Const" version="opset1">
468
+ <data element_type="i32" shape="48894" offset="1546422" size="195576" />
469
+ <output>
470
+ <port id="0" precision="I32">
471
+ <dim>48894</dim>
472
+ </port>
473
+ </output>
474
+ </layer>
475
+ <layer id="37" name="Constant_245117" type="Const" version="opset1">
476
+ <data element_type="u8" shape="272352" offset="1741998" size="272352" />
477
+ <output>
478
+ <port id="0" precision="U8">
479
+ <dim>272352</dim>
480
+ </port>
481
+ </output>
482
+ </layer>
483
+ <layer id="38" name="Constant_245101" type="Const" version="opset1">
484
+ <data element_type="i32" shape="3" offset="2014350" size="12" />
485
+ <output>
486
+ <port id="0" precision="I32">
487
+ <dim>3</dim>
488
+ </port>
489
+ </output>
490
+ </layer>
491
+ <layer id="39" name="Constant_245103" type="Const" version="opset1">
492
+ <data element_type="i32" shape="3" offset="2014362" size="12" />
493
+ <output>
494
+ <port id="0" precision="I32">
495
+ <dim>3</dim>
496
+ </port>
497
+ </output>
498
+ </layer>
499
+ <layer id="40" name="Constant_245105" type="Const" version="opset1">
500
+ <data element_type="u8" shape="29" offset="2014374" size="29" />
501
+ <output>
502
+ <port id="0" precision="U8">
503
+ <dim>29</dim>
504
+ </port>
505
+ </output>
506
+ </layer>
507
+ <layer id="41" name="Constant_245118" type="Const" version="opset1">
508
+ <data element_type="i32" shape="3" offset="2014403" size="12" />
509
+ <output>
510
+ <port id="0" precision="I32">
511
+ <dim>3</dim>
512
+ </port>
513
+ </output>
514
+ </layer>
515
+ <layer id="42" name="BPETokenizer_245119" type="BPETokenizer" version="extension">
516
+ <data unk_token="&lt;|endoftext|>" fuse_unk="false" suffix_indicator="" end_suffix="&lt;/w>" byte_fallback="false" cache_capacity="20000" />
517
+ <input>
518
+ <port id="0" precision="I32">
519
+ <dim>-1</dim>
520
+ </port>
521
+ <port id="1" precision="I32">
522
+ <dim>-1</dim>
523
+ </port>
524
+ <port id="2" precision="I32">
525
+ <dim>-1</dim>
526
+ </port>
527
+ <port id="3" precision="I32">
528
+ <dim>-1</dim>
529
+ </port>
530
+ <port id="4" precision="U8">
531
+ <dim>-1</dim>
532
+ </port>
533
+ <port id="5" precision="I32">
534
+ <dim>49408</dim>
535
+ </port>
536
+ <port id="6" precision="I32">
537
+ <dim>49408</dim>
538
+ </port>
539
+ <port id="7" precision="U8">
540
+ <dim>419070</dim>
541
+ </port>
542
+ <port id="8" precision="I32">
543
+ <dim>48894</dim>
544
+ </port>
545
+ <port id="9" precision="I32">
546
+ <dim>48894</dim>
547
+ </port>
548
+ <port id="10" precision="U8">
549
+ <dim>145154</dim>
550
+ </port>
551
+ <port id="11" precision="I32">
552
+ <dim>48894</dim>
553
+ </port>
554
+ <port id="12" precision="I32">
555
+ <dim>48894</dim>
556
+ </port>
557
+ <port id="13" precision="U8">
558
+ <dim>272352</dim>
559
+ </port>
560
+ <port id="14" precision="I32">
561
+ <dim>3</dim>
562
+ </port>
563
+ <port id="15" precision="I32">
564
+ <dim>3</dim>
565
+ </port>
566
+ <port id="16" precision="U8">
567
+ <dim>29</dim>
568
+ </port>
569
+ <port id="17" precision="I32">
570
+ <dim>3</dim>
571
+ </port>
572
+ </input>
573
+ <output>
574
+ <port id="18" precision="I32">
575
+ <dim>-1</dim>
576
+ </port>
577
+ <port id="19" precision="I32">
578
+ <dim>-1</dim>
579
+ </port>
580
+ <port id="20" precision="I32">
581
+ <dim>-1</dim>
582
+ </port>
583
+ </output>
584
+ </layer>
585
+ <layer id="43" name="Constant_245123" type="Const" version="opset1">
586
+ <data element_type="i32" shape="" offset="2014415" size="4" />
587
+ <output>
588
+ <port id="0" precision="I32" />
589
+ </output>
590
+ </layer>
591
+ <layer id="44" name="Constant_245124" type="Const" version="opset1">
592
+ <data element_type="i32" shape="" offset="2014419" size="4" />
593
+ <output>
594
+ <port id="0" precision="I32" />
595
+ </output>
596
+ </layer>
597
+ <layer id="45" name="Select_245125" type="Select" version="opset1">
598
+ <data auto_broadcast="numpy" />
599
+ <input>
600
+ <port id="0" precision="BOOL" />
601
+ <port id="1" precision="I32" />
602
+ <port id="2" precision="I32" />
603
+ </input>
604
+ <output>
605
+ <port id="3" precision="I32" />
606
+ </output>
607
+ </layer>
608
+ <layer id="46" name="Constant_245127" type="Const" version="opset1">
609
+ <data element_type="u8" shape="5" offset="2014423" size="5" />
610
+ <output>
611
+ <port id="0" precision="U8">
612
+ <dim>5</dim>
613
+ </port>
614
+ </output>
615
+ </layer>
616
+ <layer id="47" name="Constant_245129" type="Const" version="opset1">
617
+ <data element_type="u8" shape="13" offset="2014428" size="13" />
618
+ <output>
619
+ <port id="0" precision="U8">
620
+ <dim>13</dim>
621
+ </port>
622
+ </output>
623
+ </layer>
624
+ <layer id="48" name="Truncate_245130" type="Truncate" version="extension">
625
+ <data m_num_inputs="1" />
626
+ <input>
627
+ <port id="0" precision="I32">
628
+ <dim>-1</dim>
629
+ </port>
630
+ <port id="1" precision="I32">
631
+ <dim>-1</dim>
632
+ </port>
633
+ <port id="2" precision="I32">
634
+ <dim>-1</dim>
635
+ </port>
636
+ <port id="3" precision="I32" />
637
+ <port id="4" precision="U8">
638
+ <dim>5</dim>
639
+ </port>
640
+ <port id="5" precision="U8">
641
+ <dim>13</dim>
642
+ </port>
643
+ </input>
644
+ <output>
645
+ <port id="6" precision="I32">
646
+ <dim>-1</dim>
647
+ </port>
648
+ <port id="7" precision="I32">
649
+ <dim>-1</dim>
650
+ </port>
651
+ <port id="8" precision="I32">
652
+ <dim>-1</dim>
653
+ </port>
654
+ </output>
655
+ </layer>
656
+ <layer id="49" name="Constant_245134" type="Const" version="opset1">
657
+ <data element_type="i32" shape="" offset="1" size="4" />
658
+ <output>
659
+ <port id="0" precision="I32" />
660
+ </output>
661
+ </layer>
662
+ <layer id="50" name="Constant_245135" type="Const" version="opset1">
663
+ <data element_type="i32" shape="" offset="5" size="4" />
664
+ <output>
665
+ <port id="0" precision="I32" />
666
+ </output>
667
+ </layer>
668
+ <layer id="51" name="Constant_245136" type="Const" version="opset1">
669
+ <data element_type="i32" shape="1" offset="2014441" size="4" />
670
+ <output>
671
+ <port id="0" precision="I32">
672
+ <dim>1</dim>
673
+ </port>
674
+ </output>
675
+ </layer>
676
+ <layer id="52" name="Constant_245137" type="Const" version="opset1">
677
+ <data element_type="i32" shape="3" offset="2014445" size="12" />
678
+ <output>
679
+ <port id="0" precision="I32">
680
+ <dim>3</dim>
681
+ </port>
682
+ </output>
683
+ </layer>
684
+ <layer id="53" name="CombineSegments_245138" type="CombineSegments" version="extension">
685
+ <input>
686
+ <port id="0" precision="I32" />
687
+ <port id="1" precision="I32" />
688
+ <port id="2" precision="I32">
689
+ <dim>1</dim>
690
+ </port>
691
+ <port id="3" precision="I32">
692
+ <dim>-1</dim>
693
+ </port>
694
+ <port id="4" precision="I32">
695
+ <dim>-1</dim>
696
+ </port>
697
+ <port id="5" precision="I32">
698
+ <dim>-1</dim>
699
+ </port>
700
+ <port id="6" precision="I32" />
701
+ <port id="7" precision="I32" />
702
+ <port id="8" precision="I32">
703
+ <dim>1</dim>
704
+ </port>
705
+ <port id="9" precision="I32">
706
+ <dim>3</dim>
707
+ </port>
708
+ </input>
709
+ <output>
710
+ <port id="10" precision="I32">
711
+ <dim>-1</dim>
712
+ </port>
713
+ <port id="11" precision="I32">
714
+ <dim>-1</dim>
715
+ </port>
716
+ <port id="12" precision="I32">
717
+ <dim>-1</dim>
718
+ </port>
719
+ <port id="13" precision="I32">
720
+ <dim>-1</dim>
721
+ </port>
722
+ <port id="14" precision="I32">
723
+ <dim>-1</dim>
724
+ </port>
725
+ <port id="15" precision="I32">
726
+ <dim>-1</dim>
727
+ </port>
728
+ </output>
729
+ </layer>
730
+ <layer id="54" name="Subtract_245139" type="Subtract" version="opset1">
731
+ <data auto_broadcast="numpy" />
732
+ <input>
733
+ <port id="0" precision="I32">
734
+ <dim>-1</dim>
735
+ </port>
736
+ <port id="1" precision="I32">
737
+ <dim>-1</dim>
738
+ </port>
739
+ </input>
740
+ <output>
741
+ <port id="2" precision="I32">
742
+ <dim>-1</dim>
743
+ </port>
744
+ </output>
745
+ </layer>
746
+ <layer id="55" name="Constant_245140" type="Const" version="opset1">
747
+ <data element_type="i32" shape="" offset="1" size="4" />
748
+ <output>
749
+ <port id="0" precision="I32" />
750
+ </output>
751
+ </layer>
752
+ <layer id="56" name="ReduceMax_245141" type="ReduceMax" version="opset1">
753
+ <data keep_dims="false" />
754
+ <input>
755
+ <port id="0" precision="I32">
756
+ <dim>-1</dim>
757
+ </port>
758
+ <port id="1" precision="I32" />
759
+ </input>
760
+ <output>
761
+ <port id="2" precision="I32" />
762
+ </output>
763
+ </layer>
764
+ <layer id="57" name="Constant_245142" type="Const" version="opset1">
765
+ <data element_type="i32" shape="" offset="1" size="4" />
766
+ <output>
767
+ <port id="0" precision="I32" />
768
+ </output>
769
+ </layer>
770
+ <layer id="58" name="RaggedToDense_245143" type="RaggedToDense" version="extension">
771
+ <data pad_right="true" m_pad_max_length="false" />
772
+ <input>
773
+ <port id="0" precision="I32">
774
+ <dim>-1</dim>
775
+ </port>
776
+ <port id="1" precision="I32">
777
+ <dim>-1</dim>
778
+ </port>
779
+ <port id="2" precision="I32">
780
+ <dim>-1</dim>
781
+ </port>
782
+ <port id="3" precision="I32" />
783
+ <port id="4" precision="I32" />
784
+ </input>
785
+ <output>
786
+ <port id="5" precision="I32">
787
+ <dim>-1</dim>
788
+ <dim>-1</dim>
789
+ </port>
790
+ <port id="6" precision="BOOL">
791
+ <dim>-1</dim>
792
+ <dim>-1</dim>
793
+ </port>
794
+ </output>
795
+ </layer>
796
+ <layer id="59" name="Convert_245144" type="Convert" version="opset1">
797
+ <data destination_type="i32" />
798
+ <input>
799
+ <port id="0" precision="BOOL">
800
+ <dim>-1</dim>
801
+ <dim>-1</dim>
802
+ </port>
803
+ </input>
804
+ <output>
805
+ <port id="1" precision="I32">
806
+ <dim>-1</dim>
807
+ <dim>-1</dim>
808
+ </port>
809
+ </output>
810
+ </layer>
811
+ <layer id="60" name="Convert_245144.0" type="Convert" version="opset1">
812
+ <data destination_type="i64" />
813
+ <input>
814
+ <port id="0" precision="I32">
815
+ <dim>-1</dim>
816
+ <dim>-1</dim>
817
+ </port>
818
+ </input>
819
+ <output>
820
+ <port id="1" precision="I64" names="attention_mask">
821
+ <dim>-1</dim>
822
+ <dim>-1</dim>
823
+ </port>
824
+ </output>
825
+ </layer>
826
+ <layer id="61" name="RaggedToDense_245143.0" type="Convert" version="opset1">
827
+ <data destination_type="i64" />
828
+ <input>
829
+ <port id="0" precision="I32">
830
+ <dim>-1</dim>
831
+ <dim>-1</dim>
832
+ </port>
833
+ </input>
834
+ <output>
835
+ <port id="1" precision="I64" names="input_ids">
836
+ <dim>-1</dim>
837
+ <dim>-1</dim>
838
+ </port>
839
+ </output>
840
+ </layer>
841
+ <layer id="62" name="Assign_245122" type="Assign" version="opset6">
842
+ <data variable_id="truncation" />
843
+ <input>
844
+ <port id="0" precision="BOOL" />
845
+ </input>
846
+ <output>
847
+ <port id="1" precision="BOOL" />
848
+ </output>
849
+ </layer>
850
+ <layer id="63" name="Result_245147" type="Result" version="opset1" output_names="input_ids">
851
+ <input>
852
+ <port id="0" precision="I64">
853
+ <dim>-1</dim>
854
+ <dim>-1</dim>
855
+ </port>
856
+ </input>
857
+ </layer>
858
+ <layer id="64" name="Result_245149" type="Result" version="opset1" output_names="attention_mask">
859
+ <input>
860
+ <port id="0" precision="I64">
861
+ <dim>-1</dim>
862
+ <dim>-1</dim>
863
+ </port>
864
+ </input>
865
+ </layer>
866
+ </layers>
867
+ <edges>
868
+ <edge from-layer="0" from-port="0" to-layer="7" to-port="0" />
869
+ <edge from-layer="1" from-port="0" to-layer="2" to-port="0" />
870
+ <edge from-layer="2" from-port="1" to-layer="45" to-port="0" />
871
+ <edge from-layer="2" from-port="1" to-layer="62" to-port="0" />
872
+ <edge from-layer="3" from-port="0" to-layer="53" to-port="0" />
873
+ <edge from-layer="4" from-port="0" to-layer="53" to-port="1" />
874
+ <edge from-layer="5" from-port="0" to-layer="53" to-port="2" />
875
+ <edge from-layer="6" from-port="0" to-layer="13" to-port="0" />
876
+ <edge from-layer="7" from-port="1" to-layer="8" to-port="0" />
877
+ <edge from-layer="7" from-port="3" to-layer="20" to-port="4" />
878
+ <edge from-layer="7" from-port="2" to-layer="20" to-port="3" />
879
+ <edge from-layer="7" from-port="1" to-layer="20" to-port="2" />
880
+ <edge from-layer="8" from-port="1" to-layer="11" to-port="0" />
881
+ <edge from-layer="9" from-port="0" to-layer="11" to-port="1" />
882
+ <edge from-layer="10" from-port="0" to-layer="11" to-port="2" />
883
+ <edge from-layer="11" from-port="3" to-layer="13" to-port="1" />
884
+ <edge from-layer="11" from-port="3" to-layer="16" to-port="0" />
885
+ <edge from-layer="12" from-port="0" to-layer="13" to-port="2" />
886
+ <edge from-layer="13" from-port="3" to-layer="20" to-port="0" />
887
+ <edge from-layer="14" from-port="0" to-layer="18" to-port="0" />
888
+ <edge from-layer="15" from-port="0" to-layer="16" to-port="1" />
889
+ <edge from-layer="16" from-port="2" to-layer="18" to-port="1" />
890
+ <edge from-layer="17" from-port="0" to-layer="18" to-port="2" />
891
+ <edge from-layer="18" from-port="3" to-layer="20" to-port="1" />
892
+ <edge from-layer="19" from-port="0" to-layer="20" to-port="5" />
893
+ <edge from-layer="20" from-port="7" to-layer="26" to-port="1" />
894
+ <edge from-layer="20" from-port="6" to-layer="26" to-port="0" />
895
+ <edge from-layer="20" from-port="11" to-layer="21" to-port="3" />
896
+ <edge from-layer="20" from-port="10" to-layer="21" to-port="2" />
897
+ <edge from-layer="20" from-port="9" to-layer="21" to-port="1" />
898
+ <edge from-layer="20" from-port="8" to-layer="21" to-port="0" />
899
+ <edge from-layer="21" from-port="7" to-layer="24" to-port="3" />
900
+ <edge from-layer="21" from-port="4" to-layer="24" to-port="0" />
901
+ <edge from-layer="21" from-port="5" to-layer="24" to-port="1" />
902
+ <edge from-layer="21" from-port="6" to-layer="24" to-port="2" />
903
+ <edge from-layer="22" from-port="0" to-layer="24" to-port="4" />
904
+ <edge from-layer="23" from-port="0" to-layer="24" to-port="5" />
905
+ <edge from-layer="24" from-port="7" to-layer="26" to-port="3" />
906
+ <edge from-layer="24" from-port="8" to-layer="26" to-port="4" />
907
+ <edge from-layer="24" from-port="9" to-layer="26" to-port="5" />
908
+ <edge from-layer="24" from-port="6" to-layer="26" to-port="2" />
909
+ <edge from-layer="25" from-port="0" to-layer="26" to-port="6" />
910
+ <edge from-layer="26" from-port="11" to-layer="28" to-port="4" />
911
+ <edge from-layer="26" from-port="12" to-layer="28" to-port="5" />
912
+ <edge from-layer="26" from-port="10" to-layer="28" to-port="3" />
913
+ <edge from-layer="26" from-port="9" to-layer="28" to-port="2" />
914
+ <edge from-layer="26" from-port="8" to-layer="28" to-port="1" />
915
+ <edge from-layer="26" from-port="7" to-layer="28" to-port="0" />
916
+ <edge from-layer="27" from-port="0" to-layer="28" to-port="6" />
917
+ <edge from-layer="28" from-port="11" to-layer="42" to-port="4" />
918
+ <edge from-layer="28" from-port="7" to-layer="42" to-port="0" />
919
+ <edge from-layer="28" from-port="8" to-layer="42" to-port="1" />
920
+ <edge from-layer="28" from-port="9" to-layer="42" to-port="2" />
921
+ <edge from-layer="28" from-port="10" to-layer="42" to-port="3" />
922
+ <edge from-layer="29" from-port="0" to-layer="42" to-port="5" />
923
+ <edge from-layer="30" from-port="0" to-layer="42" to-port="6" />
924
+ <edge from-layer="31" from-port="0" to-layer="42" to-port="7" />
925
+ <edge from-layer="32" from-port="0" to-layer="42" to-port="8" />
926
+ <edge from-layer="33" from-port="0" to-layer="42" to-port="9" />
927
+ <edge from-layer="34" from-port="0" to-layer="42" to-port="10" />
928
+ <edge from-layer="35" from-port="0" to-layer="42" to-port="11" />
929
+ <edge from-layer="36" from-port="0" to-layer="42" to-port="12" />
930
+ <edge from-layer="37" from-port="0" to-layer="42" to-port="13" />
931
+ <edge from-layer="38" from-port="0" to-layer="42" to-port="14" />
932
+ <edge from-layer="39" from-port="0" to-layer="42" to-port="15" />
933
+ <edge from-layer="40" from-port="0" to-layer="42" to-port="16" />
934
+ <edge from-layer="41" from-port="0" to-layer="42" to-port="17" />
935
+ <edge from-layer="42" from-port="18" to-layer="48" to-port="0" />
936
+ <edge from-layer="42" from-port="19" to-layer="48" to-port="1" />
937
+ <edge from-layer="42" from-port="20" to-layer="48" to-port="2" />
938
+ <edge from-layer="43" from-port="0" to-layer="45" to-port="1" />
939
+ <edge from-layer="44" from-port="0" to-layer="45" to-port="2" />
940
+ <edge from-layer="45" from-port="3" to-layer="48" to-port="3" />
941
+ <edge from-layer="46" from-port="0" to-layer="48" to-port="4" />
942
+ <edge from-layer="47" from-port="0" to-layer="48" to-port="5" />
943
+ <edge from-layer="48" from-port="8" to-layer="53" to-port="5" />
944
+ <edge from-layer="48" from-port="6" to-layer="53" to-port="3" />
945
+ <edge from-layer="48" from-port="7" to-layer="53" to-port="4" />
946
+ <edge from-layer="49" from-port="0" to-layer="53" to-port="6" />
947
+ <edge from-layer="50" from-port="0" to-layer="53" to-port="7" />
948
+ <edge from-layer="51" from-port="0" to-layer="53" to-port="8" />
949
+ <edge from-layer="52" from-port="0" to-layer="53" to-port="9" />
950
+ <edge from-layer="53" from-port="11" to-layer="58" to-port="1" />
951
+ <edge from-layer="53" from-port="12" to-layer="58" to-port="2" />
952
+ <edge from-layer="53" from-port="10" to-layer="58" to-port="0" />
953
+ <edge from-layer="53" from-port="10" to-layer="54" to-port="1" />
954
+ <edge from-layer="53" from-port="11" to-layer="54" to-port="0" />
955
+ <edge from-layer="54" from-port="2" to-layer="56" to-port="0" />
956
+ <edge from-layer="55" from-port="0" to-layer="56" to-port="1" />
957
+ <edge from-layer="56" from-port="2" to-layer="58" to-port="3" />
958
+ <edge from-layer="57" from-port="0" to-layer="58" to-port="4" />
959
+ <edge from-layer="58" from-port="6" to-layer="59" to-port="0" />
960
+ <edge from-layer="58" from-port="5" to-layer="61" to-port="0" />
961
+ <edge from-layer="59" from-port="1" to-layer="60" to-port="0" />
962
+ <edge from-layer="60" from-port="1" to-layer="64" to-port="0" />
963
+ <edge from-layer="61" from-port="1" to-layer="63" to-port="0" />
964
+ </edges>
965
+ <rt_info>
966
+ <info name="OpenVINO Runtime" value="2026.4.0-22959-99c81491cc3-releases/2026/4" />
967
+ <add_attention_mask value="True" />
968
+ <add_prefix_space />
969
+ <add_special_tokens value="True" />
970
+ <bos_token_id value="49406" />
971
+ <clean_up_tokenization_spaces />
972
+ <detokenizer_input_type value="i64" />
973
+ <eos_token_id value="49407" />
974
+ <handle_special_tokens_with_re />
975
+ <max_length />
976
+ <number_of_inputs value="1" />
977
+ <openvino_tokenizers_version value="2026.4.0.0-736-a04accf6282" />
978
+ <openvino_version value="2026.4.0-22959-99c81491cc3-releases/2026/4" />
979
+ <original_post_processor_template value="{&quot;type&quot;: &quot;RobertaProcessing&quot;, &quot;sep&quot;: [&quot;&lt;|endoftext|>&quot;, 49407], &quot;cls&quot;: [&quot;&lt;|startoftext|>&quot;, 49406], &quot;trim_offsets&quot;: false, &quot;add_prefix_space&quot;: false}" />
980
+ <original_tokenizer_class value="&lt;class 'transformers.models.clip.tokenization_clip_fast.CLIPTokenizerFast'>" />
981
+ <pad_token_id value="0" />
982
+ <processed_post_processor_template value="{&quot;single&quot;: {&quot;ids&quot;: [49406, -1, 49407], &quot;type_ids&quot;: [0, 0, 0]}, &quot;pair&quot;: {&quot;ids&quot;: [49406, -1, 49407, 49407, -1, 49407], &quot;type_ids&quot;: [0, 0, 0, 0, 0, 0]}}" />
983
+ <sentencepiece_version value="0.2.2" />
984
+ <skip_special_tokens value="True" />
985
+ <streaming_detokenizer value="False" />
986
+ <tokenizer_output_type value="i64" />
987
+ <tokenizers_version value="0.22.0" />
988
+ <transformers_version value="4.57.6" />
989
+ <truncation value="False" />
990
+ <use_max_padding value="False" />
991
+ <use_sentencepiece_backend value="False" />
992
+ <utf8_replace_mode value="replace" />
993
+ <with_detokenizer value="True" />
994
+ </rt_info>
995
+ </net>