aurora

Форк
0
71 строка · 2.6 Кб
1
import gradio as gr
2
from typing import TYPE_CHECKING, Dict
3

4
from llmtuner.webui.common import list_dataset, DEFAULT_DATA_DIR
5
from llmtuner.webui.components.data import create_preview_box
6

7
if TYPE_CHECKING:
8
    from gradio.components import Component
9
    from llmtuner.webui.engine import Engine
10

11

12
def create_eval_tab(engine: "Engine") -> Dict[str, "Component"]:
13
    input_elems = engine.manager.get_base_elems()
14
    elem_dict = dict()
15

16
    with gr.Row():
17
        dataset_dir = gr.Textbox(value=DEFAULT_DATA_DIR, scale=2)
18
        dataset = gr.Dropdown(multiselect=True, scale=4)
19
        preview_elems = create_preview_box(dataset_dir, dataset)
20

21
    dataset_dir.change(list_dataset, [dataset_dir], [dataset], queue=False)
22

23
    input_elems.update({dataset_dir, dataset})
24
    elem_dict.update(dict(dataset_dir=dataset_dir, dataset=dataset, **preview_elems))
25

26
    with gr.Row():
27
        cutoff_len = gr.Slider(value=1024, minimum=4, maximum=8192, step=1)
28
        max_samples = gr.Textbox(value="100000")
29
        batch_size = gr.Slider(value=8, minimum=1, maximum=512, step=1)
30
        predict = gr.Checkbox(value=True)
31

32
    input_elems.update({cutoff_len, max_samples, batch_size, predict})
33
    elem_dict.update(dict(
34
        cutoff_len=cutoff_len, max_samples=max_samples, batch_size=batch_size, predict=predict
35
    ))
36

37
    with gr.Row():
38
        max_new_tokens = gr.Slider(10, 2048, value=128, step=1)
39
        top_p = gr.Slider(0.01, 1, value=0.7, step=0.01)
40
        temperature = gr.Slider(0.01, 1.5, value=0.95, step=0.01)
41
        output_dir = gr.Textbox()
42

43
    input_elems.update({max_new_tokens, top_p, temperature, output_dir})
44
    elem_dict.update(dict(
45
        max_new_tokens=max_new_tokens, top_p=top_p, temperature=temperature, output_dir=output_dir
46
    ))
47

48
    with gr.Row():
49
        cmd_preview_btn = gr.Button()
50
        start_btn = gr.Button()
51
        stop_btn = gr.Button()
52

53
    with gr.Row():
54
        resume_btn = gr.Checkbox(visible=False, interactive=False, value=False)
55
        process_bar = gr.Slider(visible=False, interactive=False)
56

57
    with gr.Box():
58
        output_box = gr.Markdown()
59

60
    output_elems = [output_box, process_bar]
61
    elem_dict.update(dict(
62
        cmd_preview_btn=cmd_preview_btn, start_btn=start_btn, stop_btn=stop_btn,
63
        resume_btn=resume_btn, process_bar=process_bar, output_box=output_box
64
    ))
65

66
    cmd_preview_btn.click(engine.runner.preview_eval, input_elems, output_elems)
67
    start_btn.click(engine.runner.run_eval, input_elems, output_elems)
68
    stop_btn.click(engine.runner.set_abort, queue=False)
69
    resume_btn.change(engine.runner.monitor, outputs=output_elems)
70

71
    return elem_dict
72

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.