HFOnnx
Exports a Hugging Face Transformer model to ONNX. Currently, this works best with classification/pooling/qa models. Work is ongoing for sequence to sequence models (summarization, transcription, translation).
Example
The following shows a simple example using this pipeline.
from txtai.pipeline import HFOnnx, Labels
# Model path
path = "distilbert-base-uncased-finetuned-sst-2-english"
# Export model to ONNX
onnx = HFOnnx()
model = onnx(path, "text-classification", "model.onnx", True)
# Run inference and validate
labels = Labels((model, path), dynamic=False)
labels("I am happy")
See the link below for a more detailed example.
Notebook | Description | |
---|---|---|
Export and run models with ONNX | Export models with ONNX, run natively in JavaScript, Java and Rust |
Methods
Python documentation for the pipeline.
Exports a Hugging Face Transformer model to ONNX.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
path | path to model, accepts Hugging Face model hub id, local path or (model, tokenizer) tuple | required | |
task | optional model task or category, determines the model type and outputs, defaults to export hidden state | ‘default’ | |
output | optional output model path, defaults to return byte array if None | None | |
quantize | if model should be quantized (requires onnx to be installed), defaults to False | False | |
opset | onnx opset, defaults to 12 | 12 |
Returns:
Type | Description |
---|---|
path to model output or model as bytes depending on output parameter |
Source code in txtai/pipeline/train/hfonnx.py
|
|