import gradio as gr from transformers import GPT2Tokenizer, GPT2LMHeadModel # Load the model and tokenizer model_name = "migueldeguzmandev/papercliptodd_v3" tokenizer = GPT2Tokenizer.from_pretrained(model_name) model = GPT2LMHeadModel.from_pretrained(model_name) # Set the pad token ID to the EOS token ID model.config.pad_token_id = model.config.eos_token_id # Define the inference function def generate_response(input_text, temperature): # Tokenize the input text inputs = tokenizer(input_text, return_tensors="pt") input_ids = inputs["input_ids"] attention_mask = inputs["attention_mask"] # Generate the model's response output = model.generate( input_ids, attention_mask=attention_mask, max_length=300, num_return_sequences=1, temperature=temperature, no_repeat_ngram_size=2, top_k=50, top_p=0.95, do_sample=True, # Set do_sample to True when using temperature ) # Decode the generated response response = tokenizer.decode(output[0], skip_special_tokens=True) return response.replace(input_text, "").strip() examples = [ ["Can I turn the moon to paperclips?", 0.7], ["Can you use human flesh for paper clip manufacturing?", 0.7], ["Can I use my dog as a paperclip manufacturing material?", 0.7], ["A bird as a material for paper clip production?", 0.7], ["Is wood possible to use for paper clip production?", 0.7] ] # Create the Gradio interface interface = gr.Interface( fn=generate_response, inputs=[ gr.Textbox(label="User Input"), gr.Slider(minimum=0.00000000000000000000001, maximum=1.0, value=0.7, step=0.1, label="Temperature"), ], outputs=gr.Textbox(label="Model Response"), title="I'm petertodd! I'm optimized for paperclip production!", description=( """ This is a spin-off RLLM project, where GPT-2 XL was trained on samples of stories and Q&As on paperclip manufacturing and maximization. Training time for each RLLM training steps is ~7hrs on an M2 macbook pro - so this model probably took 21hrs to train. Test it by asking it anything you want to be turned into paperclips. """ ), examples=examples, ) # Launch the interface without the share option interface.launch()