Views
No views yet
antoinelouis/crossencoder-camembert-L4-mmarcoFR — a lightweight 4-layer French cross-encoder (distilled from CamemBERT) trained on mMARCO-fr for passage reranking.sneko/crossencoder-camembert-base-mmarcoFR-onnx. It trades a bit of ranking quality (mMARCO-fr MRR@10 ≈ 29.2 vs ≈ 33.4 for the base model) for roughly 3× faster CPU inference, which matters a lot when reranking on small, GPU-less instances.ℹ️ Like the base export, this one includes the sequence-classification head, so it outputs a relevance score (logitsof shape[batch, 1]) and can actually be used for reranking — not the rawlast_hidden_state.
| File | Description |
|---|---|
onnx/model.onnx | full precision (fp32), ~206 MB |
onnx/model_quantized.onnx | int8 dynamic quantization (~52 MB) — loaded by default by Transformers.js |
1import { AutoModelForSequenceClassification, AutoTokenizer } from '@xenova/transformers';
2
3const model_id = 'sneko/crossencoder-camembert-L4-mmarcoFR-onnx';
4const tokenizer = await AutoTokenizer.from_pretrained(model_id);
5const model = await AutoModelForSequenceClassification.from_pretrained(model_id); // uses model_quantized.onnx
6
7const query = 'projets dans la police';
8const passages = ['Police nationale : métiers, recrutement et concours', 'Plateforme de photographie'];
9
10const inputs = tokenizer(new Array(passages.length).fill(query), { text_pair: passages, padding: true, truncation: true });
11const { logits } = await model(inputs);
12const scores = logits
13 .sigmoid()
14 .tolist()
15 .map(([s]) => s); // higher = more relevant1optimum-cli export onnx \
2 --model antoinelouis/crossencoder-camembert-L4-mmarcoFR \
3 --task text-classification --opset 14 ./out/
4# then int8 dynamic quantization (onnxruntime, QUInt8) -> onnx/model_quantized.onnx