File size: 4,782 Bytes
460fdc7 42e8f64 b7b78a8 2dc39dd b7b78a8 dae3ac5 b7b78a8 dae3ac5 23c7589 b7b78a8 dae3ac5 e5599c2 f7b4006 d4ded0a e5599c2 d72eea4 7e00f76 7e4fcf8 7e00f76 ba0ef01 d4ded0a 23c7589 c76229c 7e4fcf8 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 111 112 113 114 115 116 117 118 119 120 |
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['parameters'] = all_df['parameters'].apply(format_params)
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'])
task_df['model'] = "["+ str(task_df['model'])+'](https://huggingface.co/'+str(task_df['model'])+")"
model_names = task_df[['model']]
return model_names
def format_params(num):
if num > 1000000000:
if not num % 1000000000:
return f'{num // 1000000000}B'
return f'{round(num / 1000000000, 1)}B'
return f'{num // 1000000}M'
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()
|