bgamazay commited on
Commit
52acc8a
·
verified ·
1 Parent(s): 329215f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -16
app.py CHANGED
@@ -37,16 +37,9 @@ def make_link(mname):
37
  display_name = parts[1] if len(parts) > 1 else mname
38
  return f'[{display_name}](https://huggingface.co/{mname})'
39
 
40
- def read_csv_drop_extra(task):
41
- """Helper to load CSV and drop the first column if necessary."""
42
- df = pd.read_csv('data/energy/' + task)
43
- # If the expected "total_gpu_energy" column is missing, drop the first column.
44
- if "total_gpu_energy" not in df.columns:
45
- df = df.iloc[:, 1:]
46
- return df
47
-
48
  def get_plots(task):
49
- df = read_csv_drop_extra(task)
 
50
  df['total_gpu_energy'] = pd.to_numeric(df['total_gpu_energy'], errors='coerce')
51
  df['energy_score'] = pd.to_numeric(df['energy_score'], errors='coerce').astype(int)
52
  df['Display Model'] = df['model'].apply(lambda m: m.split('/')[-1])
@@ -55,9 +48,9 @@ def get_plots(task):
55
 
56
  fig = px.scatter(
57
  df,
58
- x="total_gpu_energy", # Use the correct energy column
59
  y="Display Model",
60
- color="energy_score", # Map energy score to the color
61
  custom_data=['model', 'total_gpu_energy', 'energy_score'],
62
  height=500,
63
  width=800,
@@ -80,7 +73,7 @@ def get_plots(task):
80
  def get_all_plots():
81
  all_df = pd.DataFrame()
82
  for task in tasks:
83
- df = read_csv_drop_extra(task)
84
  df['total_gpu_energy'] = pd.to_numeric(df['total_gpu_energy'], errors='coerce')
85
  df['energy_score'] = pd.to_numeric(df['energy_score'], errors='coerce').astype(int)
86
  df['Display Model'] = df['model'].apply(lambda m: m.split('/')[-1])
@@ -121,7 +114,7 @@ def get_model_names(task):
121
  - Score (a star rating based on energy_score)
122
  For text_generation.csv only, also add the "Class" column if present.
123
  """
124
- df = read_csv_drop_extra(task)
125
  df['total_gpu_energy'] = pd.to_numeric(df['total_gpu_energy'], errors='coerce')
126
  df['energy_score'] = pd.to_numeric(df['energy_score'], errors='coerce').astype(int)
127
  df['GPU Energy (Wh)'] = df['total_gpu_energy'].apply(lambda x: f"{x:.4f}")
@@ -134,7 +127,7 @@ def get_model_names(task):
134
  else:
135
  df = df[['Model', 'GPU Energy (Wh)', 'Score']]
136
 
137
- # Sort by the numeric value (not the formatted string)
138
  df = df.sort_values(by='total_gpu_energy')
139
  return df
140
 
@@ -146,7 +139,7 @@ def get_all_model_names():
146
  """
147
  all_df = pd.DataFrame()
148
  for task in tasks:
149
- df = read_csv_drop_extra(task)
150
  df['total_gpu_energy'] = pd.to_numeric(df['total_gpu_energy'], errors='coerce')
151
  df['energy_score'] = pd.to_numeric(df['energy_score'], errors='coerce').astype(int)
152
  df['GPU Energy (Wh)'] = df['total_gpu_energy'].apply(lambda x: f"{x:.4f}")
@@ -184,7 +177,6 @@ Click through the tasks below to see how different models measure up in terms of
184
  with gr.Tabs():
185
  with gr.TabItem("Text Generation 💬"):
186
  with gr.Row():
187
- # Changed scale to an integer (2 vs 1) to avoid warnings.
188
  with gr.Column(scale=2):
189
  plot = gr.Plot(get_plots('text_generation.csv'))
190
  with gr.Column(scale=1):
 
37
  display_name = parts[1] if len(parts) > 1 else mname
38
  return f'[{display_name}](https://huggingface.co/{mname})'
39
 
 
 
 
 
 
 
 
 
40
  def get_plots(task):
41
+ # Read CSV using the first column as index so that only the useful columns remain.
42
+ df = pd.read_csv('data/energy/' + task, index_col=0)
43
  df['total_gpu_energy'] = pd.to_numeric(df['total_gpu_energy'], errors='coerce')
44
  df['energy_score'] = pd.to_numeric(df['energy_score'], errors='coerce').astype(int)
45
  df['Display Model'] = df['model'].apply(lambda m: m.split('/')[-1])
 
48
 
49
  fig = px.scatter(
50
  df,
51
+ x="total_gpu_energy",
52
  y="Display Model",
53
+ color="energy_score",
54
  custom_data=['model', 'total_gpu_energy', 'energy_score'],
55
  height=500,
56
  width=800,
 
73
  def get_all_plots():
74
  all_df = pd.DataFrame()
75
  for task in tasks:
76
+ df = pd.read_csv('data/energy/' + task, index_col=0)
77
  df['total_gpu_energy'] = pd.to_numeric(df['total_gpu_energy'], errors='coerce')
78
  df['energy_score'] = pd.to_numeric(df['energy_score'], errors='coerce').astype(int)
79
  df['Display Model'] = df['model'].apply(lambda m: m.split('/')[-1])
 
114
  - Score (a star rating based on energy_score)
115
  For text_generation.csv only, also add the "Class" column if present.
116
  """
117
+ df = pd.read_csv('data/energy/' + task, index_col=0)
118
  df['total_gpu_energy'] = pd.to_numeric(df['total_gpu_energy'], errors='coerce')
119
  df['energy_score'] = pd.to_numeric(df['energy_score'], errors='coerce').astype(int)
120
  df['GPU Energy (Wh)'] = df['total_gpu_energy'].apply(lambda x: f"{x:.4f}")
 
127
  else:
128
  df = df[['Model', 'GPU Energy (Wh)', 'Score']]
129
 
130
+ # Now sort by the numeric value in total_gpu_energy.
131
  df = df.sort_values(by='total_gpu_energy')
132
  return df
133
 
 
139
  """
140
  all_df = pd.DataFrame()
141
  for task in tasks:
142
+ df = pd.read_csv('data/energy/' + task, index_col=0)
143
  df['total_gpu_energy'] = pd.to_numeric(df['total_gpu_energy'], errors='coerce')
144
  df['energy_score'] = pd.to_numeric(df['energy_score'], errors='coerce').astype(int)
145
  df['GPU Energy (Wh)'] = df['total_gpu_energy'].apply(lambda x: f"{x:.4f}")
 
177
  with gr.Tabs():
178
  with gr.TabItem("Text Generation 💬"):
179
  with gr.Row():
 
180
  with gr.Column(scale=2):
181
  plot = gr.Plot(get_plots('text_generation.csv'))
182
  with gr.Column(scale=1):