File size: 2,306 Bytes
2f2195a
cdeeed6
f3cd231
2f2195a
f3cd231
 
 
 
 
 
 
c8f741c
f3cd231
 
 
 
 
 
 
4adb140
f3cd231
 
 
 
 
 
e1a6930
4adb140
f3cd231
 
 
 
 
 
4adb140
53d5dd8
f3cd231
 
 
 
 
 
 
53d5dd8
f3cd231
cca1790
f3cd231
 
 
 
 
cca1790
 
 
f3cd231
cca1790
 
f3cd231
 
 
cca1790
 
 
 
f3cd231
 
cca1790
 
 
f3cd231
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import gradio as gr
from src.dataloading import get_leaderboard_models_cached, get_leaderboard_datasets
from src.similarity import compute_similarity

def validate_inputs(selected_model_a, selected_model_b, selected_dataset):
    if not selected_model_a:
        raise gr.Error("Please select Model A!")
    if not selected_model_b:
        raise gr.Error("Please select Model B!")
    if not selected_dataset:
        raise gr.Error("Please select a dataset!")

def display_similarity(model_a, model_b, dataset):
    # Assuming compute_similarity returns a float or a string
    similarity_score = compute_similarity(model_a, model_b, dataset)
    return f"The similarity between {model_a} and {model_b} on {dataset} is: {similarity_score}"

with gr.Blocks(title="LLM Similarity Analyzer") as demo:
    gr.Markdown("## Model Similarity Comparison Tool")
    
    dataset_dropdown = gr.Dropdown(
        choices=get_leaderboard_datasets(),
        label="Select Dataset",
        filterable=True,
        interactive=True,
        info="Leaderboard benchmark datasets"
    )
    
    model_a_dropdown = gr.Dropdown(
        choices=get_leaderboard_models_cached(),
        label="Select Model A",
        filterable=True,
        allow_custom_value=False,
        info="Search and select models"
    )

    model_b_dropdown = gr.Dropdown(
        choices=get_leaderboard_models_cached(),
        label="Select Model B",
        filterable=True,
        allow_custom_value=False,
        info="Search and select models"
    )

    generate_btn = gr.Button("Compute Similarity", variant="primary")
    
    # Textbox to display the similarity result
    similarity_output = gr.Textbox(
        label="Similarity Result",
        interactive=False
    )
    
    generate_btn.click(
        fn=validate_inputs,
        inputs=[model_a_dropdown, model_b_dropdown, dataset_dropdown],
        queue=False
    ).then(
        fn=display_similarity,
        inputs=[model_a_dropdown, model_b_dropdown, dataset_dropdown],
        outputs=similarity_output
    )
    
    clear_btn = gr.Button("Clear Selection")
    clear_btn.click(
        lambda: [None, None, None, ""],
        outputs=[model_a_dropdown, model_b_dropdown, dataset_dropdown, similarity_output]
    )

if __name__ == "__main__":
    demo.launch()