Create HF Spaces app
Browse files- .gitattributes +1 -0
- .gitignore +1 -1
- app.py +33 -0
- gpt.py +2 -1
.gitattributes
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
checkpoints/model.pt filter=lfs diff=lfs merge=lfs -text
|
.gitignore
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
# Large files
|
2 |
-
checkpoints/
|
3 |
datasets/
|
4 |
|
5 |
# Training Tensorboard runs
|
|
|
1 |
# Large files
|
2 |
+
checkpoints/candidates
|
3 |
datasets/
|
4 |
|
5 |
# Training Tensorboard runs
|
app.py
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import gradio
|
2 |
+
import gpt
|
3 |
+
|
4 |
+
# Intended for HuggingFace Spaces for GPT
|
5 |
+
config = gpt.GPTConfig("gpt_config.json")
|
6 |
+
model = gpt.GPT(
|
7 |
+
vocab_size=config.vocab_size,
|
8 |
+
context_size=config.context_size,
|
9 |
+
embedding_dim=config.embedding_dim
|
10 |
+
)
|
11 |
+
|
12 |
+
# Use GPU if enabled
|
13 |
+
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
14 |
+
model.to(device)
|
15 |
+
|
16 |
+
# Load checkpoint
|
17 |
+
model, _, _ = load_checkpoint(model, None, config.restore_path)
|
18 |
+
|
19 |
+
demo = gr.Interface(
|
20 |
+
fn=lambda *args: generate(model, config, *args),
|
21 |
+
inputs=[
|
22 |
+
gr.Textbox(lines=2, placeholder="Prompt here..."),
|
23 |
+
gr.Number(precision=0, value=256),
|
24 |
+
gr.Number(value=0.8),
|
25 |
+
gr.Slider(maximum=128, value=10),
|
26 |
+
gr.Slider(maximum=1, value=1)
|
27 |
+
],
|
28 |
+
outputs="text",
|
29 |
+
title="Shakespeare-GPT",
|
30 |
+
description="Putting theater kids out of their nonexistent jobs since 2023"
|
31 |
+
)
|
32 |
+
|
33 |
+
demo.launch()
|
gpt.py
CHANGED
@@ -281,7 +281,8 @@ def load_checkpoint(model, optimizer, path):
|
|
281 |
"""
|
282 |
checkpoint = torch.load(path)
|
283 |
model.load_state_dict(checkpoint['model_state_dict'])
|
284 |
-
optimizer
|
|
|
285 |
return (model, optimizer, checkpoint['steps'])
|
286 |
|
287 |
|
|
|
281 |
"""
|
282 |
checkpoint = torch.load(path)
|
283 |
model.load_state_dict(checkpoint['model_state_dict'])
|
284 |
+
if optimizer is not None:
|
285 |
+
optimizer.load_state_dict(checkpoint['optimizer_state_dict'])
|
286 |
return (model, optimizer, checkpoint['steps'])
|
287 |
|
288 |
|