Spaces:
				
			
			
	
			
			
					
		Running
		
	
	
	
			
			
	
	
	
	
		
		
					
		Running
		
	| import gradio as gr | |
| from transformers import AutoModelForCausalLM, AutoTokenizer | |
| import os | |
| import spaces | |
| import torch | |
| TOKEN = os.environ['TOKEN'] | |
| device = "cuda:0" if torch.cuda.is_available() else "cpu" | |
| print(f'[INFO] Using device: {device}') | |
| # Load the pretrained model and tokenizer | |
| MODEL_NAME = "BounharAbdelaziz/Al-Atlas-LLM-0.5B" | |
| tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, token=TOKEN) | |
| model = AutoModelForCausalLM.from_pretrained(MODEL_NAME, token=TOKEN).to(device) | |
| # Fix tokenizer padding | |
| if tokenizer.pad_token is None: | |
| tokenizer.pad_token = tokenizer.eos_token # Set pad token | |
| # Predefined examples | |
| examples = [ | |
| ["الذكاء الاصطناعي هو فرع من علوم الكمبيوتر اللي كيركز" | |
| , 256, 0.7, 0.9, 150, 8, 1.5], | |
| ["المستقبل ديال الذكاء الصناعي فالمغرب" | |
| , 256, 0.7, 0.9, 150, 8, 1.5], | |
| [" المطبخ المغربي" | |
| , 256, 0.7, 0.9, 150, 8, 1.5], | |
| ["الماكلة المغربية كتعتبر من أحسن الماكلات فالعالم" | |
| , 256, 0.7, 0.9, 150, 8, 1.5], | |
| ] | |
| def generate_text(prompt, max_length=256, temperature=0.7, top_p=0.9, top_k=150, num_beams=8, repetition_penalty=1.5): | |
| inputs = tokenizer(prompt, return_tensors="pt").to(model.device) | |
| output = model.generate( | |
| **inputs, | |
| max_length=max_length, | |
| temperature=temperature, | |
| top_p=top_p, | |
| do_sample=True, | |
| repetition_penalty=repetition_penalty, | |
| num_beams=num_beams, | |
| top_k= top_k, | |
| early_stopping = True, | |
| pad_token_id=tokenizer.pad_token_id, # Explicit pad token | |
| eos_token_id=tokenizer.eos_token_id, # Explicit eos token | |
| ) | |
| return tokenizer.decode(output[0], skip_special_tokens=True) | |
| if __name__ == "__main__": | |
| # Create the Gradio interface | |
| with gr.Blocks() as app: | |
| gr.Interface( | |
| fn=generate_text, | |
| inputs=[ | |
| gr.Textbox(label="Prompt: دخل النص بالدارجة"), | |
| gr.Slider(8, 4096, value=256, label="Max Length"), | |
| gr.Slider(0.0, 2, value=0.7, label="Temperature"), | |
| gr.Slider(0.0, 1.0, value=0.9, label="Top-p"), | |
| gr.Slider(1, 10000, value=150, label="Top-k"), | |
| gr.Slider(1, 20, value=8, label="Number of Beams"), | |
| gr.Slider(0.0, 100.0, value=1.5, label="Repetition Penalty"), | |
| ], | |
| outputs=gr.Textbox(label="Generated Text in Moroccan Darija"), | |
| title="Moroccan Darija LLM", | |
| description="Enter a prompt and get AI-generated text using our pretrained LLM on Moroccan Darija.", | |
| examples=examples, | |
| ) | |
| app.launch() | 
