Feature Extraction
sentence-transformers
ONNX
Japanese
modernbert
teradata
byom
embeddings
text-embeddings-inference
Instructions to use Teradata/ruri-v3-70m with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sentence-transformers
How to use Teradata/ruri-v3-70m with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("Teradata/ruri-v3-70m") sentences = [ "The weather is lovely today.", "It's so sunny outside!", "He drove to the stadium." ] embeddings = model.encode(sentences) similarities = model.similarity(embeddings, embeddings) print(similarities.shape) # [3, 3] - Notebooks
- Google Colab
- Kaggle
Initial publish via td-embeddings
Browse files- README.md +292 -0
- config.json +47 -0
- onnx/model-ffn_skip.onnx +3 -0
- onnx/model-fp32.onnx +3 -0
- onnx/model-per_channel.onnx +3 -0
- special_tokens_map.json +51 -0
- tokenizer.json +0 -0
- tokenizer_config.json +171 -0
README.md
ADDED
|
@@ -0,0 +1,292 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
language:
|
| 4 |
+
- ja
|
| 5 |
+
library_name: sentence-transformers
|
| 6 |
+
pipeline_tag: feature-extraction
|
| 7 |
+
base_model: cl-nagoya/ruri-v3-70m
|
| 8 |
+
tags:
|
| 9 |
+
- onnx
|
| 10 |
+
- teradata
|
| 11 |
+
- byom
|
| 12 |
+
- embeddings
|
| 13 |
+
- feature-extraction
|
| 14 |
+
- modernbert
|
| 15 |
+
- sentence-transformers
|
| 16 |
+
---
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
|
| 20 |
+
> Read the disclaimer below before using this model.
|
| 21 |
+
|
| 22 |
+
----
|
| 23 |
+
|
| 24 |
+
# ruri-v3-70m -- ONNX for Teradata BYOM
|
| 25 |
+
|
| 26 |
+
This repository hosts an **ONNX-converted** version of the upstream
|
| 27 |
+
model [`cl-nagoya/ruri-v3-70m`](https://huggingface.co/cl-nagoya/ruri-v3-70m),
|
| 28 |
+
packaged for the Teradata Vantage `mldb.ONNXEmbeddings` BYOM
|
| 29 |
+
function. It is **not** the original PyTorch model -- only the
|
| 30 |
+
inference graph and tokenizer needed for in-database embedding
|
| 31 |
+
generation.
|
| 32 |
+
|
| 33 |
+
What's different from upstream:
|
| 34 |
+
|
| 35 |
+
- **Format**: ONNX (opset 14, IR version 8 -- BYOM 6+ compatible),
|
| 36 |
+
produced from the upstream weights with architecture-aware
|
| 37 |
+
post-processing baked in.
|
| 38 |
+
- **Precision**: dynamic int8 quantization. See the variants table
|
| 39 |
+
below for what is shipped for this model.
|
| 40 |
+
- **Pooling and post-processing**: this graph emits the raw
|
| 41 |
+
`sentence_embedding` tensor. Pooling rule is
|
| 42 |
+
**mean** and the model expects
|
| 43 |
+
a query-time instruction prefix (see "Instruction prefix" below).
|
| 44 |
+
- **Verification**: every variant's cosine fidelity vs. the
|
| 45 |
+
upstream PyTorch reference is recorded on a fixed
|
| 46 |
+
JMTEB retrieval (2 of 8 subsets: jagovfaqs_22k, nlp_journal_title_abs) sample. Numbers may not generalize
|
| 47 |
+
to your data.
|
| 48 |
+
|
| 49 |
+
## Model details
|
| 50 |
+
|
| 51 |
+
| | |
|
| 52 |
+
|---|---|
|
| 53 |
+
| Upstream repo | [`cl-nagoya/ruri-v3-70m`](https://huggingface.co/cl-nagoya/ruri-v3-70m) |
|
| 54 |
+
| Architecture | `ModernBertModel` (encoder) |
|
| 55 |
+
| Parameters | 70,002,816 |
|
| 56 |
+
| Output dimensions | 384 |
|
| 57 |
+
| Pooling | `mean` |
|
| 58 |
+
| Instruction prefix | yes |
|
| 59 |
+
| Max input tokens (advertised) | 8192 |
|
| 60 |
+
| Languages | 1 |
|
| 61 |
+
| License | apache-2.0 |
|
| 62 |
+
| ONNX opset | 14 |
|
| 63 |
+
| ONNX IR version | 8 (BYOM 6+ compatible) |
|
| 64 |
+
|
| 65 |
+
<details>
|
| 66 |
+
<summary>Full language list (1)</summary>
|
| 67 |
+
|
| 68 |
+
- `ja`
|
| 69 |
+
|
| 70 |
+
</details>
|
| 71 |
+
|
| 72 |
+
### Instruction prefix
|
| 73 |
+
|
| 74 |
+
This model was trained with a **role-specific prefix scheme**: the text
|
| 75 |
+
you encode must be prefixed according to what you are using the
|
| 76 |
+
embedding *for*. The prefix wording is not customisable -- the model
|
| 77 |
+
only understands these specific strings, and the trailing `: ` (ASCII
|
| 78 |
+
colon + ASCII space) is part of the prefix.
|
| 79 |
+
|
| 80 |
+
| Prefix | Use it for |
|
| 81 |
+
|---|---|
|
| 82 |
+
| (empty string) | semantic similarity and general-purpose encoding |
|
| 83 |
+
| `トピック: ` | classification, clustering, and topical encoding |
|
| 84 |
+
| `検索クエリ: ` | retrieval -- the **query** side |
|
| 85 |
+
| `検索文書: ` | retrieval -- the **document** side |
|
| 86 |
+
|
| 87 |
+
**The two sides of a retrieval pair take *different* prefixes.** This
|
| 88 |
+
is the part most easily got wrong: prefixing both sides with the same
|
| 89 |
+
string, or prefixing only one side, degrades retrieval quality without
|
| 90 |
+
producing any error. Prefix your queries with
|
| 91 |
+
`検索クエリ: ` and the passages you index
|
| 92 |
+
with `検索文書: `.
|
| 93 |
+
|
| 94 |
+
The ONNX graph itself is prefix-agnostic -- the prefix is plain text
|
| 95 |
+
that flows through the tokenizer. Downstream BYOM SQL is responsible
|
| 96 |
+
for prepending it, typically with a CTE that concatenates the prefix
|
| 97 |
+
onto each input row.
|
| 98 |
+
|
| 99 |
+
Worked example -- the same subject encoded on each side of a retrieval
|
| 100 |
+
pair:
|
| 101 |
+
|
| 102 |
+
```
|
| 103 |
+
query: 検索クエリ: 瑠璃色はどんな色?
|
| 104 |
+
document: 検索文書: 瑠璃色(るりいろ)は、紫みを帯びた濃い青。
|
| 105 |
+
```
|
| 106 |
+
|
| 107 |
+
Example SQL (queries and documents prefixed separately, then embedded
|
| 108 |
+
through the same model):
|
| 109 |
+
|
| 110 |
+
```sql
|
| 111 |
+
WITH prefixed_queries AS (
|
| 112 |
+
SELECT id,
|
| 113 |
+
'検索クエリ: ' || query_text AS txt
|
| 114 |
+
FROM my_query_table
|
| 115 |
+
),
|
| 116 |
+
prefixed_documents AS (
|
| 117 |
+
SELECT id,
|
| 118 |
+
'検索文書: ' || body_text AS txt
|
| 119 |
+
FROM my_document_table
|
| 120 |
+
)
|
| 121 |
+
SELECT *
|
| 122 |
+
FROM mldb.ONNXEmbeddings(
|
| 123 |
+
ON prefixed_queries
|
| 124 |
+
ON embeddings_models AS ModelTable DIMENSION
|
| 125 |
+
ON embeddings_tokenizers AS TokenizerTable DIMENSION
|
| 126 |
+
USING
|
| 127 |
+
Accumulate('id')
|
| 128 |
+
ModelOutputTensor('sentence_embedding')
|
| 129 |
+
) AS s;
|
| 130 |
+
```
|
| 131 |
+
|
| 132 |
+
See
|
| 133 |
+
[`cl-nagoya/ruri-v3-70m`](https://huggingface.co/cl-nagoya/ruri-v3-70m) for the
|
| 134 |
+
canonical guidance.
|
| 135 |
+
|
| 136 |
+
## Quantization variants
|
| 137 |
+
|
| 138 |
+
This repository ships the following variants. The **Size** column is the
|
| 139 |
+
on-disk size of the ONNX weight file in megabytes (MB, 10^6 bytes).
|
| 140 |
+
Quality numbers may not generalize to your data; they come from a fixed
|
| 141 |
+
sample of JMTEB retrieval (2 of 8 subsets: jagovfaqs_22k, nlp_journal_title_abs).
|
| 142 |
+
|
| 143 |
+
Those numbers were measured with inputs tokenized at a maximum sequence
|
| 144 |
+
length of **512 tokens**.
|
| 145 |
+
|
| 146 |
+
| Variant | Size (MB) | p50 cosine | R@1 | Δ R@1 vs fp32 |
|
| 147 |
+
|---|---|---|---|---|
|
| 148 |
+
| `fp32` | 280.3 | 1.000000 | 0.927 | — |
|
| 149 |
+
| `per_channel` | 72.7 | 0.952567 | 0.891 | -0.036 |
|
| 150 |
+
| `ffn_skip` | 139.6 | 0.999625 | 0.929 | +0.002 |
|
| 151 |
+
|
| 152 |
+
|
| 153 |
+
How to read the quality columns:
|
| 154 |
+
|
| 155 |
+
- **p50 cosine** is the median cosine similarity between this
|
| 156 |
+
variant's embeddings and the fp32 ONNX reference, computed over
|
| 157 |
+
a fixed evaluation set. Higher means closer to the unquantized
|
| 158 |
+
model; **1.0** is identical. On the `fp32` row the comparison is
|
| 159 |
+
against the upstream PyTorch model instead, so that row measures
|
| 160 |
+
export drift rather than quantization drift.
|
| 161 |
+
- **R@1** is **absolute top-1 retrieval accuracy** on that evaluation
|
| 162 |
+
sample: each query is ranked against the whole document pool, and R@1
|
| 163 |
+
is the fraction of queries whose own canonical document comes back
|
| 164 |
+
first. Higher is better. It is *not* a comparison against fp32 --
|
| 165 |
+
every row is measured exactly the same way.
|
| 166 |
+
- **Δ R@1 vs fp32** is that row's R@1 minus the `fp32` row's, on the same
|
| 167 |
+
corpus at the same sequence length. Because every row is measured the
|
| 168 |
+
same way, the `fp32` row is this model's unquantized ceiling, and this
|
| 169 |
+
column is the retrieval quality actually given up to quantization.
|
| 170 |
+
Read it when choosing between variants: two artifacts can post similar
|
| 171 |
+
absolute R@1 while one has given up several times as much against its
|
| 172 |
+
own ceiling, and only the delta shows that.
|
| 173 |
+
|
| 174 |
+
Notes:
|
| 175 |
+
- **fp32**: full-precision reference. Useful for an accuracy ceiling,
|
| 176 |
+
but BYOM users almost always want one of the int8 variants for
|
| 177 |
+
in-database scoring -- they are 3-4x smaller and load much faster.
|
| 178 |
+
- **per_channel**: dynamic int8 with weights quantized **per
|
| 179 |
+
output channel**. Each output channel keeps its own scale, so
|
| 180 |
+
layer-wide outliers don't blow up the quantization range. The
|
| 181 |
+
artifact is roughly **4x smaller than fp32** and is the right
|
| 182 |
+
default when storage, memory, or load time matters more than the
|
| 183 |
+
last percent of retrieval quality.
|
| 184 |
+
- **ffn_skip**: dynamic int8 with the feed-forward (FFN) MatMul
|
| 185 |
+
layers kept in **fp32**, while attention and projection MatMuls
|
| 186 |
+
stay quantized. The FFN layers are where most of the quantization
|
| 187 |
+
error in transformer blocks concentrates; leaving them in fp32
|
| 188 |
+
recovers most of the quality loss for a modest size increase.
|
| 189 |
+
The artifact is roughly **3x smaller than fp32** (larger than the
|
| 190 |
+
per_channel int8 sibling).
|
| 191 |
+
|
| 192 |
+
## Quickstart: using this model with Teradata BYOM
|
| 193 |
+
|
| 194 |
+
Requires Teradata Vantage with **BYOM 6+** (`mldb.ONNXEmbeddings`).
|
| 195 |
+
|
| 196 |
+
```python
|
| 197 |
+
import getpass
|
| 198 |
+
import teradataml as tdml
|
| 199 |
+
from huggingface_hub import hf_hub_download
|
| 200 |
+
|
| 201 |
+
repo_id = "Teradata/ruri-v3-70m"
|
| 202 |
+
model_id = "ruri-v3-70m" # arbitrary, used as the BYOM model_id
|
| 203 |
+
onnx_file = "onnx/model-per_channel.onnx"
|
| 204 |
+
|
| 205 |
+
# 1. Download the ONNX + tokenizer for the chosen variant.
|
| 206 |
+
hf_hub_download(repo_id=repo_id, filename=onnx_file, local_dir="./")
|
| 207 |
+
hf_hub_download(repo_id=repo_id, filename="tokenizer.json", local_dir="./")
|
| 208 |
+
|
| 209 |
+
# 2. Connect to Vantage.
|
| 210 |
+
tdml.create_context(
|
| 211 |
+
host=input("host: "),
|
| 212 |
+
username=input("user: "),
|
| 213 |
+
password=getpass.getpass("password: "),
|
| 214 |
+
)
|
| 215 |
+
|
| 216 |
+
# 3. Load model + tokenizer into BYOM tables (one-time per model_id).
|
| 217 |
+
tdml.save_byom(model_id=model_id, model_file=onnx_file,
|
| 218 |
+
table_name="embeddings_models")
|
| 219 |
+
tdml.save_byom(model_id=model_id, model_file="tokenizer.json",
|
| 220 |
+
table_name="embeddings_tokenizers")
|
| 221 |
+
```
|
| 222 |
+
|
| 223 |
+
Then call `mldb.ONNXEmbeddings` against an input table whose
|
| 224 |
+
`txt` column carries the strings to embed:
|
| 225 |
+
|
| 226 |
+
```sql
|
| 227 |
+
SELECT *
|
| 228 |
+
FROM mldb.ONNXEmbeddings(
|
| 229 |
+
ON (SELECT id, txt FROM your_input_table) AS InputTable
|
| 230 |
+
ON (SELECT model_id, model FROM embeddings_models
|
| 231 |
+
WHERE model_id = 'ruri-v3-70m') AS ModelTable DIMENSION
|
| 232 |
+
ON (SELECT model_id, tokenizer FROM embeddings_tokenizers
|
| 233 |
+
WHERE model_id = 'ruri-v3-70m') AS TokenizerTable DIMENSION
|
| 234 |
+
USING
|
| 235 |
+
Accumulate('id')
|
| 236 |
+
ModelOutputTensor('sentence_embedding')
|
| 237 |
+
OutputFormat('FLOAT32(384)')
|
| 238 |
+
OverwriteCachedModel('*')
|
| 239 |
+
) AS t
|
| 240 |
+
ORDER BY id;
|
| 241 |
+
```
|
| 242 |
+
|
| 243 |
+
Pooling rule **`mean`** is applied **inside** the converted
|
| 244 |
+
ONNX graph -- the output tensor named above already contains the
|
| 245 |
+
pooled, post-processed embedding vector. For instruction-prefix models, prepend
|
| 246 |
+
the recommended instruction text to each input `txt` before calling
|
| 247 |
+
`ONNXEmbeddings`; the prefix is plain text that the tokenizer handles
|
| 248 |
+
unchanged.
|
| 249 |
+
|
| 250 |
+
## Original model attribution
|
| 251 |
+
|
| 252 |
+
The original weights and training methodology belong to
|
| 253 |
+
**the Ruri authors at Nagoya University**. Please cite their work, not this
|
| 254 |
+
repository, in academic contexts. The canonical upstream model card
|
| 255 |
+
is at
|
| 256 |
+
[`cl-nagoya/ruri-v3-70m`](https://huggingface.co/cl-nagoya/ruri-v3-70m);
|
| 257 |
+
refer to it for benchmarks, training details, intended use, and
|
| 258 |
+
citation information.
|
| 259 |
+
|
| 260 |
+
`cl-nagoya/ruri-v3-70m` is itself derived from earlier models, and **not every
|
| 261 |
+
model in that chain is under the same license as this one**. The
|
| 262 |
+
`license` field in this repository's metadata can only carry a single
|
| 263 |
+
value (apache-2.0 -- the license of `cl-nagoya/ruri-v3-70m`), so the
|
| 264 |
+
full chain is stated here:
|
| 265 |
+
|
| 266 |
+
| Upstream model | License | Relationship |
|
| 267 |
+
|---|---|---|
|
| 268 |
+
| [`cl-nagoya/ruri-v3-70m`](https://huggingface.co/cl-nagoya/ruri-v3-70m) | apache-2.0 | the model converted here |
|
| 269 |
+
| [`cl-nagoya/ruri-v3-pt-70m`](https://huggingface.co/cl-nagoya/ruri-v3-pt-70m) | apache-2.0 | direct base (Ruri v3 pretrained backbone) |
|
| 270 |
+
| [`sbintuitions/modernbert-ja-70m`](https://huggingface.co/sbintuitions/modernbert-ja-70m) | mit | ModernBERT-Ja base of the pretrained backbone |
|
| 271 |
+
|
| 272 |
+
Your use of this artifact is subject to the terms of **every** license
|
| 273 |
+
in that chain. Check each upstream model card for its authoritative
|
| 274 |
+
license text.
|
| 275 |
+
|
| 276 |
+
## Reporting issues
|
| 277 |
+
|
| 278 |
+
For ONNX-conversion or BYOM-compatibility issues specific to this
|
| 279 |
+
Teradata-converted artifact, please open a **Discussion** on this
|
| 280 |
+
model's Hugging Face page. Questions about the underlying model
|
| 281 |
+
quality, training, or intended use should go to the upstream
|
| 282 |
+
maintainer's model card.
|
| 283 |
+
|
| 284 |
+
----
|
| 285 |
+
|
| 286 |
+
DISCLAIMER: The content herein ("Content") is provided "AS IS" and is not covered by any Teradata Operations, Inc. and its affiliates ("Teradata") agreements. Its listing here does not constitute certification or endorsement by Teradata.
|
| 287 |
+
|
| 288 |
+
To the extent any of the Content contains or is related to any artificial intelligence ("AI") or other language learning models ("Models") that interoperate with the products and services of Teradata, by accessing, bringing, deploying or using such Models, you acknowledge and agree that you are solely responsible for ensuring compliance with all applicable laws, regulations, and restrictions governing the use, deployment, and distribution of AI technologies. This includes, but is not limited to, AI Diffusion Rules, European Union AI Act, AI-related laws and regulations, privacy laws, export controls, and financial or sector-specific regulations.
|
| 289 |
+
|
| 290 |
+
While Teradata may provide support, guidance, or assistance in the deployment or implementation of Models to interoperate with Teradata's products and/or services, you remain fully responsible for ensuring that your Models, data, and applications comply with all relevant legal and regulatory obligations. Our assistance does not constitute legal or regulatory approval, and Teradata disclaims any liability arising from non-compliance with applicable laws.
|
| 291 |
+
|
| 292 |
+
You must determine the suitability of the Models for any purpose. Given the probabilistic nature of machine learning and modeling, the use of the Models may in some situations result in incorrect output that does not accurately reflect the action generated. You should evaluate the accuracy of any output as appropriate for your use case, including by using human review of the output.
|
config.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"_name_or_path": "outputs/ft/vanilla/cl-nagoya__ruri-v3-pt-70m/B512E1LR1e-05L8192Temp0.01/default14",
|
| 3 |
+
"architectures": [
|
| 4 |
+
"ModernBertModel"
|
| 5 |
+
],
|
| 6 |
+
"attention_bias": false,
|
| 7 |
+
"attention_dropout": 0.0,
|
| 8 |
+
"bos_token_id": 1,
|
| 9 |
+
"classifier_activation": "gelu",
|
| 10 |
+
"classifier_bias": false,
|
| 11 |
+
"classifier_dropout": 0.0,
|
| 12 |
+
"classifier_pooling": "cls",
|
| 13 |
+
"cls_token_id": 6,
|
| 14 |
+
"decoder_bias": true,
|
| 15 |
+
"deterministic_flash_attn": false,
|
| 16 |
+
"embedding_dropout": 0.0,
|
| 17 |
+
"eos_token_id": 2,
|
| 18 |
+
"global_attn_every_n_layers": 3,
|
| 19 |
+
"global_rope_theta": 160000.0,
|
| 20 |
+
"gradient_checkpointing": false,
|
| 21 |
+
"hidden_activation": "gelu",
|
| 22 |
+
"hidden_size": 384,
|
| 23 |
+
"initializer_cutoff_factor": 2.0,
|
| 24 |
+
"initializer_range": 0.02,
|
| 25 |
+
"intermediate_size": 1536,
|
| 26 |
+
"layer_norm_eps": 1e-05,
|
| 27 |
+
"local_attention": 128,
|
| 28 |
+
"local_rope_theta": 10000.0,
|
| 29 |
+
"max_position_embeddings": 8192,
|
| 30 |
+
"mlp_bias": false,
|
| 31 |
+
"mlp_dropout": 0.0,
|
| 32 |
+
"model_type": "modernbert",
|
| 33 |
+
"norm_bias": false,
|
| 34 |
+
"norm_eps": 1e-05,
|
| 35 |
+
"num_attention_heads": 6,
|
| 36 |
+
"num_hidden_layers": 13,
|
| 37 |
+
"pad_token_id": 3,
|
| 38 |
+
"position_embedding_type": "rope",
|
| 39 |
+
"reference_compile": false,
|
| 40 |
+
"repad_logits_with_grad": false,
|
| 41 |
+
"sep_token_id": 4,
|
| 42 |
+
"sparse_pred_ignore_index": -100,
|
| 43 |
+
"sparse_prediction": false,
|
| 44 |
+
"torch_dtype": "float32",
|
| 45 |
+
"transformers_version": "4.48.3",
|
| 46 |
+
"vocab_size": 102400
|
| 47 |
+
}
|
onnx/model-ffn_skip.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:bdd04431dd716f720df04d0b31aed4c39a6558d610fb4f6eaabe4706f9217bf4
|
| 3 |
+
size 139644978
|
onnx/model-fp32.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:4219242d44c62ec855056496b7806a570bede1512faf6c4779861e2e3baba91c
|
| 3 |
+
size 280334146
|
onnx/model-per_channel.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:bad7aa60569b87adb359be39786606e891d81205b26ef59c3649c125acb447d3
|
| 3 |
+
size 72656615
|
special_tokens_map.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"bos_token": {
|
| 3 |
+
"content": "<s>",
|
| 4 |
+
"lstrip": false,
|
| 5 |
+
"normalized": false,
|
| 6 |
+
"rstrip": false,
|
| 7 |
+
"single_word": false
|
| 8 |
+
},
|
| 9 |
+
"cls_token": {
|
| 10 |
+
"content": "<cls>",
|
| 11 |
+
"lstrip": false,
|
| 12 |
+
"normalized": false,
|
| 13 |
+
"rstrip": false,
|
| 14 |
+
"single_word": false
|
| 15 |
+
},
|
| 16 |
+
"eos_token": {
|
| 17 |
+
"content": "</s>",
|
| 18 |
+
"lstrip": false,
|
| 19 |
+
"normalized": false,
|
| 20 |
+
"rstrip": false,
|
| 21 |
+
"single_word": false
|
| 22 |
+
},
|
| 23 |
+
"mask_token": {
|
| 24 |
+
"content": "<mask>",
|
| 25 |
+
"lstrip": false,
|
| 26 |
+
"normalized": false,
|
| 27 |
+
"rstrip": false,
|
| 28 |
+
"single_word": false
|
| 29 |
+
},
|
| 30 |
+
"pad_token": {
|
| 31 |
+
"content": "<pad>",
|
| 32 |
+
"lstrip": false,
|
| 33 |
+
"normalized": false,
|
| 34 |
+
"rstrip": false,
|
| 35 |
+
"single_word": false
|
| 36 |
+
},
|
| 37 |
+
"sep_token": {
|
| 38 |
+
"content": "<sep>",
|
| 39 |
+
"lstrip": false,
|
| 40 |
+
"normalized": false,
|
| 41 |
+
"rstrip": false,
|
| 42 |
+
"single_word": false
|
| 43 |
+
},
|
| 44 |
+
"unk_token": {
|
| 45 |
+
"content": "<unk>",
|
| 46 |
+
"lstrip": false,
|
| 47 |
+
"normalized": false,
|
| 48 |
+
"rstrip": false,
|
| 49 |
+
"single_word": false
|
| 50 |
+
}
|
| 51 |
+
}
|
tokenizer.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
tokenizer_config.json
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"add_bos_token": true,
|
| 3 |
+
"add_dummy_prefix_space": false,
|
| 4 |
+
"add_eos_token": true,
|
| 5 |
+
"add_prefix_space": false,
|
| 6 |
+
"added_tokens_decoder": {
|
| 7 |
+
"0": {
|
| 8 |
+
"content": "<unk>",
|
| 9 |
+
"lstrip": false,
|
| 10 |
+
"normalized": false,
|
| 11 |
+
"rstrip": false,
|
| 12 |
+
"single_word": false,
|
| 13 |
+
"special": true
|
| 14 |
+
},
|
| 15 |
+
"1": {
|
| 16 |
+
"content": "<s>",
|
| 17 |
+
"lstrip": false,
|
| 18 |
+
"normalized": false,
|
| 19 |
+
"rstrip": false,
|
| 20 |
+
"single_word": false,
|
| 21 |
+
"special": true
|
| 22 |
+
},
|
| 23 |
+
"2": {
|
| 24 |
+
"content": "</s>",
|
| 25 |
+
"lstrip": false,
|
| 26 |
+
"normalized": false,
|
| 27 |
+
"rstrip": false,
|
| 28 |
+
"single_word": false,
|
| 29 |
+
"special": true
|
| 30 |
+
},
|
| 31 |
+
"3": {
|
| 32 |
+
"content": "<pad>",
|
| 33 |
+
"lstrip": false,
|
| 34 |
+
"normalized": false,
|
| 35 |
+
"rstrip": false,
|
| 36 |
+
"single_word": false,
|
| 37 |
+
"special": true
|
| 38 |
+
},
|
| 39 |
+
"4": {
|
| 40 |
+
"content": "<sep>",
|
| 41 |
+
"lstrip": false,
|
| 42 |
+
"normalized": false,
|
| 43 |
+
"rstrip": false,
|
| 44 |
+
"single_word": false,
|
| 45 |
+
"special": true
|
| 46 |
+
},
|
| 47 |
+
"5": {
|
| 48 |
+
"content": "<mask>",
|
| 49 |
+
"lstrip": false,
|
| 50 |
+
"normalized": false,
|
| 51 |
+
"rstrip": false,
|
| 52 |
+
"single_word": false,
|
| 53 |
+
"special": true
|
| 54 |
+
},
|
| 55 |
+
"6": {
|
| 56 |
+
"content": "<cls>",
|
| 57 |
+
"lstrip": false,
|
| 58 |
+
"normalized": false,
|
| 59 |
+
"rstrip": false,
|
| 60 |
+
"single_word": false,
|
| 61 |
+
"special": true
|
| 62 |
+
},
|
| 63 |
+
"7": {
|
| 64 |
+
"content": "<|system|>",
|
| 65 |
+
"lstrip": false,
|
| 66 |
+
"normalized": false,
|
| 67 |
+
"rstrip": false,
|
| 68 |
+
"single_word": false,
|
| 69 |
+
"special": false
|
| 70 |
+
},
|
| 71 |
+
"8": {
|
| 72 |
+
"content": "<|assistant|>",
|
| 73 |
+
"lstrip": false,
|
| 74 |
+
"normalized": false,
|
| 75 |
+
"rstrip": false,
|
| 76 |
+
"single_word": false,
|
| 77 |
+
"special": false
|
| 78 |
+
},
|
| 79 |
+
"9": {
|
| 80 |
+
"content": "<|user|>",
|
| 81 |
+
"lstrip": false,
|
| 82 |
+
"normalized": false,
|
| 83 |
+
"rstrip": false,
|
| 84 |
+
"single_word": false,
|
| 85 |
+
"special": false
|
| 86 |
+
},
|
| 87 |
+
"10": {
|
| 88 |
+
"content": "<|available_tools|>",
|
| 89 |
+
"lstrip": false,
|
| 90 |
+
"normalized": false,
|
| 91 |
+
"rstrip": false,
|
| 92 |
+
"single_word": false,
|
| 93 |
+
"special": false
|
| 94 |
+
},
|
| 95 |
+
"11": {
|
| 96 |
+
"content": "<|tool_calls|>",
|
| 97 |
+
"lstrip": false,
|
| 98 |
+
"normalized": false,
|
| 99 |
+
"rstrip": false,
|
| 100 |
+
"single_word": false,
|
| 101 |
+
"special": false
|
| 102 |
+
},
|
| 103 |
+
"12": {
|
| 104 |
+
"content": "<|tool_results|>",
|
| 105 |
+
"lstrip": false,
|
| 106 |
+
"normalized": false,
|
| 107 |
+
"rstrip": false,
|
| 108 |
+
"single_word": false,
|
| 109 |
+
"special": false
|
| 110 |
+
},
|
| 111 |
+
"13": {
|
| 112 |
+
"content": "<|code|>",
|
| 113 |
+
"lstrip": false,
|
| 114 |
+
"normalized": false,
|
| 115 |
+
"rstrip": false,
|
| 116 |
+
"single_word": false,
|
| 117 |
+
"special": false
|
| 118 |
+
},
|
| 119 |
+
"14": {
|
| 120 |
+
"content": "<|file|>",
|
| 121 |
+
"lstrip": false,
|
| 122 |
+
"normalized": false,
|
| 123 |
+
"rstrip": false,
|
| 124 |
+
"single_word": false,
|
| 125 |
+
"special": false
|
| 126 |
+
},
|
| 127 |
+
"102397": {
|
| 128 |
+
"content": "<|prefix|>",
|
| 129 |
+
"lstrip": false,
|
| 130 |
+
"normalized": false,
|
| 131 |
+
"rstrip": false,
|
| 132 |
+
"single_word": false,
|
| 133 |
+
"special": false
|
| 134 |
+
},
|
| 135 |
+
"102398": {
|
| 136 |
+
"content": "<|suffix|>",
|
| 137 |
+
"lstrip": false,
|
| 138 |
+
"normalized": false,
|
| 139 |
+
"rstrip": false,
|
| 140 |
+
"single_word": false,
|
| 141 |
+
"special": false
|
| 142 |
+
},
|
| 143 |
+
"102399": {
|
| 144 |
+
"content": "<|middle|>",
|
| 145 |
+
"lstrip": false,
|
| 146 |
+
"normalized": false,
|
| 147 |
+
"rstrip": false,
|
| 148 |
+
"single_word": false,
|
| 149 |
+
"special": false
|
| 150 |
+
}
|
| 151 |
+
},
|
| 152 |
+
"bos_token": "<s>",
|
| 153 |
+
"clean_up_tokenization_spaces": false,
|
| 154 |
+
"cls_token": "<cls>",
|
| 155 |
+
"do_lower_case": false,
|
| 156 |
+
"eos_token": "</s>",
|
| 157 |
+
"extra_ids": 0,
|
| 158 |
+
"extra_special_tokens": {},
|
| 159 |
+
"keep_accents": true,
|
| 160 |
+
"legacy": false,
|
| 161 |
+
"mask_token": "<mask>",
|
| 162 |
+
"model_max_length": 8192,
|
| 163 |
+
"pad_token": "<pad>",
|
| 164 |
+
"padding_side": "right",
|
| 165 |
+
"sep_token": "<sep>",
|
| 166 |
+
"sp_model_kwargs": {},
|
| 167 |
+
"spaces_between_special_tokens": false,
|
| 168 |
+
"tokenizer_class": "LlamaTokenizer",
|
| 169 |
+
"unk_token": "<unk>",
|
| 170 |
+
"use_default_system_prompt": false
|
| 171 |
+
}
|