metadata
pipeline_tag: translation
library_name: comet
language:
- multilingual
- af
- am
- ar
- as
- az
- be
- bg
- bn
- br
- bs
- ca
- cs
- cy
- da
- de
- el
- en
- eo
- es
- et
- eu
- fa
- fi
- fr
- fy
- ga
- gd
- gl
- gu
- ha
- he
- hi
- hr
- hu
- hy
- id
- is
- it
- ja
- jv
- ka
- kk
- km
- kn
- ko
- ku
- ky
- la
- lo
- lt
- lv
- mg
- mk
- ml
- mn
- mr
- ms
- my
- ne
- nl
- 'no'
- om
- or
- pa
- pl
- ps
- pt
- ro
- ru
- sa
- sd
- si
- sk
- sl
- so
- sq
- sr
- su
- sv
- sw
- ta
- te
- th
- tl
- tr
- ug
- uk
- ur
- uz
- vi
- xh
- yi
- zh
license: apache-2.0
base_model:
- FacebookAI/xlm-roberta-large
COMET-poly-ic1-wmt25
This model is based on COMET-poly, which is a fork but not compatible with original Unbabel's COMET. To run the model, you need to first install this version of COMET either with:
pip install "git+https://github.com/zouharvi/COMET-poly#egg=comet-poly&subdirectory=comet_poly"
or in editable mode:
git clone https://github.com/zouharvi/COMET-poly.git
cd COMET-poly
pip3 install -e comet_poly
This model scores the translation mt
but takes additional in-context example: source src2
, translation mt2
, and score score2
, which makes it a better quality estimator:
import comet_poly
model = comet_poly.load_from_checkpoint(comet_poly.download_model("zouharvi/COMET-poly-ic1-wmt25"))
data = [
{
"src": "Iceberg lettuce got its name in the 1920s when it was shipped packed in ice to stay fresh.",
"mt": "Eisbergsalat erhielt seinen Namen in den 1920er-Jahren, als er in Eis verpackt verschickt wurde, um frisch zu bleiben.",
"src2": "Lettuce is mostly water, which helps keep it crisp when chilled.",
"mt2": "Kopfsalat besteht größtenteils aus Wasser, was ihm hilft, beim Kühlen knackig zu bleiben.",
"score2": 94.5
},
{
"src": "Goats have rectangular pupils, which give them a wide field of vision—up to 320 degrees!",
"mt": "Kozy mají obdélníkové zornice, což jim umožňuje vidět skoro všude kolem sebe, aniž by musely otáčet hlavou.",
"src2": "Sheep, like goats, also have rectangular pupils for better peripheral vision.",
"mt2": "Вівці, як і кози, також мають прямокутні зіниці для кращого периферичного зору.",
"score2": 96.0
},
{
"src": "This helps them spot predators from almost all directions without moving their heads.",
"mt": "Điều này giúp chúng phát hiện kẻ săn mồi từ gần như mọi hướng mà không cần quay đầu.",
"src2": "Many prey animals have evolved to detect threats with minimal movement.",
"mt2": "Nhiều động vật thịt có tiến hóa để xem mối nguy bằng nhỏ đi lại.",
"score2": 42.3
}
]
print("scores", model.predict(data, batch_size=8, gpus=1).scores)
Outputs:
scores [98.09857940673828, 85.52458953857422, 83.38972473144531]
You can use a readily-available training data to do the on-the-fly retrieval.
Specifically, this model has been trained with retrieval based on src
:
import datasets
import comet_poly.retrieval
data = [
{
"src": "Iceberg lettuce got its name in the 1920s when it was shipped packed in ice to stay fresh.",
"mt": "Eisbergsalat erhielt seinen Namen in den 1920er-Jahren, als er in Eis verpackt verschickt wurde, um frisch zu bleiben.",
},
{
"src": "Goats have rectangular pupils, which give them a wide field of vision—up to 320 degrees!",
"mt": "Kozy mají obdélníkové zornice, což jim umožňuje vidět skoro všude kolem sebe, aniž by musely otáčet hlavou.",
},
{
"src": "This helps them spot predators from almost all directions without moving their heads.",
"mt": "Điều này giúp chúng phát hiện kẻ săn mồi từ gần như mọi hướng mà không cần quay đầu.",
}
]
data_kb = list(datasets.load_dataset("zouharvi/wmt-human-all", split="train"))
data_retrieved = comet_poly.retrieval.retrieve_from_kb(
data=data,
data_kb=data_kb,
k=1, # this model takes one in-context example
prevent_hardmatch=False,
key="src",
)
# add the retrieved data
for line, lines_retrieved in zip(data, data_retrieved):
for i in range(len(lines_retrieved)):
line[f"src{i+2}"] = lines_retrieved[i]["src"]
line[f"mt{i+2}"] = lines_retrieved[i]["mt"]
line[f"score{i+2}"] = lines_retrieved[i]["score"]
print("scores", model.predict(data, batch_size=8, gpus=1).scores)
The training data is WMT up to 2024 (inclusive) with DA/ESA/MQM merged on a single scale. This model is based on the work TODO which can be cited as:
@misc{zuefle2025comet,
title={COMET-poly: Machine Translation Metric Grounded in Other Candidates},
author={Maike Züfle, Vilém Zouhar, Tu Anh Dinh, Felipe Polo, Jan Niehues, Mrinmaya Sachan},
year={2025},
}