onnx-embedders / README.md
svilupp's picture
Update README.md
43cf2e2 verified
---
license: apache-2.0
language:
- en
library_name: transformers
---
# TinyBERT_L-4_H-312_v2 ONNX Model
This repository provides an ONNX version of the `TinyBERT_L-4_H-312_v2` model, originally developed by the team at [Huawei Noah's Ark Lab](https://arxiv.org/abs/1909.10351)
and ported to Transformers by [Nils Reimers](https://huggingface.co/nreimers).
The model is a compact version of BERT, designed for efficient inference and reduced memory footprint. The ONNX version includes mean pooling of the last hidden layer for convenient feature extraction.
## Model Overview
TinyBERT is a smaller version of BERT that maintains competitive performance while significantly reducing the number of parameters and computational cost. This makes it ideal for deployment in resource-constrained environments. The model is based on the work presented in the paper ["TinyBERT: Distilling BERT for Natural Language Understanding"](https://arxiv.org/abs/1909.10351).
## License
This model is distributed under the Apache 2.0 License. For more details, please refer to the [license file](https://github.com/huawei-noah/Pretrained-Language-Model/blob/master/TinyBERT/LICENSE) in the original repository.
## Model Details
- **Model:** TinyBERT_L-4_H-312_v2
- **Layers:** 4
- **Hidden Size:** 312
- **Pooling:** Mean pooling of the last hidden layer
- **Format:** ONNX
## Usage
To use this model, you will need to have `onnxruntime` installed. You can install it via pip:
```bash
pip install onnxruntime, transformers
```
Below is a Python code snippet demonstrating how to run inference using this ONNX model:
```python
import onnxruntime as ort
from transformers import AutoTokenizer
model_path="TinyBERT_L-4_H-312_v2-onnx/"
tokenizer = AutoTokenizer.from_pretrained(model_path)
ort_sess = ort.InferenceSession(model_path + "/tinybert_mean_embeddings.onnx")
features = tokenizer(['How many people live in Berlin?','Berlin has a population of 3,520,031 registered inhabitants in an area of 891.82 square kilometers.', 'New York City is famous for the Metropolitan Museum of Art.'], padding=True, truncation=True, return_tensors="np")
onnx_inputs = {k: v for k, v in features.items() if k != 'token_type_ids'}
ort_outs = ort_sess.run(None, onnx_inputs)
print(ort_outs)
print("Mean pooled output:", mean_pooled_output)
```
Make sure to replace `'model_path'` with the actual path to your ONNX model file.
## Training Details
For detailed information on the training process of TinyBERT, please refer to the [original paper](https://arxiv.org/abs/1909.10351) by Huawei Noah's Ark Lab.
## Acknowledgements
This model is based on the work by the team at Huawei Noah's Ark Lab and by Nils Reimers. Special thanks to the developers for providing the pre-trained model and making it accessible to the community.