File size: 2,336 Bytes
f1b5504 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
#streamlit run app.py
import streamlit as st
import torch
import galai as gal
#https://github.com/paperswithcode/galai/blob/main/notebooks/Introduction%20to%20Galactica%20Models.ipynb
#@st.cache(suppress_st_warning=True, allow_output_mutation=True)
@st.cache_resource
def load_model(model_name):
model = gal.load_model(model_name, dtype=torch.float16)
return model
if 'text' not in st.session_state:
st.session_state['text'] = ""
def generate_text():
st.session_state['text'] = model.generate(input_text=st.session_state.editor, penalty_alpha=penalty_alpha, top_k=top_k, max_new_tokens=max_new_tokens, new_doc=new_doc)
def suggest_reference():
st.session_state['text'] = st.session_state.editor + " " + model.generate_reference(input_text=st.session_state.editor)
#Sidebar
st.sidebar.markdown("### Select model")
choose_model = st.sidebar.selectbox("Size", ["mini", "base"])
model = load_model(choose_model)
st.sidebar.markdown("### Text generation settings")
max_new_tokens = st.sidebar.slider("Max new tokens", value=60, min_value = 10, max_value = 200, step=10)
penalty_alpha = st.sidebar.slider("Alpha penalty", value = 0.6, min_value = 0.0, max_value=2.0, step=0.1)
top_k = st.sidebar.slider("Top-k", min_value = 0, max_value=10, value = 4)
new_doc = st.sidebar.checkbox("New document", value=True)
#Main
st.markdown(
'''
# Scientific writing assistant
## GALACTICA model
The [GALACTICA models](https://www.galactica.org) have been training on a large corpus of scientific data (see also the [GitHub repository](https://github.com/paperswithcode/galai)). Try out the two smaller models here and how they can be used to generate scientific text and suggest references.
Write text in the editor and push **TAB** or **CTRL+ENTER** to generate text.
Settings for model size (mini = 125 M and base = 1.3 B parameters) and text generation can be managed using from the left margin.
## Suggest citations
Use **Add citation** button to suggest and insert a citation into the text editor. The citation format is *Title, First author*.
''')
add_ref = st.button("Add citation", on_click=suggest_reference)
text_editor = st.text_area("(not shown)", st.session_state['text'], height = 500, key="editor", on_change=generate_text, label_visibility="collapsed")
|