Sebastian Gehrmann
Add formatting lookup for prompts
9999db9
import streamlit as st
from .streamlit_utils import make_text_input
from .streamlit_utils import (
make_multiselect,
make_text_area,
make_radio,
)
N_FIELDS_RATIONALE = 5
N_FIELDS_CURATION = 6
N_FIELDS_STARTING = 2
N_FIELDS = N_FIELDS_RATIONALE + N_FIELDS_CURATION + N_FIELDS_STARTING
def gem_page():
st.session_state.card_dict["gem"] = st.session_state.card_dict.get("gem", {})
with st.expander("Rationale", expanded=False):
key_pref = ["gem", "rationale"]
st.session_state.card_dict["gem"]["rationale"] = st.session_state.card_dict[
"gem"
].get("rationale", {})
make_text_area(
label="What does this dataset contribute toward better generation evaluation and why is it part of GEM?",
key_list=key_pref + ["contribution"],
help="Describe briefly what makes this dataset an interesting target for NLG evaluations and why it is part of GEM",
)
make_radio(
label="Do other datasets for the high level task exist?",
options=["no", "yes"],
key_list=key_pref + ["sole-task-dataset"],
help="for example, is this the only summarization dataset proposed in GEM",
)
if "yes" in st.session_state.card_dict["gem"]["rationale"].get("sole-task-dataset", []):
make_radio(
label="Does this dataset cover other languages than other datasets for the same task?",
options=["no", "yes"],
key_list=key_pref + ["sole-language-task-dataset"],
help="for example, is this the only summarization dataset proposed in GEM to have French text?",
)
make_text_area(
label="What else sets this dataset apart from other similar datasets in GEM?",
key_list=key_pref + ["distinction-description"],
help="Describe briefly for each similar dataset (same task/languages) what sets this one apart",
)
else:
st.session_state.card_dict["gem"]["rationale"]["sole-language-task-dataset"] = "N/A"
st.session_state.card_dict["gem"]["rationale"]["distinction-description"] = "N/A"
make_text_area(
label="What aspect of model ability can be measured with this dataset?",
key_list=key_pref + ["model-ability"],
help="What kind of abilities should a model exhibit that performs well on the task of this dataset (e.g., reasoning capability, morphological inflection)?",
)
with st.expander("GEM Additional Curation", expanded=False):
key_pref = ["gem", "curation"]
st.session_state.card_dict["gem"]["curation"] = st.session_state.card_dict[
"gem"
].get("curation", {})
make_radio(
label="Has the GEM version of the dataset been modified in any way (data, processing, splits) from the original curated data?",
options=["no", "yes"],
key_list=key_pref+["has-additional-curation"],
)
if st.session_state.card_dict["gem"]["curation"]["has-additional-curation"] == "yes":
make_multiselect(
label="What changes have been made to he original dataset?",
options=["data points added", "data points removed", "data points modified", "annotations added", "other"],
key_list=key_pref+["modification-types"],
)
make_text_area(
label="For each of these changes, described them in more details and provided the intended purpose of the modification",
key_list=key_pref+["modification-description"],
)
make_radio(
label="Does GEM provide additional splits to the dataset?",
options=["no", "yes"],
key_list=key_pref+["has-additional-splits"],
)
if st.session_state.card_dict["gem"]["curation"]["has-additional-splits"] == "yes":
make_text_area(
label="Describe how the new splits were created",
key_list=key_pref+["additional-splits-description"],
)
make_text_area(
label="What aspects of the model's generation capacities were the splits created to test?",
key_list=key_pref+["additional-splits-capacicites"],
)
else:
st.session_state.card_dict["gem"]["curation"]["additional-splits-description"] = "N/A"
st.session_state.card_dict["gem"]["curation"]["additional-splits-capacicites"] = "N/A"
else:
st.session_state.card_dict["gem"]["curation"]["modification-types"] = []
st.session_state.card_dict["gem"]["curation"]["modification-description"] = "N/A"
st.session_state.card_dict["gem"]["curation"]["has-additional-splits"] = "no"
st.session_state.card_dict["gem"]["curation"]["additional-splits-description"] = "N/A"
st.session_state.card_dict["gem"]["curation"]["additional-splits-capacicites"] = "N/A"
with st.expander("Getting Started", expanded=False):
key_pref = ["gem", "starting"]
st.session_state.card_dict["gem"]["starting"] = st.session_state.card_dict[
"gem"
].get("starting", {})
make_text_area(
label="Getting started with in-depth research on the task. Add relevant pointers to resources that researchers can consult when they want to get started digging deeper into the task.",
key_list=key_pref + ["research-pointers"],
help=" These can include blog posts, research papers, literature surveys, etc. You can also link to tutorials on the GEM website.",
)
make_text_area(
label="Technical terms used in this card and the dataset and their definitions",
key_list=key_pref + ["technical-terms"],
help="Provide a brief definition of technical terms that are unique to this dataset",
)
def gem_summary():
total_filled = sum(
[len(dct) for dct in st.session_state.card_dict.get("gem", {}).values()]
)
with st.expander(
f"Dataset in GEM Completion - {total_filled} of {N_FIELDS}", expanded=False
):
completion_markdown = ""
completion_markdown += (
f"- **Overall completion:**\n - {total_filled} of {N_FIELDS} fields\n"
)
completion_markdown += f"- **Sub-section - Rationale:**\n - {len(st.session_state.card_dict.get('gem', {}).get('rationale', {}))} of {N_FIELDS_RATIONALE} fields\n"
completion_markdown += f"- **Sub-section - GEM Additional Curation:**\n - {len(st.session_state.card_dict.get('gem', {}).get('curation', {}))} of {N_FIELDS_CURATION} fields\n"
completion_markdown += f"- **Sub-section - Getting Started:**\n - {len(st.session_state.card_dict.get('gem', {}).get('starting', {}))} of {N_FIELDS_STARTING} fields\n"
st.markdown(completion_markdown)