File size: 4,402 Bytes
460fdc7
 
 
42e8f64
 
b7b78a8
2dc39dd
b7b78a8
 
dae3ac5
 
b7b78a8
dae3ac5
b7b78a8
dae3ac5
 
 
 
 
 
e5599c2
f7b4006
d4ded0a
e5599c2
d72eea4
7e00f76
 
ba0ef01
d4ded0a
c76229c
7022131
f7b4006
7022131
7786ff5
7022131
 
 
7786ff5
f7b4006
7022131
f7b4006
2dc39dd
3fe7e68
2dc39dd
3fe7e68
2dc39dd
7022131
f7b4006
2dc39dd
b7b78a8
2dc39dd
b7b78a8
2dc39dd
7022131
f7b4006
d4ded0a
b7b78a8
d4ded0a
b7b78a8
d4ded0a
7022131
f7b4006
2dc39dd
b7b78a8
2dc39dd
b7b78a8
2dc39dd
3fe7e68
 
 
 
 
 
 
 
 
e513088
3fe7e68
e513088
3fe7e68
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7022131
f7b4006
2dc39dd
b7b78a8
2dc39dd
b7b78a8
f7b4006
7022131
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
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)
    params_df= params_df.rename(columns={"Link": "model"})
    all_df = pd.merge(task_df, params_df, on='model')
    all_df['Total GPU Energy (Wh)'] = all_df['total_gpu_energy']*1000
    all_df = all_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)', custom_data=['parameters'], height= 500, width= 800, color = 'energy_star', color_discrete_map={"⭐": 'red', "⭐⭐": "yellow", "⭐⭐⭐": "green"})
    fig.update_traces(
    hovertemplate="<br>".join([
        "Total Energy: %{y}",
        "Parameters: %{customdata[0]}"])
    )
    return fig

def get_model_names(task_data):
    #TODO: add link to results in model card of each model
    task_df= pd.read_csv('data/energy/'+task_data)
    task_df=task_df.drop_duplicates(subset=['model'])
    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("Image Captioning πŸ“"):
            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'))
        with gr.TabItem("Summarization πŸ“ƒ"):
            with gr.Row():
                with gr.Column():
                    plot = gr.Plot(get_plots('summarization.csv'))
                with gr.Column():
                    table = gr.Dataframe(get_model_names('summarization.csv'))

        with gr.TabItem("Automatic Speech Recognition πŸ’¬ "):
            with gr.Row():
                with gr.Column():
                    plot = gr.Plot(get_plots('asr.csv'))
                with gr.Column():
                    table = gr.Dataframe(get_model_names('asr.csv'))

        with gr.TabItem("Object Detection 🚘"):
            with gr.Row():
                with gr.Column():
                    plot = gr.Plot(get_plots('object_detection.csv'))
                with gr.Column():
                    table = gr.Dataframe(get_model_names('object_detection.csv'))

        with gr.TabItem("Sentence Similarity πŸ“š"):
            with gr.Row():
                with gr.Column():
                    plot = gr.Plot(get_plots('sentence_similarity.csv'))
                with gr.Column():
                    table = gr.Dataframe(get_model_names('sentence_similarity.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()