import requests import streamlit as st import time from transformers import pipeline import os from .utils import query def write(): st.markdown( """
Use the generation parameters on the sidebar to adjust generation quality.
""",
unsafe_allow_html=True,
)
#st.title('Turkish Language Generation')
#st.write('...with Turna')
# Sidebar
# Taken from https://huggingface.co/spaces/flax-community/spanish-gpt2/blob/main/app.py
st.sidebar.subheader("Configurable parameters")
max_new_tokens = st.sidebar.number_input(
"Maximum length",
min_value=0,
max_value=512,
value=128,
help="The maximum length of the sequence to be generated.",
)
length_penalty = st.sidebar.number_input(
"Length penalty",
value=1.0,
help=" length_penalty > 0.0 promotes longer sequences, while length_penalty < 0.0 encourages shorter sequences. ",
)
do_sample = st.sidebar.selectbox(
"Sampling?",
(True, False),
help="Whether or not to use sampling; use greedy decoding otherwise.",
)
num_beams = st.sidebar.number_input(
"Number of beams",
min_value=1,
max_value=10,
value=3,
help="The number of beams to use for beam search.",
)
repetition_penalty = st.sidebar.number_input(
"Repetition Penalty",
min_value=0.0,
value=3.0,
step=0.1,
help="The parameter for repetition penalty. 1.0 means no penalty",
)
no_repeat_ngram_size = st.sidebar.number_input(
"No Repeat N-Gram Size",
min_value=0,
value=3,
help="If set to int > 0, all ngrams of that size can only occur once.",
)
temp = st.sidebar.slider(
"Temperature",
value=1.0,
min_value=0.1,
max_value=100.0,
help="The value used to module the next token probabilities.",
)
top_k = st.sidebar.number_input(
"Top k",
value=10,
help="The number of highest probability vocabulary tokens to keep for top-k-filtering.",
)
top_p = st.sidebar.number_input(
"Top p",
value=0.95,
help=" If set to float < 1, only the most probable tokens with probabilities that add up to top_p or higher are kept for generation.",
)
input_text = st.text_area(label='Enter a text: ', height=100,
value="Türkiye'nin başkenti neresidir?")
url = "https://api-inference.huggingface.co/models/boun-tabi-LMG/TURNA"
params = {"length_penalty": length_penalty, "no_repeat_ngram_size": no_repeat_ngram_size, "max_new_tokens": max_new_tokens,
"do_sample":do_sample, "num_beams":num_beams, "repetition_penalty":repetition_penalty,
"top_p":top_p, "top_k":top_k, "temperature":temp, "early_stopping": True, "max_length": 256}
if st.button("Generate"):
with st.spinner('Generating...'):
output = query(f'[S2S] {input_text}