Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import torch | |
| from transformers import MarianMTModel, MarianTokenizer | |
| from optimum.intel import IncQuantizer | |
| # Load and optimize the model (quantization) | |
| model_name = "Dddixyy/latin-italian-translator" | |
| # Load the quantized model if available or use a regular model (quantization shown as an example) | |
| try: | |
| # Attempt to load a quantized version if it's available | |
| quantizer = IncQuantizer.from_pretrained(model_name) | |
| model = quantizer.quantize() | |
| print("Quantized model loaded.") | |
| except Exception as e: | |
| print(f"Error loading quantized model: {e}") | |
| model = MarianMTModel.from_pretrained(model_name) | |
| # Load tokenizer | |
| tokenizer = MarianTokenizer.from_pretrained(model_name) | |
| # Translation function | |
| def translate_latin_to_italian(latin_text): | |
| # Truncate input to 512 tokens to avoid overload (adjust as necessary) | |
| inputs = tokenizer(latin_text, return_tensors="pt", padding=True, truncation=True, max_length=512) | |
| with torch.no_grad(): | |
| generated_ids = model.generate(inputs["input_ids"]) | |
| # Decode the generated ids into a readable translation | |
| translation = tokenizer.batch_decode(generated_ids, skip_special_tokens=True) | |
| return translation[0] | |
| # Define the Gradio interface | |
| interface = gr.Interface( | |
| fn=translate_latin_to_italian, | |
| inputs="text", | |
| outputs="text", | |
| title="Latin to Italian Translator", | |
| description="Translate Latin sentences to Italian using a fine-tuned MarianMT model.", | |
| examples=[["Amor vincit omnia."], ["Veni, vidi, vici."], ["Carpe diem."], ["Alea iacta est."]] | |
| ) | |
| # Launch the app | |
| if __name__ == "__main__": | |
| interface.launch(server_name="0.0.0.0", server_port=7860) | |