# Fine-Tuned Darija Summarization Model This is a fine-tuned version of `Llama-3.1` for text summarization in Darija (Moroccan Arabic). The model was trained on a dataset consisting of news articles and corresponding headlines. ## Usage ```python !pip install gradio import gradio as gr from transformers import AutoModelForCausalLM, AutoTokenizer model = AutoModelForCausalLM.from_pretrained("your_username/my-finetuned-darija-model") tokenizer = AutoTokenizer.from_pretrained("your_username/my-finetuned-darija-model") def summarize_text(article_content): """ Fonction pour générer un résumé à partir du texte d'entrée. """ # Preprocessing: remove unwanted characters (e.g., ', '') # Formater le texte d'entrée avec les instructions input_text = f"""Below is an article written in Darija. Write a concise and accurate summary: ### Article: {cleaned_article_content} ### Summary: """ # Tokenisation et génération inputs = tokenizer([input_text], return_tensors="pt", truncation=True).to("cuda") outputs = model.generate(**inputs, max_new_tokens=50) # Décoder le résumé et nettoyer les tags inutiles summary = tokenizer.decode(outputs[0], skip_special_tokens=True) # Nettoyer les tokens supplémentaires ( ou autres) summary = summary.replace('', '').strip() # Ne retourner que la partie du résumé (pas les autres sections) if "### Summary:" in summary: summary = summary.split("### Summary:")[1].strip() return summary # Interface Gradio with gr.Blocks() as demo: gr.Markdown("## Résumé de texte en Darija") gr.Markdown( "Entrez le contenu de l'article en Darija dans la zone ci-dessous. " "Un résumé sera généré et affiché." ) with gr.Row(): input_box = gr.Textbox( label="Contenu de l'article", placeholder="Entrez uniquement le contenu de l'article ici...", lines=10 ) output_box = gr.Textbox( label="Résumé généré", placeholder="Le résumé apparaîtra ici...", lines=5 ) generate_button = gr.Button("Générer le résumé") generate_button.click(summarize_text, inputs=input_box, outputs=output_box) # Lancer l'application demo.launch()