richardadam's picture
Upload fine-tuned opus-mt-en-vi model (1 epoch, BLEU 29.29, ChrF++ 49.13)
0a46c43 verified
|
Raw
History Blame Contribute Delete
2.45 kB
metadata
language:
  - en
  - vi
tags:
  - translation
  - opus-mt
  - marian
  - novel
  - literature
license: apache-2.0
datasets:
  - custom-novel-parallel-corpus
metrics:
  - bleu
  - chrf
model-index:
  - name: opus-mt-en-vi-novel-finetuned
    results:
      - task:
          type: translation
          name: EN to VI Novel Translation
        dataset:
          name: Custom novel EN-VI parallel validation set (17,272 samples)
          type: novel-literature
        metrics:
          - type: bleu
            value: 29.29
            name: BLEU
          - type: chrf
            value: 49.13
            name: ChrF++

opus-mt-en-vi-novel-finetuned

Fine-tuned English → Vietnamese translation model optimized for novels, literature, and narrative text.

Fine-tuned from Helsinki-NLP/opus-mt-en-vi (MarianMT) for 1 epoch on ~328K parallel EN-VI novel sentence pairs.

Results Summary

Full Validation Set (17,272 samples)

Model BLEU ChrF++
Fine-tuned 29.29 49.13
Baseline (Helsinki-NLP/opus-mt-en-vi) 3.73 20.87

Improvement over baseline

  • BLEU: 8.2x (3.53 → 29.01 on sanity set)
  • ChrF++: 2.4x (20.50 → 49.07 on sanity set)

Usage

from transformers import AutoModelForSeq2SeqLM, AutoTokenizer

model = AutoModelForSeq2SeqLM.from_pretrained("richardadam/opus-mt-en-vi-novel-finetuned")
tokenizer = AutoTokenizer.from_pretrained("richardadam/opus-mt-en-vi-novel-finetuned")

text = "He looked at the door but did not dare to open it."
inputs = tokenizer(text, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=256, num_beams=4)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
# Hắn nhìn cánh cửa, nhưng không dám mở ra.

Training

  • Base: Helsinki-NLP/opus-mt-en-vi
  • Epochs: 1
  • Batch size: 16
  • GPU: NVIDIA L4 (22.5 GB)
  • Runtime: ~3h15m

Limitations

  • Single-epoch fine-tune — may benefit from more training
  • Novel domain only — may underperform on technical/formal text
  • Baseline model performs very poorly on novels (BLEU 3.53), confirming domain-specific fine-tuning is essential

Citation

@misc{opus-mt-en-vi-novel-finetuned,
  author = {richardadam},
  title = {opus-mt-en-vi-novel-finetuned},
  year = 2026,
  publisher = {Hugging Face},
  howpublished = {huggingface.co/richardadam/opus-mt-en-vi-novel-finetuned},
}