import gradio as gr import pandas as pd from huggingface_hub import list_models import plotly.express as px def get_plots(task): #TO DO : hover text with energy efficiency number, parameters task_df= pd.read_csv('data/energy/'+task) params_df = pd.read_csv('data/params/'+task) all_df = pd.merge(task_df, params_df, on='Link') print(all_df.head()) all_df['Total GPU Energy (Wh)'] = all_df['total_gpu_energy']*1000 all_df = task_df.sort_values(by=['Total GPU Energy (Wh)']) all_df['energy_star'] = pd.cut(all_df['Total GPU Energy (Wh)'], 3, labels=["⭐⭐⭐", "⭐⭐", "⭐"]) fig = px.scatter(all_df, x="model", y='Total GPU Energy (Wh)', height= 500, width= 800, color = 'energy_star', color_discrete_map={"⭐": 'red', "⭐⭐": "yellow", "⭐⭐⭐": "green"}) #fig.update_traces(mode="markers+lines", hovertemplate=None) fig.update_layout(hovermode="y") return fig def get_model_names(task_data): #TODO: add link to results in model card of each model task_df= pd.read_csv(task_data) model_names = task_df[['model']] return model_names demo = gr.Blocks() with demo: gr.Markdown( """# Energy Star Leaderboard TODO """ ) with gr.Tabs(): with gr.TabItem("Text Generation 💬"): with gr.Row(): with gr.Column(): #plot = gr.Plot(get_plots('text_generation.csv')) with gr.Column(): table = gr.Dataframe(get_model_names('text_generation.csv')) with gr.TabItem("Image Generation 📷"): with gr.Row(): with gr.Column(): plot = gr.Plot(get_plots('image_generation.csv')) with gr.Column(): table = gr.Dataframe(get_model_names('image_generation.csv')) with gr.TabItem("Text Classification 🎭"): with gr.Row(): with gr.Column(): plot = gr.Plot(get_plots('text_classification.csv')) with gr.Column(): table = gr.Dataframe(get_model_names('text_classification.csv')) with gr.TabItem("Image Classification 🖼️"): with gr.Row(): with gr.Column(): plot = gr.Plot(get_plots('image_classification.csv')) with gr.Column(): table = gr.Dataframe(get_model_names('image_classification.csv')) with gr.TabItem("Extractive QA ❔"): with gr.Row(): with gr.Column(): plot = gr.Plot(get_plots('question_answering.csv')) with gr.Column(): table = gr.Dataframe(get_model_names('question_answering.csv')) demo.launch()