koleshjr/dyu-fr-joeynmt
An example of a machine translation model that translates Dyula to French using the JoeyNMT framework.
This following example is based on this Github repo that was kindly created by data354.
Model description
More information needed
Intended uses & limitations
More information needed
Training and evaluation data
More information needed
Usage
Load and use for inference
import torch
from joeynmt.config import load_config, parse_global_args
from joeynmt.prediction import predict, prepare
from huggingface_hub import snapshot_download
snapshot_download(
repo_id="Koleshjr/dyu-fr-joeynmt-316-epochs_2_layers_5heads_128_300_plateau_2000_7_45_20_93",
local_dir="/path/to/save/locally"
)
class JoeyNMTModel:
'''
JoeyNMTModel which load JoeyNMT model for inference.
:param config_path: Path to YAML config file
:param n_best: return this many hypotheses, <= beam (currently only 1)
'''
def __init__(self, config_path: str, n_best: int = 1):
seed = 42
torch.manual_seed(seed)
cfg = load_config(config_path)
args = parse_global_args(cfg, rank=0, mode="translate")
self.args = args._replace(test=args.test._replace(n_best=n_best))
self.model, _, _, self.test_data = prepare(self.args, rank=0, mode="translate")
def _translate_data(self):
_, _, hypotheses, trg_tokens, trg_scores, _ = predict(
model=self.model,
data=self.test_data,
compute_loss=False,
device=self.args.device,
rank=0,
n_gpu=self.args.n_gpu,
normalization="none",
num_workers=self.args.num_workers,
args=self.args.test,
autocast=self.args.autocast,
)
return hypotheses, trg_tokens, trg_scores
def translate(self, sentence) -> list:
'''
Translate the given sentence.
:param sentence: Sentence to be translated
:return:
- translations: (list of str) possible translations of the sentence.
'''
self.test_data.set_item(sentence.strip())
translations, _, _ = self._translate_data()
assert len(translations) == len(self.test_data) * self.args.test.n_best
self.test_data.reset_cache()
return translations
config_path = "/path/to/lean_model/config_local.yaml"
model = JoeyNMTModel(config_path=config_path, n_best=1)
model.translate(sentence="i tɔgɔ bi cogodɔ")
Training procedure
Training hyperparameters
More information needed
Training results
More information needed
Framework versions
- JoeyNMT 2.3.0
- Torch 2.3.1+cu121