alt.freeweights.vision / xlm-roberta-base-language-detection
From: papluca <huggingface.co/papluca>Newsgroups: alt.freeweights.visionSubject:

xlm-roberta-base-language-detection

Date: 2026-11-15Commit: 9865598Signed: 2DC28CC7B26A283B ✓

Text classification model with 278M parameters. Safetensors weights, 3.35 GB in all. Published by papluca under MIT.

278M params3.35GBxlm-roberta-base-language-detectionsafetensorspermissive
FactsParams278MSize3.35 GBFormatssafetensorsTasktext classificationLicenseMITFrom sourcepermissive
$ fw get papluca/xlm-roberta-base-language-detection
# manifest sha256 1c5b71cfaf10… · 3.35 GB · 10 files
$ fw verify ./xlm-roberta-base-language-detection papluca/xlm-roberta-base-language-detection
From sourceHosted (signed)papluca/xlm-roberta-base-language-detectionLast check: 2026-11-15 02:30 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Fine-tune of xlm-roberta-base.

Overview

Size
3.35 GB
Weights
1.11 GB (safetensors)
Parameters
278M
Formats
safetensors
Task
text classification
License
MIT (permissive)
Files
10, each with a sha256
Publisher
papluca
Added
2026-11-15
Section
alt.freeweights.vision
Lineage

Original release from the publisher.

Base model: FacebookAI/xlm-roberta-base

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 02:30 UTCpassed

Model card

From the publisher at commit 9865598. Shown as plain text with links; images open at the publisher.

xlm-roberta-base-language-detection#

This model is a fine-tuned version of xlm-roberta-base on the Language Identification dataset.

Model description#

This model is an XLM-RoBERTa transformer model with a classification head on top (i.e. a linear layer on top of the pooled output). For additional information please refer to the xlm-roberta-base model card or to the paper Unsupervised Cross-lingual Representation Learning at Scale by Conneau et al.

Intended uses & limitations#

You can directly use this model as a language detector, i.e. for sequence classification tasks. Currently, it supports the following 20 languages:

arabic (ar), bulgarian (bg), german (de), modern greek (el), english (en), spanish (es), french (fr), hindi (hi), italian (it), japanese (ja), dutch (nl), polish (pl), portuguese (pt), russian (ru), swahili (sw), thai (th), turkish (tr), urdu (ur), vietnamese (vi), and chinese (zh)

Training and evaluation data#

The model was fine-tuned on the Language Identification dataset, which consists of text sequences in 20 languages. The training set contains 70k samples, while the validation and test sets 10k each. The average accuracy on the test set is 99.6% (this matches the average macro/weighted F1-score being the test set perfectly balanced). A more detailed evaluation is provided by the following table.

LanguagePrecisionRecallF1-scoresupport
ar0.9980.9960.997500
bg0.9980.9640.981500
de0.9980.9960.997500
el0.9961.0000.998500
en1.0001.0001.000500
es0.9671.0000.983500
fr1.0001.0001.000500
hi0.9940.9920.993500
it1.0000.9920.996500
ja0.9960.9960.996500
nl1.0001.0001.000500
pl1.0001.0001.000500
pt0.9881.0000.994500
ru1.0000.9940.997500
sw1.0001.0001.000500
th1.0000.9980.999500
tr0.9940.9920.993500
ur1.0001.0001.000500
vi0.9921.0000.996500
zh1.0001.0001.000500
Benchmarks#

As a baseline to compare xlm-roberta-base-language-detection against, we have used the Python langid library. Since it comes pre-trained on 97 languages, we have used its .set_languages() method to constrain the language set to our 20 languages. The average accuracy of langid on the test set is 98.5%. More details are provided by the table below.

LanguagePrecisionRecallF1-scoresupport
ar0.9900.9700.980500
bg0.9980.9640.981500
de0.9920.9440.967500
el1.0000.9980.999500
en1.0001.0001.000500
es1.0000.9680.984500
fr0.9961.0000.998500
hi0.9490.9760.963500
it0.9900.9800.985500
ja0.9270.9880.956500
nl0.9801.0000.990500
pl0.9860.9960.991500
pt0.9500.9960.973500
ru0.9960.9740.985500
sw1.0001.0001.000500
th1.0000.9960.998500
tr0.9900.9680.979500
ur0.9980.9960.997500
vi0.9710.9900.980500
zh1.0001.0001.000500

How to get started with the model#

The easiest way to use the model is via the high-level pipeline API:

from transformers import pipeline

text = [
    "Brevity is the soul of wit.",
    "Amor, ch'a nullo amato amar perdona."
]

model_ckpt = "papluca/xlm-roberta-base-language-detection"
pipe = pipeline("text-classification", model=model_ckpt)
pipe(text, top_k=1, truncation=True)

Or one can proceed with the tokenizer and model separately:

import torch
from transformers import AutoModelForSequenceClassification, AutoTokenizer

text = [
    "Brevity is the soul of wit.",
    "Amor, ch'a nullo amato amar perdona."
]

model_ckpt = "papluca/xlm-roberta-base-language-detection"
tokenizer = AutoTokenizer.from_pretrained(model_ckpt)
model = AutoModelForSequenceClassification.from_pretrained(model_ckpt)

inputs = tokenizer(text, padding=True, truncation=True, return_tensors="pt")

with torch.no_grad():
    logits = model(**inputs).logits

preds = torch.softmax(logits, dim=-1)

# Map raw predictions to languages
id2lang = model.config.id2label
vals, idxs = torch.max(preds, dim=1)
{id2lang[k.item()]: v.item() for k, v in zip(idxs, vals)}

Training procedure#

Fine-tuning was done via the Trainer API. Here is the Colab notebook with the training code.

Training hyperparameters#

The following hyperparameters were used during training:

  • learning_rate: 2e-05
  • train_batch_size: 64
  • eval_batch_size: 128
  • seed: 42
  • optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
  • lr_scheduler_type: linear
  • num_epochs: 2
  • mixed_precision_training: Native AMP
Training results#

The validation results on the valid split of the Language Identification dataset are summarised here below.

Training LossEpochStepValidation LossAccuracyF1
0.24921.010940.01490.99690.9969
0.01012.021880.01030.99770.9977

In short, it achieves the following results on the validation set:

  • Loss: 0.0101
  • Accuracy: 0.9977
  • F1: 0.9977
Framework versions#
  • Transformers 4.12.5
  • Pytorch 1.10.0+cu111
  • Datasets 1.15.1
  • Tokenizers 0.10.3

Files

10 files · 3.35 GBWeights 1.11 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 10 files with their sha256
FileSizesha256
.gitattributes1.23 KB98ccb431c012ebfe976280fbd45aea4cec7409935868ccecf3954370f96732a1
README.md7.18 KB312753546a1e6fe30c9adb3ba51feed9163d00dca06f4d2042cc438f6dbf9cea
config.json1.42 KBc853c935230721240f2fc06acb72fb086cecea3cec99b62d843ac4678b7daba9
model.safetensors1.11 GBa835d6e8ed50ef6b3c180db87446a83ee5ac437e981c932c8e1e239aacbe08b7
pytorch_model.bin1.11 GBeb6bded160fdd712245e1bd19c4de417e1508094a9f69d92ae287f32a8732888
sentencepiece.bpe.model5.07 MBcfc8146abe2a0488e9e2a0c56de7952f7c11ab059eca145a0a727afce0db2865
special_tokens_map.json239 B378eb3bf733eb16e65792d7e3fda5b8a4631387ca04d2015199c4d4f22ae554d
tf_model.h51.11 GBd6417044a1451c9a5fd302579ee5d39bae3831b0cd57bd008b61e79d33156f6e
tokenizer.json9.08 MB2a0d7366dd7780ea36cc42431dd74cd79289b783ab01acd33013fcc96865a8e9
tokenizer_config.json502 B0606f1a769dcea369f11010642c030cbd0a0a545ac21b11f2f86e9ae975dac3f
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
9865598389 pinned now2026-11-15 02:30 UTC10 files · 3.35 GB

Use it

$ fw get papluca/xlm-roberta-base-language-detection
# manifest sha256 1c5b71cfaf10… · 3.35 GB · 10 files
$ fw verify ./xlm-roberta-base-language-detection papluca/xlm-roberta-base-language-detection
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/papluca/xlm-roberta-base-language-detection.json --dir ./xlm-roberta-base-language-detection $ python3 fw.py verify ./xlm-roberta-base-language-detection ./papluca__xlm-roberta-base-language-detection.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download papluca/xlm-roberta-base-language-detection --revision 9865598389ca9d95637462f743f683b51d75b87b --local-dir ./xlm-roberta-base-language-detection

License

Name
MIT License
Id
MIT
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
README.md
Text sha256
312753546a1e6fe30c9adb3ba51feed9163d00dca06f4d2042cc438f6dbf9cea
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: papluca <huggingface.co/papluca>Newsgroups: alt.freeweights.visionSubject: xlm-roberta-base-language-detectionDate: 2026-11-15Commit: 9865598Signed: 2DC28CC7B26A283B ✓
Upstream
papluca/xlm-roberta-base-language-detection
Pinned commit
9865598389ca9d95637462f743f683b51d75b87b
Manifest
xlm-roberta-base-language-detection.json · .minisig
Manifest sha256
1c5b71cfaf104d8945e860df66bf3320516cce7fce0f8de8b4d8262f94eb1802
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 02:30 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/papluca/xlm-roberta-base-language-detection.json $ curl -O https://freeweights.allternit.com/manifests/papluca/xlm-roberta-base-language-detection.json.minisig $ minisign -Vm xlm-roberta-base-language-detection.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

Parent

FacebookAI/xlm-roberta-base · this model is a finetune of it

1 model in the catalog name this one as their parent.

Quantizations
1
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download papluca/xlm-roberta-base-language-detection
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. xlm-roberta-base-language-detection.json. Provenance. Takedown history: none.

Variants

1 quantized or adapter build of xlm-roberta-base-language-detection. Each has its own license check and page.

From: dima806 <huggingface.co/dima806>Subject: ai_vs_real_image_detection
From: legekka <huggingface.co/legekka>Subject: AI-Anime-Image-Detector-ViT
From: onnx-community <huggingface.co/onnx-community>Subject: AI-Anime-Image-Detector-ViT-ONNX
From: AICodexLab <huggingface.co/AICodexLab>Subject: answerdotai-ModernBERT-base-ai-detector
From: onnx-community <huggingface.co/onnx-community>Subject: answerdotai-ModernBERT-base-ai-detector-ONNX
From: onnx-community <huggingface.co/onnx-community>Subject: bart-large-cnn-ONNX