import gradio as gr from transformers import AutoTokenizer, AutoModelForCausalLM import torch MODEL_ID = "SupraLabs/Supra-1.5-50M-Instruct-exp" print(f"Loading model: {MODEL_ID}") tokenizer = AutoTokenizer.from_pretrained(MODEL_ID) model = AutoModelForCausalLM.from_pretrained(MODEL_ID, dtype=torch.float32) model.eval() print("Model loaded.") def generate_text( message, history, max_new_tokens=200, temperature=0.7, top_p=0.9, repetition_penalty=1.2, ): max_new_tokens = int(max_new_tokens or 200) temperature = float(temperature or 0.7) top_p = float(top_p or 0.9) repetition_penalty = float(repetition_penalty or 1.2) prompt = f"User: {message}\nAssistant:" inputs = tokenizer(prompt, return_tensors="pt") input_ids = inputs["input_ids"] with torch.no_grad(): output = model.generate( input_ids, max_new_tokens=max_new_tokens, temperature=temperature if temperature > 0 else 1.0, top_p=top_p, repetition_penalty=repetition_penalty, do_sample=temperature > 0, pad_token_id=tokenizer.eos_token_id, eos_token_id=tokenizer.eos_token_id, ) generated = output[0][input_ids.shape[-1]:] response = tokenizer.decode(generated, skip_special_tokens=True).strip() if "User:" in response: response = response.split("User:")[0].strip() return response with gr.Blocks(title="Supra-1.5-50M Instruct") as demo: gr.Markdown( """ # 🧠 Supra-1.5-50M-Instruct-exp **SupraLabs** · Experimental 50M-parameter instruction-tuned SLM · [Model Card](https://huggingface.co/SupraLabs/Supra-1.5-50M-Instruct-exp) > ⚠️ Experimental model — responses may be limited or inconsistent. """ ) gr.ChatInterface( fn=generate_text, additional_inputs=[ gr.Slider(32, 512, value=200, step=8, label="Max New Tokens"), gr.Slider(0.0, 1.5, value=0.7, step=0.05, label="Temperature"), gr.Slider(0.5, 1.0, value=0.9, step=0.05, label="Top-p"), gr.Slider(1.0, 2.0, value=1.2, step=0.05, label="Repetition Penalty"), ], additional_inputs_accordion=gr.Accordion("⚙️ Generation Settings", open=False), examples=[ ["What is a language model?"], ["Write a short poem about the stars."], ["Explain gravity in simple terms."], ["What is the capital of France?"], ], ) gr.Markdown("---\nBuilt with ❤️ by [SupraLabs](https://huggingface.co/SupraLabs) · Apache 2.0 License") demo.launch(theme=gr.themes.Soft())