Mitigating Hallucinations and Off-target Machine Translation with Source-Contrastive and Language-Contrastive Decoding

Rico Sennrich, Jannis Vamvas, Alireza Mohammadshahi
9/13/2023
cs.CL

Official code: ZurichNLP/ContraDecode (38 stars, MIT, last commit 2025-08-29).

Abstract

Hallucinations and off-target translation remain unsolved problems in MT, especially for low-resource languages and massively multilingual models. In this paper, we introduce two related methods to mitigate these failure cases with a modified decoding objective, without either requiring retraining or external models. In source-contrastive decoding, we search for a translation that is probable given the correct input, but improbable given a random input segment. In language-contrastive decoding, we search for a translation that is probable, but improbable given the wrong language indicator token. Experiments on the massively multilingual models M2M-100 (418M) and SMaLL-100 show that these methods suppress hallucinations and off-target translations, reducing the number of translations with segment-level chrF2 below 10 by 67-83% on average, and the number of translations with oscillatory hallucinations by 75-92% on average, across 57 tested translation directions. In a proof of concept on out-of-English translation, we also show that we can suppress off-target translations with large language models. We release our source code at https://github.com/ZurichNLP/ContraDecode.

View on arXivView PDF

Code Implementations(1)

MIT

The implementation of "Mitigating Hallucinations and Off-target Machine Translation with Source-Contrastive and Language-Contrastive Decoding"

389PythonSep 8, 20231 years agoMIT

Similar Papers

Cite this paper

@article{sennrich2023mitigating,
  title  = {Mitigating Hallucinations and Off-target Machine Translation with Source-Contrastive and Language-Contrastive Decoding},
  author = {Rico Sennrich and Jannis Vamvas and Alireza Mohammadshahi},
  year   = {2023},
  eprint = {2309.07098},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2309.07098v2}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2309.07098.svg)](https://codeofpaper.com/paper/2309.07098)

Discussion