Views
No views yet
1git clone https://github.com/ngamcode96/ml-translation-en-fr.git
2cd ml-translation-en-fr
3pip install -r requirements.txt1import torch
2from tokenizer import CustomTokenizer
3from model import Transformer, TransformerConfig
4import gradio as gr
5
6# Load tokenizers
7path_to_src_tokenizer = "trained_tokenizers/vocab_en.json"
8path_to_tgt_tokenizer = "trained_tokenizers/vocab_fr.json"
9
10src_tokenizer = CustomTokenizer(path_to_vocab=path_to_src_tokenizer)
11tgt_tokenizer = CustomTokenizer(path_to_vocab=path_to_tgt_tokenizer)
12
13# Load model
14config = TransformerConfig(max_seq_length=512)
15model = Transformer(config=config)
16
17path_to_checkpoints = "checkpoints/model.safetensors"
18model.load_weights_from_checkpoints(path_to_checkpoints=path_to_checkpoints)
19model.eval()
20
21# Translation function
22def translate(input_text, skip_special_tokens=True):
23 src_ids = torch.tensor(src_tokenizer.encode(input_text)).unsqueeze(0)
24 output_ids = model.inference(src_ids=src_ids, tgt_start_id=tgt_tokenizer.bos_token_id, tgt_end_id=tgt_tokenizer.eos_token_id, max_seq_length=512)
25 output_tokens = tgt_tokenizer.decode(input=output_ids, skip_special_tokens=skip_special_tokens)
26 return output_tokens
27
28# Gradio app for interactive translation
29with gr.Blocks() as demo:
30 gr.Markdown("## Traduction Anglais → Français")
31
32 with gr.Row():
33 texte_input = gr.Textbox(label="Texte en anglais", lines=4)
34 texte_output = gr.Textbox(label="Texte traduit (Français)", lines=4, interactive=False)
35
36 bouton = gr.Button("Traduire")
37 bouton.click(translate, inputs=texte_input, outputs=texte_output)
38
39demo.launch()