All_in_one / pages /fill_mask.py
Pippoz's picture
adding translation task
20e4702
import streamlit as st
import time
import pandas as pd
import altair as alt
from multipage import MultiPage
from transformers import pipeline
def app():
st.markdown('## Mask Fill task')
st.write('Write a sentence with a [MASK] gap to fill')
st.markdown('## ')
@st.cache(allow_output_mutation=True, suppress_st_warning =True, show_spinner=False)
def get_model(model):
return pipeline('fill-mask', model=model)
def create_graph(answer):
x_bar = [i['token_str'] for i in answer]
y_bar = [i['score'] for i in answer]
chart_data = pd.DataFrame(y_bar, index=x_bar)
data = pd.melt(chart_data.reset_index(), id_vars=["index"])
# Horizontal stacked bar chart
chart = (
alt.Chart(data)
.mark_bar(color='#d7abf5')
.encode(
x=alt.X("index", type="nominal", title='',sort=alt.EncodingSortField(field="index", op="count", order='ascending')),
y=alt.Y("value", type="quantitative", title="Score", sort='-x'),
)
)
st.altair_chart(chart, use_container_width=True)
col1, col2 = st.columns([2,1])
with col1:
prompt= st.text_area('Your prompt here',
'''Who is Elon [MASK]?''')
with col2:
select_model = st.radio(
"Select the model to use:",
('Bert cased', 'Bert Un-cased'), index = 1)
if select_model == 'Bert cased':
model = 'bert-base-cased'
elif select_model == 'Bert Un-cased':
model = 'bert-base-uncased'
with st.spinner('Loading Model... (This may take a while)'):
unmasker = get_model(model)
st.success('Model loaded correctly!')
gen = st.info('Generating Mask...')
answer = unmasker(prompt)
gen.empty()
with col1:
create_graph(answer)