taufeeque commited on
Commit
cb21dfd
·
1 Parent(s): 29f7aaf

Rename concept code to topic code

Browse files
pages/{Concept_Code.py → Topic_Code_Browser.py} RENAMED
@@ -24,8 +24,8 @@ act_count_ft_tkns = st.session_state["act_count_ft_tkns"]
24
  gcb = st.session_state["gcb"]
25
 
26
 
27
- def get_example_concept_codes(example_id):
28
- """Get concept codes for the given example id."""
29
  token_pos_ids = [(example_id, i) for i in range(seq_len)]
30
  all_codes = []
31
  for cb_name, cb in cb_acts.items():
@@ -55,11 +55,11 @@ def get_example_concept_codes(example_id):
55
 
56
 
57
  def find_next_example(example_id):
58
- """Find the example after `example_id` that has concept codes."""
59
  initial_example_id = example_id
60
  example_id += 1
61
  while example_id != initial_example_id:
62
- all_codes = get_example_concept_codes(example_id)
63
  codes_found = sum([len(code_pr_infos) for _, code_pr_infos in all_codes])
64
  if codes_found > 0:
65
  st.session_state["example_id"] = example_id
@@ -80,7 +80,7 @@ def redirect_to_main_with_code(code, layer, head):
80
  switch_page("Code Browser")
81
 
82
 
83
- def show_examples_for_concept_code(code, layer, head, code_act_ratio=0.3):
84
  """Show examples that the code activates on."""
85
  ex_acts, _ = webapp_utils.get_code_acts(
86
  model_name,
@@ -103,14 +103,16 @@ def show_examples_for_concept_code(code, layer, head, code_act_ratio=0.3):
103
 
104
  is_attn = st.session_state["is_attn"]
105
 
106
- st.markdown("## Concept Code")
107
- concept_code_description = (
108
- "Concept codes are codes that activate a lot on only a particular set of examples that share a concept. "
109
- "Hence such codes can be thought to correspond to more higher-level concepts or features and "
110
- "can activate on most tokens that belong in an example text. This interface provides a way to search for such "
111
- "codes by going through different examples using Example ID."
 
 
112
  )
113
- st.write(concept_code_description)
114
 
115
  ex_col, r_col, trunc_col, sort_col = st.columns([1, 1, 1, 1])
116
  example_id = ex_col.number_input(
@@ -124,7 +126,7 @@ recall_threshold = r_col.slider(
124
  "Recall Threshold",
125
  0.0,
126
  1.0,
127
- 0.3,
128
  key="recall",
129
  help="Recall Threshold is the minimum fraction of tokens in the example that the code must activate on.",
130
  )
@@ -167,7 +169,7 @@ cols[-1].markdown(
167
  help="Number of tokens that the code activates on in the acts dataset.",
168
  )
169
 
170
- all_codes = get_example_concept_codes(example_id)
171
  all_codes = [
172
  (cb_name, code_pr_info)
173
  for cb_name, code_pr_infos in all_codes
@@ -192,7 +194,7 @@ for cb_name, (code, p, r, acts) in all_codes:
192
  cols[-1].write(str(acts))
193
 
194
  if code_button:
195
- show_examples_for_concept_code(
196
  code,
197
  layer,
198
  head,
@@ -200,6 +202,7 @@ for cb_name, (code, p, r, acts) in all_codes:
200
  )
201
  if len(all_codes) == 0:
202
  st.markdown(
203
- f"<div style='text-align:center'>No codes found at recall threshold: {recall_threshold}</div>",
 
204
  unsafe_allow_html=True,
205
  )
 
24
  gcb = st.session_state["gcb"]
25
 
26
 
27
+ def get_example_topic_codes(example_id):
28
+ """Get topic codes for the given example id."""
29
  token_pos_ids = [(example_id, i) for i in range(seq_len)]
30
  all_codes = []
31
  for cb_name, cb in cb_acts.items():
 
55
 
56
 
57
  def find_next_example(example_id):
58
+ """Find the example after `example_id` that has topic codes."""
59
  initial_example_id = example_id
60
  example_id += 1
61
  while example_id != initial_example_id:
62
+ all_codes = get_example_topic_codes(example_id)
63
  codes_found = sum([len(code_pr_infos) for _, code_pr_infos in all_codes])
64
  if codes_found > 0:
65
  st.session_state["example_id"] = example_id
 
80
  switch_page("Code Browser")
81
 
82
 
83
+ def show_examples_for_topic_code(code, layer, head, code_act_ratio=0.3):
84
  """Show examples that the code activates on."""
85
  ex_acts, _ = webapp_utils.get_code_acts(
86
  model_name,
 
103
 
104
  is_attn = st.session_state["is_attn"]
105
 
106
+ st.markdown("## Topic Code")
107
+ topic_code_description = (
108
+ "Topic codes are codes that activate many different times on passages that describe a particular"
109
+ " topic or concept (e.g. “fire”). This interface provides a way to search for such codes by looking"
110
+ " at different examples in the dataset (ExampleID) and finding codes that activate on some fraction"
111
+ " of the tokens in that example (Recall Threshold). Decrease the Recall Threshold to view more possible"
112
+ " topic codes and increase it to see fewer. Click “Find Next Example” to find the next example with at"
113
+ " least one code firing on that example above the Recall Threshold."
114
  )
115
+ st.write(topic_code_description)
116
 
117
  ex_col, r_col, trunc_col, sort_col = st.columns([1, 1, 1, 1])
118
  example_id = ex_col.number_input(
 
126
  "Recall Threshold",
127
  0.0,
128
  1.0,
129
+ 0.2,
130
  key="recall",
131
  help="Recall Threshold is the minimum fraction of tokens in the example that the code must activate on.",
132
  )
 
169
  help="Number of tokens that the code activates on in the acts dataset.",
170
  )
171
 
172
+ all_codes = get_example_topic_codes(example_id)
173
  all_codes = [
174
  (cb_name, code_pr_info)
175
  for cb_name, code_pr_infos in all_codes
 
194
  cols[-1].write(str(acts))
195
 
196
  if code_button:
197
+ show_examples_for_topic_code(
198
  code,
199
  layer,
200
  head,
 
202
  )
203
  if len(all_codes) == 0:
204
  st.markdown(
205
+ f"<div style='text-align:center'>No codes found at recall threshold = {recall_threshold}."
206
+ " Consider decreasing the recall threshold.</div>",
207
  unsafe_allow_html=True,
208
  )