s3nh commited on
Commit
a343260
·
1 Parent(s): 9f091b9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +93 -90
app.py CHANGED
@@ -1,92 +1,95 @@
1
- import pathlib
2
  import gradio as gr
3
- import transformers
4
- from transformers import AutoTokenizer
5
- from transformers import ModelForCausalLM
6
- from transformers import GenerationConfig
7
- from typing import List, Dict, Union
8
- from typing import Any, TypeVar
9
-
10
- Pathable = Union[str, pathlib.Path]
11
-
12
- def load_model(name: str) -> Any:
13
- return ModelForCausalLM.from_pretrained(name)
14
-
15
- def load_tokenizer(name: str) -> Any:
16
- return AutoTokenizer.from_pretrained(name)
17
-
18
- def create_generator():
19
- return GenerationConfig(
20
- temperature=1.0,
21
- top_p=0.75,
22
- num_beams=4,
23
- )
24
 
25
- def generate_prompt(instruction, input=None):
26
- if input:
27
- return f"""Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.
28
-
29
- ### Instruction:
30
- {instruction}
31
-
32
- ### Input:
33
- {input}
34
-
35
- ### Response:"""
36
- else:
37
- return f"""Below is an instruction that describes a task. Write a response that appropriately completes the request.
38
-
39
- ### Instruction:
40
- {instruction}
41
-
42
- ### Response:"""
43
-
44
-
45
-
46
-
47
- def evaluate(instruction, input=None):
48
- prompt = generate_prompt(instruction, input)
49
- inputs = tokenizer(prompt, return_tensors="pt")
50
- input_ids = inputs["input_ids"].cuda()
51
- generation_output = model.generate(
52
- input_ids=input_ids,
53
- generation_config=generation_config,
54
- return_dict_in_generate=True,
55
- output_scores=True,
56
- max_new_tokens=256
57
- )
58
- for s in generation_output.sequences:
59
- output = tokenizer.decode(s)
60
- print("Response:", output.split("### Response:")[1].strip())
61
-
62
-
63
- def inference(text):
64
- output = evaluate(instruction = instruction, input = input)
65
- return output
66
-
67
- io = gr.Interface(
68
- inference,
69
- gr.Textbox(
70
- lines = 3, max_lines = 10,
71
- placeholder = "Add question here",
72
- interactive = True,
73
- show_label = False
74
- ),
75
- gr.Textbox(
76
- lines = 3,
77
- max_lines = 25,
78
- placeholder = "add context here",
79
- interactive = True,
80
- show_label = False
81
- ),
82
- outputs =[
83
- gr.Textbox(lines = 2, label = 'Pythia410m output', interactive = False)
84
- ]
85
- ),
86
- title = title,
87
- description = description,
88
- article = article,
89
- examples = examples,
90
- cache_examples = False,
91
- )
92
- io.launch()
 
 
 
 
1
+ # import pathlib
2
  import gradio as gr
3
+ # import transformers
4
+ # from transformers import AutoTokenizer
5
+ # from transformers import ModelForCausalLM
6
+ # from transformers import GenerationConfig
7
+ # from typing import List, Dict, Union
8
+ # from typing import Any, TypeVar
9
+
10
+ # Pathable = Union[str, pathlib.Path]
11
+
12
+ # def load_model(name: str) -> Any:
13
+ # return ModelForCausalLM.from_pretrained(name)
14
+
15
+ # def load_tokenizer(name: str) -> Any:
16
+ # return AutoTokenizer.from_pretrained(name)
17
+
18
+ # def create_generator():
19
+ # return GenerationConfig(
20
+ # temperature=1.0,
21
+ # top_p=0.75,
22
+ # num_beams=4,
23
+ # )
24
 
25
+ # def generate_prompt(instruction, input=None):
26
+ # if input:
27
+ # return f"""Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.
28
+
29
+ # ### Instruction:
30
+ # {instruction}
31
+
32
+ # ### Input:
33
+ # {input}
34
+
35
+ # ### Response:"""
36
+ # else:
37
+ # return f"""Below is an instruction that describes a task. Write a response that appropriately completes the request.
38
+
39
+ # ### Instruction:
40
+ # {instruction}
41
+
42
+ # ### Response:"""
43
+
44
+
45
+
46
+
47
+ # def evaluate(instruction, input=None):
48
+ # prompt = generate_prompt(instruction, input)
49
+ # inputs = tokenizer(prompt, return_tensors="pt")
50
+ # input_ids = inputs["input_ids"].cuda()
51
+ # generation_output = model.generate(
52
+ # input_ids=input_ids,
53
+ # generation_config=generation_config,
54
+ # return_dict_in_generate=True,
55
+ # output_scores=True,
56
+ # max_new_tokens=256
57
+ # )
58
+ # for s in generation_output.sequences:
59
+ # output = tokenizer.decode(s)
60
+ # print("Response:", output.split("### Response:")[1].strip())
61
+
62
+
63
+ # def inference(text):
64
+ # output = evaluate(instruction = instruction, input = input)
65
+ # return output
66
+
67
+ # io = gr.Interface(
68
+ # inference,
69
+ # gr.Textbox(
70
+ # lines = 3, max_lines = 10,
71
+ # placeholder = "Add question here",
72
+ # interactive = True,
73
+ # show_label = False
74
+ # ),
75
+ # gr.Textbox(
76
+ # lines = 3,
77
+ # max_lines = 25,
78
+ # placeholder = "add context here",
79
+ # interactive = True,
80
+ # show_label = False
81
+ # ),
82
+ # outputs =[
83
+ # gr.Textbox(lines = 2, label = 'Pythia410m output', interactive = False)
84
+ # ]
85
+ # ),
86
+ # title = title,
87
+ # description = description,
88
+ # article = article,
89
+ # examples = examples,
90
+ # cache_examples = False,
91
+ # )
92
+ # io.launch()
93
+
94
+
95
+ gr.Interface.load("models/s3nh/pythia-410m-70k-steps-self-instruct-polish").launch()