Loewolf commited on
Commit
7211673
·
1 Parent(s): 958d235

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -22
app.py CHANGED
@@ -1,5 +1,4 @@
1
  import gradio as gr
2
- import torch
3
  from transformers import pipeline, set_seed
4
 
5
  # Setzen eines Seeds für Reproduzierbarkeit
@@ -9,43 +8,46 @@ set_seed(42)
9
  model = pipeline("text-generation", model="Loewolf/GPT_1")
10
  tokenizer = model.tokenizer
11
 
12
- def generate_text(input_text):
13
- # Konvertieren des Eingabetextes in Token-IDs
14
- input_ids = tokenizer.encode(input_text, return_tensors="pt")
15
 
16
- # Erstellung der Attention-Mask
17
- attention_mask = torch.ones(input_ids.shape, dtype=torch.bool)
18
 
19
  # Einstellung der maximalen Länge
20
- max_length = model.model.config.n_positions if len(input_ids[0]) > model.model.config.n_positions else len(input_ids[0]) + 20
21
 
22
  # Textgenerierung mit spezifischen Parametern
23
- beam_output = model.model.generate(
24
  input_ids,
25
- attention_mask=attention_mask,
26
  max_length=max_length,
27
- min_length=4,
28
- num_beams=5,
 
29
  no_repeat_ngram_size=2,
30
- early_stopping=True,
31
- temperature=0.9,
32
- top_p=0.90,
33
- top_k=50,
34
- length_penalty=2.0,
35
- do_sample=True,
36
- eos_token_id=tokenizer.eos_token_id,
37
  pad_token_id=tokenizer.eos_token_id
38
  )
39
 
40
  # Konvertieren der generierten Token-IDs zurück in Text
41
- return tokenizer.decode(beam_output[0], skip_special_tokens=True)
42
 
43
  # Erstellen der Gradio-Schnittstelle
44
- interface = gr.Interface(fn=generate_text, inputs="text", outputs="text")
 
 
 
 
 
 
 
 
 
 
 
 
45
 
46
  # Starten der Gradio-App
47
  interface.launch()
48
 
49
 
50
-
51
-
 
1
  import gradio as gr
 
2
  from transformers import pipeline, set_seed
3
 
4
  # Setzen eines Seeds für Reproduzierbarkeit
 
8
  model = pipeline("text-generation", model="Loewolf/GPT_1")
9
  tokenizer = model.tokenizer
10
 
11
+ def generate_text(input_text, temperature, top_k, top_p, length, system_prompt):
12
+ # Anpassen des Eingabetextes mit System-Prompt, falls vorhanden
13
+ adjusted_input_text = system_prompt + input_text if system_prompt else input_text
14
 
15
+ # Konvertieren des Eingabetextes in Token-IDs
16
+ input_ids = tokenizer.encode(adjusted_input_text, return_tensors="pt")
17
 
18
  # Einstellung der maximalen Länge
19
+ max_length = length if length else model.model.config.n_positions
20
 
21
  # Textgenerierung mit spezifischen Parametern
22
+ output = model.model.generate(
23
  input_ids,
 
24
  max_length=max_length,
25
+ temperature=temperature,
26
+ top_k=top_k,
27
+ top_p=top_p,
28
  no_repeat_ngram_size=2,
 
 
 
 
 
 
 
29
  pad_token_id=tokenizer.eos_token_id
30
  )
31
 
32
  # Konvertieren der generierten Token-IDs zurück in Text
33
+ return tokenizer.decode(output[0], skip_special_tokens=True)
34
 
35
  # Erstellen der Gradio-Schnittstelle
36
+ interface = gr.Interface(
37
+ fn=generate_text,
38
+ inputs=[
39
+ gr.inputs.Textbox(lines=2, placeholder="Geben Sie Ihren Text hier ein..."),
40
+ gr.inputs.Slider(minimum=0.1, maximum=1.0, step=0.1, default=0.9, label="Temperature"),
41
+ gr.inputs.Slider(minimum=1, maximum=100, step=1, default=50, label="Top K"),
42
+ gr.inputs.Slider(minimum=0.1, maximum=1.0, step=0.1, default=0.9, label="Top P"),
43
+ gr.inputs.Number(default=50, label="Länge"),
44
+ gr.inputs.Textbox(lines=2, placeholder="System-Prompt (optional)")
45
+ ],
46
+ outputs="text",
47
+ layout="vertical"
48
+ )
49
 
50
  # Starten der Gradio-App
51
  interface.launch()
52
 
53