Downloads · 30 days
8
14% of all-time downloads
DavidCBaines/ebible_m2o-nllb600m-nde
ebible_m2o-nllb600m-nde is a translation model from DavidCBaines. Use it when you need text moved from one language to another. It is set up for transformers. The card lists the license as cc-by-nc-sa-4.0.
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 h…
Downloads · 30 days
8
14% of all-time downloads
All-time downloads
57
Public
Parameters
615M
1.3 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors1.2 GB · 97%
From the Hugging Face model README
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).
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.
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:
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 |
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).423a6b234f489c111f6d44f0e45b53d621d8d720This 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.