westronai commited on
Commit
1e79dbd
1 Parent(s): 0c8427c

Upload 4 files

Browse files
Files changed (4) hide show
  1. app.py +16 -0
  2. model.py +15 -0
  3. requirements.txt +3 -0
  4. translator.py +38 -0
app.py ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from translator import traduzir_comparar
3
+
4
+ demo = gr.Interface(
5
+ fn=traduzir_comparar,
6
+ inputs=gr.Textbox(label="Texto em Inglês", placeholder="Digite a frase em inglês aqui..."),
7
+ outputs=gr.Textbox(label="Tradução"),
8
+ title="Comparação de Traduções",
9
+ description="""Insira uma frase em inglês para visualizar a tradução gerada pelo modelo original e pelo modelo após passar por fine-tuning com textos de documentações técnicas:\n
10
+ Modelo original: Helsinki-NLP/opus-mt-tc-big-en-pt\n
11
+ Modelo fine-tuned: westronai/translation-en-pt""",
12
+ theme=gr.themes.Monochrome()
13
+ )
14
+
15
+ if __name__ == "__main__":
16
+ demo.launch()
model.py ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from transformers import MarianMTModel, MarianTokenizer
2
+
3
+ def carrega_modelo(nome_modelo: str) -> tuple:
4
+ """
5
+ Carrega um modelo de tradução pré-treinado e seu tokenizer.
6
+
7
+ Args:
8
+ nome_modelo (str): Nome do modelo pré-treinado a ser carregado.
9
+
10
+ Returns:
11
+ tuple: Uma tupla contendo o tokenizer e o modelo de tradução.
12
+ """
13
+ tokenizer = MarianTokenizer.from_pretrained(nome_modelo)
14
+ model = MarianMTModel.from_pretrained(nome_modelo)
15
+ return (tokenizer, model)
requirements.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ gradio==4.44.0
2
+ transformers==4.44.2
3
+ sentencepiece==0.2.0
translator.py ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from model import carrega_modelo
2
+
3
+ tokenizador_original, modelo_original = carrega_modelo('Helsinki-NLP/opus-mt-tc-big-en-pt')
4
+ tokenizador_finetuned, modelo_finetuned = carrega_modelo('westronai/translation-en-pt')
5
+
6
+ def traduz_sentenca(model, tokenizer, texto_ingles: str):
7
+ """
8
+ Traduz uma sentença do inglês para o português usando um modelo de tradução.
9
+
10
+ Args:
11
+ model: O modelo de tradução pré-treinado.
12
+ tokenizer: O tokenizer responsável por preparar o texto.
13
+ texto_ingles (str): A sentença em inglês que será traduzida.
14
+
15
+ Returns:
16
+ dict: Dicionário com a sentença original e sua tradução.
17
+ """
18
+ tokens = tokenizer(texto_ingles, return_tensors="pt", padding=True)
19
+ translated = model.generate(**tokens)
20
+ texto_portugues = tokenizer.decode(translated[0], skip_special_tokens=True)
21
+ return {
22
+ 'texto_ingles': texto_ingles,
23
+ 'texto_portugues': texto_portugues
24
+ }
25
+
26
+ def traduzir_comparar(texto_ingles):
27
+ """
28
+ Compara as traduções geradas pelo modelo original e pelo modelo fine-tuned.
29
+
30
+ Args:
31
+ texto_ingles (str): O texto em inglês a ser traduzido.
32
+
33
+ Returns:
34
+ str: String formatada contendo as traduções de ambos os modelos.
35
+ """
36
+ traducao_original = traduz_sentenca(modelo_original, tokenizador_original, texto_ingles)
37
+ traducao_finetuned = traduz_sentenca(modelo_finetuned, tokenizador_finetuned, texto_ingles)
38
+ return f"Modelo Original: {traducao_original['texto_portugues']}\n\nModelo Fine-Tuned: {traducao_finetuned['texto_portugues']}"