Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from datasets import load_dataset | |
| import torch | |
| from transformers import AutoTokenizer, T5ForConditionalGeneration # Changed model class | |
| # Check if GPU is available | |
| device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') | |
| print(f"Using device: {device}") | |
| # Load dataset | |
| ds = load_dataset("AI-MO/NuminaMath-CoT") | |
| # Load model and tokenizer | |
| model_name = "google/flan-t5-base" | |
| tokenizer = AutoTokenizer.from_pretrained(model_name) | |
| model = T5ForConditionalGeneration.from_pretrained(model_name).to(device) # Changed model class | |
| def process_example(example): | |
| """Process a single example from the dataset""" | |
| question = example['question'] | |
| solution = example['solution'] | |
| answer = example['answer'] | |
| return f"Question: {question}\nSolution: {solution}\nAnswer: {answer}" | |
| def get_random_example(): | |
| """Get a random example from the dataset""" | |
| import random | |
| idx = random.randint(0, len(ds['train']) - 1) | |
| return process_example(ds['train'][idx]) | |
| def solve_math_problem(question): | |
| """Generate solution for a given math problem""" | |
| # Add prefix for T5 | |
| input_text = "solve math: " + question | |
| inputs = tokenizer(input_text, return_tensors="pt", max_length=512, truncation=True).to(device) | |
| # Generate response | |
| outputs = model.generate( | |
| inputs["input_ids"], | |
| max_length=200, | |
| num_return_sequences=1, | |
| temperature=0.7, | |
| do_sample=True, | |
| top_p=0.9, | |
| ) | |
| response = tokenizer.decode(outputs[0], skip_special_tokens=True) | |
| return response | |
| # Create Gradio interface | |
| with gr.Blocks() as demo: | |
| gr.Markdown("# Math Problem Solver") | |
| gr.Markdown("Using FLAN-T5 model to solve mathematical problems with step-by-step solutions.") | |
| with gr.Row(): | |
| with gr.Column(): | |
| input_text = gr.Textbox( | |
| label="Enter your math problem", | |
| placeholder="Type your math problem here...", | |
| lines=3 | |
| ) | |
| with gr.Row(): | |
| submit_btn = gr.Button("Solve Problem", variant="primary") | |
| example_btn = gr.Button("Show Random Example") | |
| with gr.Column(): | |
| output_text = gr.Textbox( | |
| label="Solution", | |
| lines=8, | |
| show_copy_button=True | |
| ) | |
| # Set up event handlers | |
| submit_btn.click( | |
| fn=solve_math_problem, | |
| inputs=input_text, | |
| outputs=output_text | |
| ) | |
| example_btn.click( | |
| fn=get_random_example, | |
| inputs=None, | |
| outputs=input_text | |
| ) | |
| # Launch the interface | |
| demo.launch(share=True) |