Bertug1911 commited on
Commit
2a0b108
·
verified ·
1 Parent(s): b68820e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -12
app.py CHANGED
@@ -6,7 +6,7 @@ def install_and_import(package):
6
  try:
7
  __import__(package)
8
  except ImportError:
9
- print(f"{package} yüklü değil, kuruluyor...")
10
  subprocess.check_call([sys.executable, "-m", "pip", "install", package])
11
 
12
  install_and_import("gradio")
@@ -17,11 +17,24 @@ import gradio as gr
17
  from transformers import AutoTokenizer, AutoModelForCausalLM
18
  import torch
19
 
20
- model_name = "Bertug1911/BrtGPT-124m-Base"
21
- tokenizer = AutoTokenizer.from_pretrained(model_name)
22
- model = AutoModelForCausalLM.from_pretrained(model_name)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
 
24
- def generate_text(prompt, temperature, top_k, max_new_tokens):
25
  inputs = tokenizer(prompt, return_tensors="pt")
26
 
27
  start_time = time.time()
@@ -36,23 +49,33 @@ def generate_text(prompt, temperature, top_k, max_new_tokens):
36
 
37
  generated_text = tokenizer.decode(output[0], skip_special_tokens=False)
38
  generated_text = generated_text.replace(" ", "").replace("Ġ", " ")
39
- return generated_text
40
 
41
- arayuz = gr.Interface(
 
 
 
 
 
 
 
 
 
42
  fn=generate_text,
43
  inputs=[
44
- gr.Textbox(lines=2, placeholder="Write something here..."),
45
  gr.Slider(minimum=0.01, maximum=1.0, value=0.5, step=0.01, label="Temperature"),
46
  gr.Slider(minimum=1, maximum=50, value=10, step=1, label="Top-K"),
47
- gr.Slider(minimum=1, maximum=150, value=15, step=1, label="Max New Tokens"),
 
48
  ],
49
  outputs=[
50
  "text",
51
- gr.Textbox(label="Performans", interactive=False)
52
  ],
53
  title="BrtGPT-124m-Base",
54
- description="For CREATIVITY, Temperature: 0.4/0.7, Top-k: 10-15; For ACCUARYC: Temperature: 0.1/0.15, Top-k: 1-5"
55
  )
56
 
57
- arayuz.launch()
 
58
 
 
6
  try:
7
  __import__(package)
8
  except ImportError:
9
+ print(f"{package} not installed, installing...")
10
  subprocess.check_call([sys.executable, "-m", "pip", "install", package])
11
 
12
  install_and_import("gradio")
 
17
  from transformers import AutoTokenizer, AutoModelForCausalLM
18
  import torch
19
 
20
+ MODEL_OPTIONS = {
21
+ "BrtGPT-124m-Base": "Bertug1911/BrtGPT-124m-Base",
22
+ }
23
+
24
+ loaded_models = {}
25
+
26
+ def load_model_and_tokenizer(model_key):
27
+ if model_key not in loaded_models:
28
+ print(f"Loading model {model_key}...")
29
+ model_name = MODEL_OPTIONS[model_key]
30
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
31
+ model = AutoModelForCausalLM.from_pretrained(model_name)
32
+ loaded_models[model_key] = (tokenizer, model)
33
+ return loaded_models[model_key]
34
+
35
+ def generate_text(prompt, temperature, top_k, max_new_tokens, model_key):
36
+ tokenizer, model = load_model_and_tokenizer(model_key)
37
 
 
38
  inputs = tokenizer(prompt, return_tensors="pt")
39
 
40
  start_time = time.time()
 
49
 
50
  generated_text = tokenizer.decode(output[0], skip_special_tokens=False)
51
  generated_text = generated_text.replace(" ", "").replace("Ġ", " ")
 
52
 
53
+ tokenized_output = tokenizer.tokenize(generated_text)
54
+ token_count = len(tokenized_output)
55
+
56
+ elapsed = end_time - start_time
57
+ tokens_per_sec = token_count / elapsed if elapsed > 0 else 0
58
+
59
+ details = f"Token count: {token_count} | Tokens per second: {tokens_per_sec:.2f}"
60
+ return generated_text, details
61
+
62
+ interface = gr.Interface(
63
  fn=generate_text,
64
  inputs=[
65
+ gr.Textbox(lines=2, placeholder="Enter your prompt here..."),
66
  gr.Slider(minimum=0.01, maximum=1.0, value=0.5, step=0.01, label="Temperature"),
67
  gr.Slider(minimum=1, maximum=50, value=10, step=1, label="Top-K"),
68
+ gr.Slider(minimum=1, maximum=100, value=15, step=1, label="Max New Tokens"),
69
+ gr.Dropdown(choices=list(MODEL_OPTIONS.keys()), value="BrtGPT-124m-Base (Smartest and Fastest)", label="Select Model"),
70
  ],
71
  outputs=[
72
  "text",
73
+ gr.Textbox(label="Performance", interactive=False)
74
  ],
75
  title="BrtGPT-124m-Base",
76
+ description="Adjust the parameters, select the model, and generate text. (0.7 Temp and Top-k = 10 is good for CREATIVITY, 0.1/0.15 Temp. and Top-k = 1-5 is good for ACCURACY"
77
  )
78
 
79
+ interface.launch()
80
+
81