anzorq commited on
Commit
bcc6133
·
1 Parent(s): 22493d5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +45 -16
app.py CHANGED
@@ -79,29 +79,58 @@ import gradio as gr
79
  # translations = [tokenizer.decode(translation, skip_special_tokens=True) for translation in translated_tokens]
80
  # return text, translations
81
 
82
- ############### ONNX MODEL INFERENCE ###############
83
- from transformers import AutoTokenizer, pipeline
84
- from optimum.onnxruntime import ORTModelForSeq2SeqLM
85
 
86
- model_id = "anzorq/m2m100_418M_ft_ru-kbd_44K"
87
 
88
- model = ORTModelForSeq2SeqLM.from_pretrained(model_id, subfolder="onnx", file_name="encoder_model_optimized.onnx")
89
- tokenizer = AutoTokenizer.from_pretrained(model_id)
90
 
91
- def translate(text, num_beams=4, num_return_sequences=4):
92
- inputs = tokenizer(text, return_tensors="pt")
 
 
 
 
 
 
 
 
 
 
 
 
93
 
94
- num_return_sequences = min(num_return_sequences, num_beams)
95
 
96
- translated_tokens = model.generate(
97
- **inputs, forced_bos_token_id=tokenizer.lang_code_to_id["zu"], num_beams=num_beams, num_return_sequences=num_return_sequences
98
- )
99
 
100
- translations = []
101
- for translation in tokenizer.batch_decode(translated_tokens, skip_special_tokens=True):
102
- translations.append(translation)
 
103
 
104
- return text, translations
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
105
 
106
  output = gr.Textbox()
107
  # with gr.Accordion("Advanced Options"):
 
79
  # translations = [tokenizer.decode(translation, skip_special_tokens=True) for translation in translated_tokens]
80
  # return text, translations
81
 
82
+ # ############### ONNX MODEL INFERENCE ###############
83
+ # from transformers import AutoTokenizer, pipeline
84
+ # from optimum.onnxruntime import ORTModelForSeq2SeqLM
85
 
86
+ # model_id = "anzorq/m2m100_418M_ft_ru-kbd_44K"
87
 
88
+ # model = ORTModelForSeq2SeqLM.from_pretrained(model_id, subfolder="onnx", file_name="encoder_model_optimized.onnx")
89
+ # tokenizer = AutoTokenizer.from_pretrained(model_id)
90
 
91
+ # def translate(text, num_beams=4, num_return_sequences=4):
92
+ # inputs = tokenizer(text, return_tensors="pt")
93
+
94
+ # num_return_sequences = min(num_return_sequences, num_beams)
95
+
96
+ # translated_tokens = model.generate(
97
+ # **inputs, forced_bos_token_id=tokenizer.lang_code_to_id["zu"], num_beams=num_beams, num_return_sequences=num_return_sequences
98
+ # )
99
+
100
+ # translations = []
101
+ # for translation in tokenizer.batch_decode(translated_tokens, skip_special_tokens=True):
102
+ # translations.append(translation)
103
+
104
+ # return text, translations
105
 
 
106
 
107
+ ############### CTRANSLATE2 INFERENCE ###############
108
+ import ctranslate2
109
+ import transformers
110
 
111
+ translator = ctranslate2.Translator("ctranslate")
112
+ tokenizer = transformers.AutoTokenizer.from_pretrained("anzorq/m2m100_418M_ft_ru-kbd_44K")
113
+
114
+ def translate(text, num_beams=4, num_return_sequences=4):
115
 
116
+ num_return_sequences = min(num_return_sequences, num_beams)
117
+
118
+ source = tokenizer.convert_ids_to_tokens(tokenizer.encode(text))
119
+ target_prefix = [tokenizer.lang_code_to_token["zu"]]
120
+ results = translator.translate_batch(
121
+ [source],
122
+ target_prefix=[target_prefix],
123
+ beam_size=num_beams,
124
+ num_hypotheses=num_return_sequences
125
+ )
126
+
127
+ translations = []
128
+ for hypothesis in results[0].hypotheses:
129
+ target = hypothesis[1:]
130
+ decoded_sentence = tokenizer.decode(tokenizer.convert_tokens_to_ids(target))
131
+ translations.append(decoded_sentence)
132
+
133
+ return text, translations
134
 
135
  output = gr.Textbox()
136
  # with gr.Accordion("Advanced Options"):