ebible_m2o-nllb600m-nde

NLLB-200-distilled-600M fine-tuned to translate Bible verses into nde from 4 related source languages. Part of a series testing whether a pretrained multilingual model can draft Old Testament books for a language it has only seen the New Testament of โ€” the practical "no OT exists yet" scenario. Project: reproduction and extension of Sami Liedes' 2018 closed-text Bible translation experiment.

Training used New Testament verses only (nde target, whole OT withheld); the scores below are on withheld OT material (Ruth, Jonah, Genesis 1) the model never saw in the target language. Target token nde_Latn (scratch init โ€” the token-init comparison in the experiment showed the init method makes no measurable difference at an adequate learning rate).

How to use

from transformers import AutoModelForSeq2SeqLM, AutoTokenizer

model = AutoModelForSeq2SeqLM.from_pretrained("DavidCBaines/ebible_m2o-nllb600m-nde")
tokenizer = AutoTokenizer.from_pretrained("DavidCBaines/ebible_m2o-nllb600m-nde")

tokenizer.src_lang = "sna_Latn"  # any source language's FLORES code
batch = tokenizer(["<a sna verse>"], return_tensors="pt")
out = model.generate(
    **batch,
    forced_bos_token_id=tokenizer.convert_tokens_to_ids("nde_Latn"),
    num_beams=5, max_length=128,
)
print(tokenizer.batch_decode(out, skip_special_tokens=True)[0])

The forced_bos_token_id is also baked into generation_config.json, so omitting it works too.

Evaluation (withheld OT books, never seen in nde)

chrF3, sacreBLEU conventions. The source-copy floor is the chrF3 of the best source language's own text against the nde reference โ€” the score you would get by simply copying the closest relative. The model must beat it for the run to be publishable. Validation (250 NT verses): best chrF3 55.12.

book verses best source chrF3 spBLEU mean chrF3 over sources source-copy floor
RUT 85 sna 53.58 23.97 50.48 20.41
JON 48 sna 53.49 24.36 49.08 18.61
GEN 1: 31 sna 56 21.1 54.93 16.35

Per-source detail:

  • RUT: chrF3 by source โ€” lin 46.92, sna 53.58, swh 50.95
  • JON: chrF3 by source โ€” lin 43.81, sna 53.49, swh 49.95
  • GEN 1:: chrF3 by source โ€” lin 53.23, sna 56.0, swh 55.55

Training data and licensing

Fine-tuned on eBible-corpus translations. The base model (NLLB-200) is CC-BY-NC-4.0, so this model is non-commercial regardless of the data licences below; ShareAlike sources additionally propagate SA. Released under cc-by-nc-sa-4.0.

translation language FLORES code licence
nde nde (target) โ€” by-sa
sna sna sna_Latn by-sa
tsn tsn tsn_Latn by-sa
swhonmm swh swh_Latn by-sa
lin lin lin_Latn by-sa

Reproducibility

  • Experiment: m2o_nde, init scratch, lr 0.0003, max 8000 steps, generation-based early stopping (chrF3 on a fixed 250-verse NT set, patience 3, min-delta 0.2).
  • Git commit: 423a6b234f489c111f6d44f0e45b53d621d8d720
  • Code, configs and the full 15-run comparison: the project repository and the companion results dataset.

Acknowledgement

This series of experiments is inspired by the closed-text Bible translation experiment described by Sami Liedes in his blog. The repo was created with Claude Code using Opus 4.8 and Fable 5 with no code written by hand. There may well be errors present, but I trust Claude to do a better job than I can. Please let me know of any issues.

Downloads last month
21
Safetensors
Model size
0.6B params
Tensor type
BF16
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for DavidCBaines/ebible_m2o-nllb600m-nde

Finetuned
(332)
this model