Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| from datasets import load_dataset | |
| st.set_page_config( | |
| page_icon="π§", | |
| layout="wide", | |
| ) | |
| st.write( | |
| "This is an application for viewing different generations for the same prompt. The generations vary depending on the checkpoint used and also the parameters used for the generation." | |
| ) | |
| HF_API_TOKEN = st.secrets["HF_API_TOKEN"] | |
| PROMPT_COLOR = "#CA437E" | |
| def safe_text(text): | |
| text = text.replace("\n", "<br>") | |
| return f"<pre>{text}</pre>" | |
| def prompt_markup_format(text): | |
| return f'<*font color="black">{text}</*font>' | |
| def generation_markup_format(text): | |
| return f"<font color={PROMPT_COLOR}>{text}</pre></font>" | |
| ds = load_dataset("bigscience/bloom-generations", use_auth_token=HF_API_TOKEN) | |
| ds = ds["train"] | |
| col_1, col_2 = st.columns(2) | |
| with col_1: | |
| possible_checkpoint = ds.unique("checkpoint") | |
| st.markdown("<h1 style='text-align: center'>Prompt</h1>", unsafe_allow_html=True) | |
| chosen_checkpoint = st.selectbox("Choose a checkpoint", possible_checkpoint + ["all"]) | |
| if chosen_checkpoint == "all": | |
| ds_ckp = ds | |
| else: | |
| ds_ckp = ds.filter( | |
| lambda exs: [lang == chosen_checkpoint for lang in exs["checkpoint"]], batched=True | |
| ) | |
| possible_langs = ds.unique("lang") | |
| chosen_lang = st.selectbox("Choose a lang", possible_langs + ["all"]) | |
| if chosen_lang == "all": | |
| ds_lang = ds_ckp | |
| else: | |
| ds_lang = ds_ckp.filter( | |
| lambda exs: [lang == chosen_lang for lang in exs["lang"]], batched=True | |
| ) | |
| possible_prompts = ds_lang.unique("prompt") | |
| chosen_prompt = st.selectbox("Choose a prompt", possible_prompts) | |
| st.markdown(safe_text(chosen_prompt), unsafe_allow_html=True) | |
| sub_ds = ds_lang.filter( | |
| lambda exs: [prompt == chosen_prompt for prompt in exs["prompt"]], batched=True | |
| ) | |
| with col_2: | |
| st.markdown( | |
| "<h1 style='text-align: center'>Generation</h1>", unsafe_allow_html=True | |
| ) | |
| index_sample = st.number_input( | |
| "Index of the chosen generation", | |
| min_value=0, | |
| max_value=len(sub_ds) - 1, | |
| value=0, | |
| step=1, | |
| ) | |
| sample = sub_ds[index_sample] | |
| generation = sample["generation"] | |
| stop_index_sample = st.number_input( | |
| "Stop generation at character number", | |
| min_value=0, | |
| max_value=len(generation), | |
| value=len(generation), | |
| step=1, | |
| ) | |
| markdown_text = generation_markup_format(safe_text(generation[:stop_index_sample])) | |
| st.markdown(markdown_text, unsafe_allow_html=True) | |
| st.markdown( | |
| "<h2 style='text-align: center'>Generation configuration</h2>", | |
| unsafe_allow_html=True, | |
| ) | |
| config = { | |
| key: value | |
| for key, value in sample.items() | |
| if key not in ["prompt", "generation"] | |
| } | |
| config | |