lm-similarity / app.py
Joschka Strueber
[Add, Ref] pairwise sim, data loading, simple number example demo
f3cd231
raw
history blame
2.31 kB
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()