steffenc commited on
Commit
4dd30e1
·
unverified ·
2 Parent(s): 08fa697 091bef3

Merge pull request #11 from opentensor/alpha-validators

Browse files
dashboard.py CHANGED
@@ -8,7 +8,7 @@ from opendashboards.assets import io, inspect, metric, plot
8
  # cache individual file loads
9
  # Hotkey churn
10
 
11
- DEFAULT_PROJECT = "openvalidators"
12
  DEFAULT_FILTERS = {"tags": {"$in": [f'1.1.{i}' for i in range(10)]}}
13
  DEFAULT_SELECTED_HOTKEYS = None
14
  DEFAULT_SRC = 'followup'
@@ -23,7 +23,7 @@ st.set_page_config(
23
  'About': """
24
  This dashboard is part of the OpenTensor project. \n
25
  To see runs in wandb, go to: \n
26
- https://wandb.ai/opentensor-dev/openvalidators/table?workspace=default
27
  """
28
  },
29
  layout = "centered"
@@ -82,7 +82,8 @@ with tab1:
82
  st.dataframe(df_long.head(num_rows) if use_long_checkbox else df.head(num_rows),
83
  use_container_width=True)
84
 
85
- step_types = ['all']+['augment','followup','answer']#list(df.name.unique())
 
86
 
87
  ### UID Health ###
88
  # TODO: Live time - time elapsed since moving_averaged_score for selected UID was 0 (lower bound so use >Time)
@@ -93,8 +94,8 @@ with tab2:
93
  st.subheader("UID :violet[Health]")
94
  st.info(f"Showing UID health metrics for **{n_runs} selected runs**")
95
 
96
- uid_src = st.radio('Select event type:', step_types, horizontal=True, key='uid_src')
97
- df_uid = df_long[df_long.name.str.contains(uid_src)] if uid_src != 'all' else df_long
98
 
99
  metric.uids(df_uid, uid_src)
100
  uids = st.multiselect('UID:', sorted(df_uid['uids'].unique()), key='uid')
@@ -154,8 +155,8 @@ with tab3:
154
 
155
  msg_col1, msg_col2 = st.columns(2)
156
  # completion_src = msg_col1.radio('Select one:', ['followup', 'answer'], horizontal=True, key='completion_src')
157
- completion_src = st.radio('Select event type:', step_types, horizontal=True, key='completion_src')
158
- df_comp = df_long[df_long.name.str.contains(completion_src)] if completion_src != 'all' else df_long
159
 
160
  completion_info.info(f"Showing **{completion_src}** completions for **{n_runs} selected runs**")
161
 
@@ -204,7 +205,7 @@ with tab3:
204
  df_comp,
205
  completion_col='completions',
206
  uid_col='uids',
207
- time_col='completion_times',
208
  length_opt=completion_length_radio,
209
  )
210
 
 
8
  # cache individual file loads
9
  # Hotkey churn
10
 
11
+ DEFAULT_PROJECT = "alpha-validators"
12
  DEFAULT_FILTERS = {"tags": {"$in": [f'1.1.{i}' for i in range(10)]}}
13
  DEFAULT_SELECTED_HOTKEYS = None
14
  DEFAULT_SRC = 'followup'
 
23
  'About': """
24
  This dashboard is part of the OpenTensor project. \n
25
  To see runs in wandb, go to: \n
26
+ https://wandb.ai/opentensor-dev/alpha-validators/table?workspace=default
27
  """
28
  },
29
  layout = "centered"
 
82
  st.dataframe(df_long.head(num_rows) if use_long_checkbox else df.head(num_rows),
83
  use_container_width=True)
84
 
85
+ # step_types = ['all']+['augment','followup','answer']#list(df.name.unique())
86
+ step_types = ['all']+list(df.task.unique())
87
 
88
  ### UID Health ###
89
  # TODO: Live time - time elapsed since moving_averaged_score for selected UID was 0 (lower bound so use >Time)
 
94
  st.subheader("UID :violet[Health]")
95
  st.info(f"Showing UID health metrics for **{n_runs} selected runs**")
96
 
97
+ uid_src = st.radio('Select task type:', step_types, horizontal=True, key='uid_src')
98
+ df_uid = df_long[df_long.task.str.contains(uid_src)] if uid_src != 'all' else df_long
99
 
100
  metric.uids(df_uid, uid_src)
101
  uids = st.multiselect('UID:', sorted(df_uid['uids'].unique()), key='uid')
 
155
 
156
  msg_col1, msg_col2 = st.columns(2)
157
  # completion_src = msg_col1.radio('Select one:', ['followup', 'answer'], horizontal=True, key='completion_src')
158
+ completion_src = st.radio('Select task type:', step_types, horizontal=True, key='completion_src')
159
+ df_comp = df_long[df_long.task.str.contains(completion_src)] if completion_src != 'all' else df_long
160
 
161
  completion_info.info(f"Showing **{completion_src}** completions for **{n_runs} selected runs**")
162
 
 
205
  df_comp,
206
  completion_col='completions',
207
  uid_col='uids',
208
+ time_col='timings',
209
  length_opt=completion_length_radio,
210
  )
211
 
opendashboards/assets/inspect.py CHANGED
@@ -4,6 +4,13 @@ import pandas as pd
4
  import opendashboards.utils.utils as utils
5
 
6
  def clean_data(df):
 
 
 
 
 
 
 
7
  return df.dropna(subset=df.filter(regex='completions|rewards').columns, how='any')
8
 
9
  @st.cache_data
 
4
  import opendashboards.utils.utils as utils
5
 
6
  def clean_data(df):
7
+ task_map = {
8
+ 'question-answering': 'QA',
9
+ 'summarization': 'Summarization',
10
+ 'date-based question answering': 'Date QA',
11
+ 'math': 'Math'
12
+ }
13
+ df['task'] = df.task.map(task_map)
14
  return df.dropna(subset=df.filter(regex='completions|rewards').columns, how='any')
15
 
16
  @st.cache_data
opendashboards/assets/io.py CHANGED
@@ -39,7 +39,7 @@ def load_runs(project, filters, min_steps=10):
39
  rules = {'hotkey': re.compile('^[0-9a-z]{48}$',re.IGNORECASE), 'version': re.compile('^\\d\.\\d+\.\\d+$'), 'spec_version': re.compile('\\d{4}$')}
40
  tags = {k: tag for k, rule in rules.items() for tag in run.tags if rule.match(tag)}
41
  # include bool flag for remaining tags
42
- tags.update({k: k in run.tags for k in ('mock','custom_gating_model','nsfw_filter','outsource_scoring','disable_set_weights')})
43
 
44
  runs.append({
45
  'state': run.state,
@@ -61,7 +61,9 @@ def load_runs(project, filters, min_steps=10):
61
 
62
  progress.empty()
63
  msg.empty()
64
- return pd.DataFrame(runs).astype({'state': 'category', 'hotkey': 'category', 'version': 'category', 'spec_version': 'category'})
 
 
65
 
66
 
67
  @st.cache_data
 
39
  rules = {'hotkey': re.compile('^[0-9a-z]{48}$',re.IGNORECASE), 'version': re.compile('^\\d\.\\d+\.\\d+$'), 'spec_version': re.compile('\\d{4}$')}
40
  tags = {k: tag for k, rule in rules.items() for tag in run.tags if rule.match(tag)}
41
  # include bool flag for remaining tags
42
+ tags.update({k: k in run.tags for k in ('mock','disable_set_weights')})
43
 
44
  runs.append({
45
  'state': run.state,
 
61
 
62
  progress.empty()
63
  msg.empty()
64
+ frame = pd.DataFrame(runs)
65
+ mappings = {'state': 'category', 'hotkey': 'category', 'version': 'category', 'spec_version': 'category'}
66
+ return frame.astype({k:v for k,v in mappings.items() if k in frame.columns})
67
 
68
 
69
  @st.cache_data
opendashboards/assets/metric.py CHANGED
@@ -44,8 +44,7 @@ def runs(df_long):
44
  col3.metric('Events', fmt(df_long.groupby(['run_id','_step']).ngroups))
45
  col4.metric('Completions', fmt(df_long.shape[0]))
46
 
47
- name_type = df_long.name.apply(lambda x: x if not x[-1].isdigit() else x[:-1])
48
- aggs = df_long.groupby(name_type).agg({'uids': 'nunique', 'completions': 'nunique'})
49
  print(aggs)
50
  for i,c in enumerate(st.columns(len(aggs))):
51
  name = aggs.index[i].title()
 
44
  col3.metric('Events', fmt(df_long.groupby(['run_id','_step']).ngroups))
45
  col4.metric('Completions', fmt(df_long.shape[0]))
46
 
47
+ aggs = df_long.groupby('task').agg({'uids': 'nunique', 'completions': 'nunique'})
 
48
  print(aggs)
49
  for i,c in enumerate(st.columns(len(aggs))):
50
  name = aggs.index[i].title()
opendashboards/utils/plotting.py CHANGED
@@ -310,7 +310,7 @@ def plot_completion_length_time(
310
  df: pd.DataFrame,
311
  uid_col: str = "uids",
312
  completion_col: str = "completions",
313
- time_col: str = "completion_times",
314
  uids: List[int] = None,
315
  length_opt: str = 'characters',
316
  ) -> go.Figure:
 
310
  df: pd.DataFrame,
311
  uid_col: str = "uids",
312
  completion_col: str = "completions",
313
+ time_col: str = "timings",
314
  uids: List[int] = None,
315
  length_opt: str = 'characters',
316
  ) -> go.Figure: