Spaces:
Sleeping
Sleeping
import gradio as gr | |
import random | |
import torch | |
import pathlib | |
from src.model import GPTModel | |
from src.inference import generate as generate_text | |
from src.utils import vocab_size | |
batch_size = 64 | |
block_size = 256 | |
max_iters = 5000 | |
eval_interval = 500 | |
learning_rate = 3e-4 | |
device = "cuda:1" if torch.cuda.is_available() else "cpu" | |
eval_iters = 200 | |
n_embeds = 384 | |
n_heads = 6 | |
n_layers = 6 | |
dropout = 0.2 | |
def load_model(): | |
model_ckpt = torch.load("checkpoints/model.pth", map_location=device) | |
model = GPTModel( | |
vocab_size, n_embeds, block_size, n_heads, n_layers, dropout, device | |
) | |
model.load_state_dict(model_ckpt.state_dict()) | |
return model | |
model = load_model() | |
def generate(prompt, max_new_tokens): | |
prompt = prompt.strip() | |
out = generate_text(prompt, model, block_size, max_new_tokens, device) | |
return {gpt_output: out} | |
with gr.Blocks() as app: | |
gr.Markdown("## GPT from scratch") | |
gr.Markdown( | |
"""This is an implementation of GPT [Let's build GPT: from scratch, in code, spelled out.](https://www.youtube.com/watch?v=kCc8FmEb1nY&t=2s) by Andrej Karpathy. | |
Please find the source code and training details [here](https://github.com/RaviNaik/ERA-SESSION21). | |
Dataset used to train: [tinyshakespeare](https://raw.githubusercontent.com/karpathy/char-rnn/master/data/tinyshakespeare/input.txt). | |
""" | |
) | |
with gr.Row(): | |
with gr.Column(): | |
prompt_box = gr.Textbox(label="Initial Prompt", interactive=True) | |
max_new_tokens = gr.Slider( | |
minimum=10, | |
maximum=2500, | |
value=100, | |
step=10, | |
label="Select Number of Tokens to be Generated", | |
interactive=True, | |
) | |
submit_btn = gr.Button(value="Generate") | |
with gr.Column(): | |
gpt_output = gr.TextArea( | |
label="Text Generated by GPT", | |
show_label=True, | |
max_lines=100, | |
interactive=False, | |
) | |
submit_btn.click( | |
generate, | |
inputs=[prompt_box, max_new_tokens], | |
outputs=[gpt_output], | |
) | |
app.launch() | |