orgoflu commited on
Commit
1d2b77d
ยท
verified ยท
1 Parent(s): bda6fcf

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -14
app.py CHANGED
@@ -1,11 +1,12 @@
1
  import gradio as gr
2
  from transformers import AutoTokenizer, AutoModelForCausalLM, TextGenerationPipeline
3
  import torch
 
4
 
5
  MODEL_NAME = "openbmb/MiniCPM-V-4"
6
 
7
- @gr.cache(allow_output_mutation=True)
8
- def load_model():
9
  tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, trust_remote_code=True)
10
  model = AutoModelForCausalLM.from_pretrained(
11
  MODEL_NAME,
@@ -13,15 +14,14 @@ def load_model():
13
  device_map="auto",
14
  trust_remote_code=True
15
  )
16
- pipeline = TextGenerationPipeline(
17
  model=model,
18
  tokenizer=tokenizer,
19
  device=model.device.index if torch.cuda.is_available() else -1
20
  )
21
- return pipeline
22
 
23
- def generate(prompt: str, max_length: int = 100, top_k: int = 50, top_p: float = 0.95):
24
- pipe = load_model()
25
  output = pipe(
26
  prompt,
27
  max_length=max_length,
@@ -35,14 +35,10 @@ def generate(prompt: str, max_length: int = 100, top_k: int = 50, top_p: float =
35
  with gr.Blocks() as demo:
36
  gr.Markdown("# MiniCPM-V-4 Text Generation Demo")
37
 
38
- with gr.Row():
39
- prompt_input = gr.Textbox(label="Prompt", placeholder="์—ฌ๊ธฐ์— ์ž…๋ ฅํ•˜์„ธ์š”...", lines=2)
40
-
41
- with gr.Row():
42
- max_len = gr.Slider(10, 512, value=100, step=10, label="Max Length")
43
- topk = gr.Slider(1, 100, value=50, step=1, label="Top-k")
44
- topp = gr.Slider(0.1, 1.0, value=0.95, step=0.05, label="Top-p")
45
-
46
  generate_btn = gr.Button("Generate")
47
  output_box = gr.Textbox(label="Generated Text", lines=5)
48
 
 
1
  import gradio as gr
2
  from transformers import AutoTokenizer, AutoModelForCausalLM, TextGenerationPipeline
3
  import torch
4
+ from functools import lru_cache
5
 
6
  MODEL_NAME = "openbmb/MiniCPM-V-4"
7
 
8
+ @lru_cache(maxsize=1)
9
+ def load_pipeline():
10
  tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, trust_remote_code=True)
11
  model = AutoModelForCausalLM.from_pretrained(
12
  MODEL_NAME,
 
14
  device_map="auto",
15
  trust_remote_code=True
16
  )
17
+ return TextGenerationPipeline(
18
  model=model,
19
  tokenizer=tokenizer,
20
  device=model.device.index if torch.cuda.is_available() else -1
21
  )
 
22
 
23
+ def generate(prompt: str, max_length: int, top_k: int, top_p: float):
24
+ pipe = load_pipeline()
25
  output = pipe(
26
  prompt,
27
  max_length=max_length,
 
35
  with gr.Blocks() as demo:
36
  gr.Markdown("# MiniCPM-V-4 Text Generation Demo")
37
 
38
+ prompt_input = gr.Textbox(label="Prompt", lines=2, placeholder="์—ฌ๊ธฐ์— ์ž…๋ ฅํ•˜์„ธ์š”...")
39
+ max_len = gr.Slider(10, 512, value=100, step=10, label="Max Length")
40
+ topk = gr.Slider(1, 100, value=50, step=1, label="Top-k")
41
+ topp = gr.Slider(0.1, 1.0, value=0.95, step=0.05, label="Top-p")
 
 
 
 
42
  generate_btn = gr.Button("Generate")
43
  output_box = gr.Textbox(label="Generated Text", lines=5)
44