|
Download README.md from rolf-mozilla/french-intent-embedding-e5-distilled: direct link, hf CLI and curl.
- Browser
- Download file 3.14 kB
-
https://huggingface.co/rolf-mozilla/french-intent-embedding-e5-distilled/resolve/main/README.md
- Command line
-
hf download hf://rolf-mozilla/french-intent-embedding-e5-distilled/README.md
-
curl -L -o README.md https://huggingface.co/rolf-mozilla/french-intent-embedding-e5-distilled/resolve/main/README.md
3.14 kB
| language: | |
| - fr | |
| license: mit | |
| library_name: onnx | |
| pipeline_tag: text-classification | |
| tags: | |
| - intent-classification | |
| - sentence-embeddings | |
| - onnx | |
| - french | |
| base_model: rolf-mozilla/french-embedding-e5-distilled | |
| datasets: | |
| - Mozilla/query-intent-detection-dataset-french | |
| # French query intent (Chat vs Search) + embedding in one pass — q8 ONNX | |
| [`rolf-mozilla/french-embedding-e5-distilled`](https://huggingface.co/rolf-mozilla/french-embedding-e5-distilled) | |
| with a linear **Chat / Search** intent head on its 256-d embedding, exported as **one | |
| graph with three outputs**, so a single forward pass gives both the intent and the | |
| embedding — no separate classifier model. **28.3 MB** int8 ONNX. | |
| | output | shape | meaning | | |
| |---|---|---| | |
| | `logits` | [batch, 2] | intent logits, `0 = Chat`, `1 = Search` | | |
| | `sentence_embedding` | [batch, 256] | mean-pooled, L2-normalized embedding (same as the embedding repo, cos ≥ 0.997) | | |
| | `last_hidden_state` | [batch, seq, 256] | per-token vectors (mean-pool these for the embedding yourself) | | |
| ## Results (French test split of Mozilla/query-intent-detection-dataset-french, q8) | |
| | model | extra cost on top of the embedding model | test acc | macro-F1 | test acc (queries unseen in train) | | |
| |---|---|---|---|---| | |
| | **this model** | **514 params (linear head)** | **0.748** | **0.738** | **0.727** | | |
| | Mozilla/query-intent-detection-en-fr | separate 14 MB model + forward pass | 0.713 | 0.710 | 0.696 | | |
| | multilingual-e5-small, fully fine-tuned | separate 118 MB model | 0.713 | 0.697 | 0.700 | | |
| | all-MiniLM-L6-v2, fully fine-tuned | separate 23 MB model | 0.706 | 0.689 | 0.691 | | |
| The test split (1,378 queries) is ~±2.3 accuracy points at 95% confidence. Train and | |
| validation are synthetic; validation accuracy (~0.96 here) does not predict test accuracy — | |
| full fine-tuning, LoRA, MLP heads and joint embedding+intent training all scored higher on | |
| validation but *lower* on test than this frozen-embedding linear head. | |
| ## Usage (Python, onnxruntime) | |
| ```python | |
| import numpy as np, onnxruntime as ort | |
| from huggingface_hub import hf_hub_download | |
| from transformers import AutoTokenizer | |
| repo = "rolf-mozilla/french-intent-embedding-e5-distilled" | |
| tok = AutoTokenizer.from_pretrained(repo) | |
| sess = ort.InferenceSession(hf_hub_download(repo, "onnx/model_quantized.onnx")) | |
| e = tok(["météo demain à Lyon", "écris un poème sur l'automne"], padding=True, | |
| truncation=True, max_length=64, return_tensors="np") | |
| logits, emb = sess.run(["logits", "sentence_embedding"], | |
| {"input_ids": e["input_ids"], "attention_mask": e["attention_mask"]}) | |
| labels = np.array(["Chat", "Search"])[logits.argmax(-1)] | |
| ``` | |
| ## Training | |
| - Embedding model frozen (see its card for how it was distilled and the data/licensing notes, | |
| including the MS MARCO lineage caveat of its `multilingual-e5-small` base). | |
| - Intent head: logistic regression on the normalized q8 embedding, trained on the 233k-query | |
| train split of `Mozilla/query-intent-detection-dataset-french`; feature standardization is | |
| folded into the head's weights. | |
| - French only; queries truncated to 64 tokens for intent. | |