archit11 commited on
Commit
33d6f68
·
verified ·
1 Parent(s): 75e5ced

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +62 -0
app.py ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ import torch.nn as nn
3
+ from transformers import GPT2LMHeadModel, GPT2Tokenizer, GPT2Config
4
+ from rotary_embedding_torch import RotaryEmbedding
5
+ import gradio as gr
6
+ import spaces
7
+ # Define the max length used during training
8
+ max_length = 8192
9
+
10
+ # Load the model and tokenizer from Hugging Face Hub
11
+ model_name = "archit11/gpt2final"
12
+ config = GPT2Config.from_pretrained(model_name)
13
+ model = GPT2LMHeadModel.from_pretrained(model_name)
14
+ tokenizer = GPT2Tokenizer.from_pretrained(model_name)
15
+
16
+ # Add rotary embeddings
17
+ rotary_emb = RotaryEmbedding(
18
+ dim=32,
19
+ interpolate_factor=4.0,
20
+ )
21
+ for layer in model.transformer.h:
22
+ layer.attn.rotary_emb = rotary_emb
23
+
24
+ # Set the model to evaluation mode
25
+ model.eval()
26
+
27
+ # Define the inference function
28
+ @spaces.GPU(duration=120)
29
+ def generate_text(prompt, max_length=100, temperature=0.7, top_p=0.9):
30
+ input_ids = tokenizer.encode(prompt, return_tensors="pt")
31
+
32
+ # Generate text
33
+ with torch.no_grad():
34
+ output = model.generate(
35
+ input_ids,
36
+ max_length=max_length,
37
+ temperature=temperature,
38
+ top_p=top_p,
39
+ num_return_sequences=1,
40
+ do_sample=True,
41
+ pad_token_id=tokenizer.eos_token_id
42
+ )
43
+
44
+ generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
45
+ return generated_text
46
+
47
+ # Create Gradio interface
48
+ iface = gr.Interface(
49
+ fn=generate_text,
50
+ inputs=[
51
+ gr.Textbox(lines=5, label="Prompt"),
52
+ gr.Slider(minimum=10, maximum=1000, value=100, step=10, label="Max Length"),
53
+ gr.Slider(minimum=0.1, maximum=1.0, value=0.7, step=0.1, label="Temperature"),
54
+ gr.Slider(minimum=0.1, maximum=1.0, value=0.9, step=0.1, label="Top-p")
55
+ ],
56
+ outputs=gr.Textbox(lines=10, label="Generated Text"),
57
+ title="Custom GPT-2 Text Generation",
58
+ description="Enter a prompt to generate text using the custom-trained GPT-2 model."
59
+ )
60
+
61
+ # Launch the interface
62
+ iface.launch()