Spaces:
Running
Running
Remove length penalty, num return sequence fields
Browse files
app.py
CHANGED
@@ -273,7 +273,7 @@ class BeamNode:
|
|
273 |
is_selected_sequence: bool
|
274 |
|
275 |
|
276 |
-
def generate_beams(n_beams, start_sentence, scores, length_penalty, decoded_sequences):
|
277 |
original_tree = BeamNode(
|
278 |
cumulative_score=0,
|
279 |
current_token_ix=None,
|
@@ -421,7 +421,7 @@ def generate_beams(n_beams, start_sentence, scores, length_penalty, decoded_sequ
|
|
421 |
|
422 |
@spaces.GPU
|
423 |
def get_beam_search_html(
|
424 |
-
input_text, number_steps, number_beams
|
425 |
):
|
426 |
inputs = tokenizer([input_text], return_tensors="pt")
|
427 |
|
@@ -429,9 +429,7 @@ def get_beam_search_html(
|
|
429 |
**inputs,
|
430 |
max_new_tokens=number_steps,
|
431 |
num_beams=number_beams,
|
432 |
-
num_return_sequences=min(num_return_sequences, number_beams),
|
433 |
return_dict_in_generate=True,
|
434 |
-
length_penalty=length_penalty,
|
435 |
output_scores=True,
|
436 |
do_sample=False,
|
437 |
)
|
@@ -443,16 +441,12 @@ def get_beam_search_html(
|
|
443 |
number_beams,
|
444 |
input_text,
|
445 |
outputs.scores[:],
|
446 |
-
length_penalty,
|
447 |
-
decoded_sequences,
|
448 |
)
|
449 |
else:
|
450 |
original_tree = generate_beams(
|
451 |
number_beams,
|
452 |
input_text,
|
453 |
outputs.scores,
|
454 |
-
0,
|
455 |
-
decoded_sequences,
|
456 |
)
|
457 |
|
458 |
html = generate_html(input_text, original_tree)
|
@@ -499,22 +493,16 @@ This parameter will not impact the beam search paths, but only influence the cho
|
|
499 |
n_beams = gr.Slider(
|
500 |
label="Number of beams", minimum=1, maximum=4, step=1, value=4
|
501 |
)
|
502 |
-
length_penalty = gr.Slider(
|
503 |
-
label="Length penalty", minimum=-3, maximum=3, step=0.5, value=1
|
504 |
-
)
|
505 |
-
num_return_sequences = gr.Slider(
|
506 |
-
label="Number of return sequences", minimum=1, maximum=4, step=1, value=3
|
507 |
-
)
|
508 |
|
509 |
n_beams.change(
|
510 |
-
fn=change_num_return_sequences, inputs=n_beams, outputs=
|
511 |
)
|
512 |
button = gr.Button()
|
513 |
out_html = gr.Markdown()
|
514 |
out_markdown = gr.Markdown()
|
515 |
button.click(
|
516 |
get_beam_search_html,
|
517 |
-
inputs=[text, n_steps, n_beams
|
518 |
outputs=[out_html, out_markdown],
|
519 |
)
|
520 |
|
|
|
273 |
is_selected_sequence: bool
|
274 |
|
275 |
|
276 |
+
def generate_beams(n_beams, start_sentence, scores, length_penalty=1, decoded_sequences=1):
|
277 |
original_tree = BeamNode(
|
278 |
cumulative_score=0,
|
279 |
current_token_ix=None,
|
|
|
421 |
|
422 |
@spaces.GPU
|
423 |
def get_beam_search_html(
|
424 |
+
input_text, number_steps, number_beams
|
425 |
):
|
426 |
inputs = tokenizer([input_text], return_tensors="pt")
|
427 |
|
|
|
429 |
**inputs,
|
430 |
max_new_tokens=number_steps,
|
431 |
num_beams=number_beams,
|
|
|
432 |
return_dict_in_generate=True,
|
|
|
433 |
output_scores=True,
|
434 |
do_sample=False,
|
435 |
)
|
|
|
441 |
number_beams,
|
442 |
input_text,
|
443 |
outputs.scores[:],
|
|
|
|
|
444 |
)
|
445 |
else:
|
446 |
original_tree = generate_beams(
|
447 |
number_beams,
|
448 |
input_text,
|
449 |
outputs.scores,
|
|
|
|
|
450 |
)
|
451 |
|
452 |
html = generate_html(input_text, original_tree)
|
|
|
493 |
n_beams = gr.Slider(
|
494 |
label="Number of beams", minimum=1, maximum=4, step=1, value=4
|
495 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
496 |
|
497 |
n_beams.change(
|
498 |
+
fn=change_num_return_sequences, inputs=n_beams, outputs=1
|
499 |
)
|
500 |
button = gr.Button()
|
501 |
out_html = gr.Markdown()
|
502 |
out_markdown = gr.Markdown()
|
503 |
button.click(
|
504 |
get_beam_search_html,
|
505 |
+
inputs=[text, n_steps, n_beams],
|
506 |
outputs=[out_html, out_markdown],
|
507 |
)
|
508 |
|