dyu-fr-joeynmt / README.md
ruanmelio's picture
Upload README.md with huggingface_hub
a8a8e44 verified
---
language:
- en
- fr
- multilingual
tags:
- translation
- pytorch
model-index:
- name: MelioAI/dyu-fr-joeynmt
results: []
---
# MelioAI/dyu-fr-joeynmt
An example of a machine translation model that translates Dyula to French using the [JoeyNMT framework](https://github.com/joeynmt/joeynmt).
This following example is based on [this Github repo](https://github.com/data354/koumakanMT-challenge) that was kindly created by [data354](https://data354.com/en/).
## Model description
More information needed
## Intended uses & limitations
More information needed
## Training and evaluation data
More information needed
## Usage
### Load and use for inference
```python
import torch
from joeynmt.config import load_config, parse_global_args
from joeynmt.prediction import predict, prepare
from huggingface_hub import snapshot_download
# Download model
snapshot_download(
repo_id="MelioAI/dyu-fr-joeynmt",
local_dir="/path/to/save/locally"
)
# Define model interface
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))
# build model
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
# Load model
config_path = "/path/to/lean_model/config_local.yaml" # Change this to the path to your model congig file
model = JoeyNMTModel(config_path=config_path, n_best=1)
# Translate
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.2.1