kawayui commited on
Commit
4e0a5cd
1 Parent(s): 9b66d0c

re-upload app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -17
app.py CHANGED
@@ -37,35 +37,39 @@ def generate(text, max_length, num_beams, p):
37
  GenerationConfig(
38
  max_new_tokens=max_length,
39
  no_repeat_ngram_size=3,
40
- num_beams=1, # beam幅の設定、2以上ではbeam searchになる。
41
- do_sample=False # Samplingの設定
42
  ),
43
  GenerationConfig(
44
  max_new_tokens=max_length,
45
  no_repeat_ngram_size=3,
46
- num_beams=1,
47
- do_sample=True
 
48
  ),
49
  GenerationConfig(
50
  max_new_tokens=max_length,
51
  no_repeat_ngram_size=3,
52
  num_beams=num_beams,
53
- do_sample=False
 
54
  ),
55
  GenerationConfig(
56
  max_new_tokens=max_length,
57
  no_repeat_ngram_size=3,
58
- do_sample=True,
59
- top_p=p # Top-p Samplingのパラメタの設定
 
 
60
  )
61
  ]
62
  generated_texts = []
63
 
64
  inputs = tokenizer(text, add_special_tokens=False, return_tensors="pt")["input_ids"]
65
  for generate_config in generate_config_list:
66
- # テキスト生成
67
- output = model.generate(inputs, generation_config=generate_config)
68
- generated = tokenizer.decode(output[0], skip_special_tokens=True)
 
69
  # 読みやすくさの処理を行なって、リストに追加
70
  generated_texts.append("。\n".join(generated.replace(" ", "").split("。")))
71
 
@@ -172,17 +176,17 @@ with gr.Blocks() as demo:
172
 
173
  with gr.Row(): # 行に分ける。なので、このブロック内にあるコンポーネントは横に並ぶ。
174
  with gr.Column(): # さらに列に分ける。なので、このブロック内にあるコンポーネントは縦に並ぶ。
175
- input_text = gr.Textbox(value="福岡のご飯は美味しい。", label="プロンプト")
176
- max_length = gr.Slider(100, 1000, step=100, value=100, label="生成するテキストの長さ")
177
- num_beams = gr.Slider(1, 10, step=1, value=6, label="beam幅")
178
- p = gr.Slider(0, 1, step=0.01, value=0.92, label="p")
179
- btn1 = gr.Button("4パターンで生成")
180
 
181
  with gr.Column():
182
  out1 = gr.Textbox(label="Greedy")
183
  out2 = gr.Textbox(label="Sampling")
184
- out3 = gr.Textbox(label="Beam Search")
185
- out4 = gr.Textbox(label="Top-p Sampling")
186
 
187
  with gr.Row():
188
  with gr.Column():
 
37
  GenerationConfig(
38
  max_new_tokens=max_length,
39
  no_repeat_ngram_size=3,
40
+ # Greedyの設定(特に何も必要ない)
 
41
  ),
42
  GenerationConfig(
43
  max_new_tokens=max_length,
44
  no_repeat_ngram_size=3,
45
+ do_sample=True,
46
+ top_k=0,
47
+ # Smaplingの設定
48
  ),
49
  GenerationConfig(
50
  max_new_tokens=max_length,
51
  no_repeat_ngram_size=3,
52
  num_beams=num_beams,
53
+ early_stopping=True,
54
+ # Beam Searchの設定
55
  ),
56
  GenerationConfig(
57
  max_new_tokens=max_length,
58
  no_repeat_ngram_size=3,
59
+ do_sampling=True,
60
+ top_p=p,
61
+ top_k=0,
62
+ # Top-p Smaplingの設定
63
  )
64
  ]
65
  generated_texts = []
66
 
67
  inputs = tokenizer(text, add_special_tokens=False, return_tensors="pt")["input_ids"]
68
  for generate_config in generate_config_list:
69
+ output = model.generate(inputs, generation_config=generate_config) # modelを使ってテキスト生成を行います。
70
+
71
+ generated = tokenizer.decode(output[0], skip_special_tokens=True) # tokenizerを使って、outputを単語に変換します。
72
+
73
  # 読みやすくさの処理を行なって、リストに追加
74
  generated_texts.append("。\n".join(generated.replace(" ", "").split("。")))
75
 
 
176
 
177
  with gr.Row(): # 行に分ける。なので、このブロック内にあるコンポーネントは横に並ぶ。
178
  with gr.Column(): # さらに列に分ける。なので、このブロック内にあるコンポーネントは縦に並ぶ。
179
+ input_text = gr.Textbox(label="入力テキスト")
180
+ max_length = gr.Slider(minimum=100, maximum=1000, step=100, value=100, label="最大長")
181
+ num_beams = gr.Slider(minimum=1, maximum=10, step=1, value=6, label="Number of beams")
182
+ p = gr.Slider(minimum=0, maximum=1, step=0.01, value=0.92, label="Top-pの確率の和の閾値")
183
+ btn = gr.Button("Decode")
184
 
185
  with gr.Column():
186
  out1 = gr.Textbox(label="Greedy")
187
  out2 = gr.Textbox(label="Sampling")
188
+ out3 = gr.Textbox(label="Beam")
189
+ out4 = gr.Textbox(label="Top-p")
190
 
191
  with gr.Row():
192
  with gr.Column():