| import gradio as gr |
| import torch |
| from transformers import AutoTokenizer, GenerationConfig, GPT2Config, GPT2LMHeadModel |
|
|
| |
| tokenizer = AutoTokenizer.from_pretrained("gpt2") |
| tokenizer.pad_token = tokenizer.eos_token |
|
|
| |
| config = GPT2Config.from_pretrained( |
| pretrained_model_name_or_path = "gpt2", |
| vocab_size = len(tokenizer), |
| n_ctx = 256, |
| bos_token_id = tokenizer.bos_token_id, |
| eos_token_id = tokenizer.bos_token_id |
| ) |
| model = GPT2LMHeadModel(config) |
|
|
| def generate_code(prompt): |
| inputs = tokenizer(prompt, return_tensors="pt").to(model.device) |
| |
| with torch.no_grad(): |
| outputs = model.generate( |
| **inputs, |
| pad_token_id=tokenizer.eos_token_id |
| ) |
| |
| return tokenizer.decode(outputs[0], skip_special_tokens=True) |
|
|
| |
| demo = gr.Interface( |
| fn=generate_code, |
| inputs=gr.Textbox(placeholder="Write a function to...", label="Input Prompt"), |
| outputs=gr.Code(label="GPT-2 Generated Code", language="python"), |
| title="Small Code Snippet Generator" |
| ) |
|
|
| if __name__ == "__main__": |
| demo.launch() |