Translation
COMET
English
Turkish
machine-translation
mt-evaluation
quality-estimation
xcomet
turkish
Instructions to use TurCOMET/XCOMET-XL-TR with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- COMET
How to use TurCOMET/XCOMET-XL-TR with COMET:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
| language: | |
| - en | |
| - tr | |
| license: cc-by-nc-sa-4.0 | |
| library_name: comet | |
| pipeline_tag: translation | |
| base_model: Unbabel/XCOMET-XL | |
| tags: | |
| - machine-translation | |
| - mt-evaluation | |
| - quality-estimation | |
| - comet | |
| - xcomet | |
| - turkish | |
| # xCOMET-XL-TR (v2) — English↔Turkish MT evaluation | |
| A fine-tune of Unbabel's **[xCOMET-XL](https://huggingface.co/Unbabel/XCOMET-XL)** | |
| (3.5B params) specialised for **English↔Turkish** machine-translation quality | |
| estimation, with 5 lexical features fused through a small residual bottleneck | |
| (per *BLEU Meets COMET*, Glushkova et al. 2023). | |
| Given a `(source, machine-translation, reference)` triplet it returns a quality | |
| score, roughly in `[0, 1]` — **higher is better**. | |
| - **Weights:** this repo — `xcomet-xl-tr-v2.bf16.ckpt` (BF16, ~7 GB). | |
| - **Code:** *[code repository — anonymized for review]* — you need both this repo and the code repo. | |
| - Anonymized repository URL: https://anonymous.4open.science/r/TurCOMET-8A79/README.md | |
| ## Performance | |
| On a held-out Turkish WMT-DA test split (1,768 rows) it beats baseline xCOMET-XL | |
| on every correlation metric against human DA scores: | |
| | Metric | Baseline xCOMET-XL | This model | | |
| |---|---:|---:| | |
| | Pearson (regression-only) | 0.473 | **0.547** | | |
| | Spearman (regression-only) | 0.531 | **0.562** | | |
| | Kendall (regression-only) | 0.368 | **0.394** | | |
| | Pearson (full predict_step) | 0.479 | **0.515** | | |
| It cleanly ranks hand-crafted PERFECT > GOOD > BAD > TERRIBLE translations (8/8 | |
| groups) in both directions, with PERFECT translations scoring ~0.94–0.98. | |
| ## Quick start | |
| **1. Install** (Python ≥ 3.10, CUDA GPU recommended). The order matters — | |
| `unbabel-comet` over-pins numpy/protobuf, so they are restored afterwards: | |
| ```bash | |
| # clone the (anonymized) code repository, then: | |
| cd xcomet-xl-tr | |
| bash install.sh | |
| # install.sh runs: | |
| # pip install "unbabel-comet==2.2.7" "sentence-transformers>=3.0.0" \ | |
| # "sacrebleu>=2.4.0" "zemberek-python>=0.2.3" "huggingface_hub>=0.23" | |
| # pip install "numpy==2.0.2" "protobuf>=5.29,<6" | |
| ``` | |
| **2. Authenticate** (this model is private): | |
| ```bash | |
| huggingface-cli login # or: export HF_TOKEN=hf_xxx | |
| ``` | |
| **3. Score a triplet:** | |
| ```python | |
| from huggingface_hub import hf_hub_download | |
| from xcomet_tr import load_model, score | |
| ckpt = hf_hub_download("XCOMETTR/XCOMET-XL-TR", "xcomet-xl-tr-v2.bf16.ckpt") | |
| model = load_model(ckpt) # bf16, GPU if available | |
| # (source, machine_translation, reference, direction) — direction: "en-tr" | "tr-en" | |
| triplets = [ | |
| ("Istanbul is the largest city in Turkey.", | |
| "İstanbul, Türkiye'nin en büyük şehridir.", | |
| "İstanbul, Türkiye'nin en büyük şehridir.", "en-tr"), | |
| ("Hava bugün çok güzel.", | |
| "The weather is very nice today.", | |
| "The weather is very nice today.", "tr-en"), | |
| ] | |
| print(score(model, triplets)) # e.g. [0.97, 0.96] | |
| ``` | |
| `python example.py` in the code repo runs exactly this end-to-end. | |
| ## How it works | |
| `XCOMETFeatures` (an `XCOMETMetric` subclass) adds one module — a | |
| `[encoder_dim + 5] → 64 → encoder_dim` bottleneck added **residually** (zero-init, | |
| so it starts identical to xCOMET-XL) to the pooled sentence embedding. The 5 | |
| features are: chrF++(mt,ref), LaBSE cos(src,mt), length-ratio z-score, lemma-TER | |
| (Turkish lemmatised via Zemberek), and a direction flag. Load it via the code | |
| repo's `load_model`, which uses `load_pretrained_weights=False` so the | |
| self-contained checkpoint needs **no** extra base-encoder download. | |
| ## Notes & limitations | |
| - **BF16** — published/loaded in bfloat16 (xCOMET-XL was trained bf16-mixed); | |
| matches fp32 to 2–3 decimals. | |
| - **512-token window** — XLM-R-XL caps at 512 tokens; xCOMET encodes `mt+src`, | |
| `mt+ref`, and `mt+src+ref`, so long documents are truncated. Best used per | |
| sentence / short paragraph; for documents, score sentences and average. | |
| - **Domain** — fine-tuned on news-domain WMT-DA (2017–2018); expect some shift | |
| elsewhere. Turkish word-level supervision is heuristic (no human MQM spans | |
| exist for Turkish). | |
| ## License | |
| **CC-BY-NC-SA 4.0**, inherited from [Unbabel/XCOMET-XL](https://huggingface.co/Unbabel/XCOMET-XL). | |
| Non-commercial use only; derivatives must use the same license. Built on | |
| [Unbabel/COMET](https://github.com/Unbabel/COMET); lexical fusion from Glushkova | |
| et al. 2023; Turkish morphology via Zemberek. | |