padmanabhbosamia commited on
Commit
3a9c891
·
verified ·
1 Parent(s): 7347c7e

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +67 -0
app.py ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import gradio as gr
3
+ import torch
4
+ from train_get2_8_init import GPT, GPTConfig, generate_text, TrainingConfig
5
+ from huggingface_hub import hf_hub_download
6
+
7
+ def load_trained_model():
8
+ config = TrainingConfig()
9
+ model_config = GPTConfig(
10
+ block_size=config.block_size,
11
+ n_layer=config.n_layer,
12
+ n_head=config.n_head,
13
+ n_embd=config.n_embd,
14
+ dropout=config.dropout
15
+ )
16
+
17
+ model = GPT(model_config)
18
+ model_path = hf_hub_download(
19
+ repo_id="padmanabhbosamia/Custom-Shakespeare",
20
+ filename="best_model.pt",
21
+ token=os.getenv('HF_TOKEN') # Get token from environment variable
22
+ )
23
+ checkpoint = torch.load(model_path, map_location=config.device)
24
+ model.load_state_dict(checkpoint['model_state_dict'])
25
+ model.to(config.device)
26
+ model.eval()
27
+ return model
28
+
29
+ def create_gradio_interface():
30
+ model = load_trained_model()
31
+
32
+ def predict(prompt, max_length, temperature=0.7):
33
+ return generate_text(model, prompt, max_length, temperature)
34
+
35
+ interface = gr.Interface(
36
+ fn=predict,
37
+ inputs=[
38
+ gr.Textbox(
39
+ lines=3,
40
+ label="Enter your prompt",
41
+ placeholder="Start typing here..."
42
+ ),
43
+ gr.Slider(
44
+ minimum=10,
45
+ maximum=500,
46
+ value=100,
47
+ step=10,
48
+ label="Maximum Length"
49
+ ),
50
+ gr.Slider(
51
+ minimum=0.1,
52
+ maximum=1.0,
53
+ value=0.7,
54
+ step=0.1,
55
+ label="Temperature (Higher = more creative)"
56
+ )
57
+ ],
58
+ outputs=gr.Textbox(lines=5, label="Generated Text"),
59
+ title="Custom GPT Text Generator (124M) based on Shakespeare",
60
+ description="A GPT-style language model trained on custom data by Shakespeare with 124M parameters"
61
+ )
62
+ return interface
63
+
64
+ # For Hugging Face Spaces
65
+ if __name__ == "__main__":
66
+ interface = create_gradio_interface()
67
+ interface.launch()