Spaces:
Running
Running
File size: 8,960 Bytes
8f59407 f9b8716 8f59407 ee7626a 8f59407 0325d36 ecffc39 8f59407 38dd92a ba01e7c 09834f8 ddb7329 0325d36 ddb7329 0325d36 c629a2b ddb7329 0325d36 09834f8 c629a2b f9b8716 0325d36 f9b8716 ddb7329 0325d36 c629a2b f9b8716 0325d36 c629a2b f9b8716 c629a2b 09834f8 c629a2b 09834f8 c629a2b f9b8716 09834f8 c629a2b f9b8716 c629a2b f9b8716 0325d36 c629a2b f9b8716 0325d36 c629a2b f9b8716 0325d36 c629a2b f9b8716 0325d36 c629a2b 8f59407 bcd8f3a 8f59407 0325d36 09834f8 ecffc39 0325d36 ecffc39 0325d36 ecffc39 0325d36 09834f8 bcd8f3a 09834f8 ecffc39 0325d36 ecffc39 c629a2b 09834f8 bcd8f3a 09834f8 ecffc39 0325d36 e3def2b 0325d36 c629a2b ecffc39 bcd8f3a f9b8716 09834f8 f9b8716 ecffc39 0325d36 ecffc39 c629a2b f9b8716 bcd8f3a 8f59407 |
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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 |
import gradio as gr
import spaces
from transformers import pipeline
import torch
DESCRIPTION="""
This is the space for the Language Modeling Group at TABILAB in Computer Engineering of Bogazici University.
We released the first version of our Turkish language model TURNA.
This model is based on an encoder-decoder T5 architecture with 1.1B parameters.
For more details, please refer to our paper.
**Note:** First inference might take time as the models are downloaded on-the-go.
"""
sentiment_example = [["Bu üründen çok memnun kaldım."]]
long_text = [["Eyfel Kulesi (Fransızca: La tour Eiffel [la tuʀ ɛˈfɛl]), Paris'teki demir kule. Kule, aynı zamanda tüm dünyada Fransa'nın sembolü halini almıştır. İsmini, inşa ettiren Fransız inşaat mühendisi Gustave Eiffel'den alır.[1] En büyük turizm cazibelerinden biri olan Eyfel Kulesi, yılda 6 milyon turist çeker. 2002 yılında toplam ziyaretçi sayısı 200 milyona ulaşmıştır."]]
ner_example = [["Benim adım Turna."]]
t2t_example = [["Paraphrase: Bu üründen çok memnun kaldım."]]
nli_example = [["Bunu çok beğendim. Bunu çok sevdim."]]
@spaces.GPU
def nli(input, model_choice="turna_nli_nli_tr"):
if model_choice=="turna_nli_nli_tr":
nli_model = pipeline(model="boun-tabi-LMG/turna_nli_nli_tr", device=0)
return nli_model(input)[0]["generated_text"]
else:
stsb_model = pipeline(model="boun-tabi-LMG/turna_semantic_similarity_stsb_tr", device=0)
return stsb_model(input)[0]["generated_text"]
@spaces.GPU
def sentiment_analysis(input, model_choice="turna_classification_17bintweet_sentiment"):
if model_choice=="turna_classification_17bintweet_sentiment":
sentiment_model = pipeline(model="boun-tabi-LMG/turna_classification_17bintweet_sentiment", device=0)
return sentiment_model(input)[0]["generated_text"]
else:
product_reviews = pipeline(model="boun-tabi-LMG/turna_classification_tr_product_reviews", device=0)
return product_reviews(input)[0]["generated_text"]
@spaces.GPU
def pos(input, model_choice="turna_pos_imst"):
if model_choice=="turna_pos_imst":
pos_imst = pipeline(model="boun-tabi-LMG/turna_pos_imst", device=0)
return pos_imst(input)[0]["generated_text"]
else:
pos_boun = pipeline(model="boun-tabi-LMG/turna_pos_boun", device=0)
return pos_boun(input)[0]["generated_text"]
@spaces.GPU
def ner(input, model_choice="turna_ner_wikiann"):
if model_choice=="turna_ner_wikiann":
ner_wikiann = pipeline(model="boun-tabi-LMG/turna_ner_wikiann", device=0)
return ner_wikiann(input)[0]["generated_text"]
else:
ner_model = pipeline(model="boun-tabi-LMG/turna_ner_milliyet", device=0)
return ner_model(input)[0]["generated_text"]
@spaces.GPU
def paraphrase(input, model_choice="turna_paraphrasing_tatoeba"):
if model_choice=="turna_paraphrasing_tatoeba":
paraphrasing = pipeline(model="boun-tabi-LMG/turna_paraphrasing_tatoeba", device=0)
return paraphrasing(input)[0]["generated_text"]
else:
paraphrasing_sub = pipeline(model="boun-tabi-LMG/turna_paraphrasing_opensubtitles", device=0)
return paraphrasing_sub(input)[0]["generated_text"]
@spaces.GPU
def summarize(input, model_choice="turna_summarization_tr_news"):
if model_choice=="turna_summarization_tr_news":
news_sum = pipeline(model="boun-tabi-LMG/turna_summarization_tr_news", device=0)
return news_sum(input)[0]["generated_text"]
else:
summarization_model = pipeline(model="boun-tabi-LMG/turna_summarization_mlsum", device=0)
return summarization_model(input)[0]["generated_text"]
with gr.Blocks(theme="soft") as demo:
gr.Markdown("# TURNA 🐦")
gr.Markdown(DESCRIPTION)
with gr.Tab("Sentiment Analysis"):
gr.Markdown("TURNA fine-tuned on sentiment analysis. Enter text to analyse sentiment and pick the model (tweets or product reviews).")
with gr.Column():
with gr.Row():
with gr.Column():
sentiment_choice = gr.Radio(choices = ["turna_classification_17bintweet_sentiment", "turna_classification_tr_product_reviews"], label ="Model", value="turna_classification_17bintweet_sentiment")
sentiment_input = gr.Textbox(label="Sentiment Analysis Input")
sentiment_submit = gr.Button()
sentiment_output = gr.Textbox(label="Sentiment Analysis Output")
sentiment_submit.click(nli, inputs=[pos_input, nli_choice], outputs=pos_output)
sentiment_examples = gr.Examples(examples = sentiment_example, inputs = [sentiment_input, sentiment_choice], outputs=sentiment_output, fn=sentiment)
with gr.Tab("NLI"):
gr.Markdown("TURNA fine-tuned on natural language inference. Enter text to infer entailment and pick the model. You can also check for semantic similarity entailment.")
with gr.Column():
with gr.Row():
with gr.Column():
nli_choice = gr.Radio(choices = ["turna_nli_nli_tr", "turna_semantic_similarity_stsb_tr"], label ="Model", value="turna_nli_nli_tr")
nli_input = gr.Textbox(label="NLI Input")
nli_submit = gr.Button()
nli_output = gr.Textbox(label="NLI Output")
nli_submit.click(nli, inputs=[pos_input, nli_choice], outputs=pos_output)
nli_examples = gr.Examples(examples = nli_example, inputs = [nli_input, nli_choice], outputs=nli_output, fn=nli)
with gr.Tab("POS"):
gr.Markdown("TURNA fine-tuned on part-of-speech-tagging. Enter text to parse parts of speech and pick the model.")
with gr.Column():
with gr.Row():
with gr.Column():
pos_choice = gr.Radio(choices = ["turna_pos_imst", "turna_pos_boun"], label ="Model", value="turna_pos_imst")
pos_input = gr.Textbox(label="POS Input")
pos_submit = gr.Button()
pos_output = gr.Textbox(label="POS Output")
pos_submit.click(pos, inputs=[pos_input, pos_choice], outputs=pos_output)
pos_examples = gr.Examples(examples = ner_example, inputs = [pos_input, pos_choice], outputs=pos_output, fn=pos)
with gr.Tab("NER"):
gr.Markdown("TURNA fine-tuned on named entity recognition. Enter text to parse named entities and pick the model.")
with gr.Column():
with gr.Row():
with gr.Column():
ner_choice = gr.Radio(choices = ["turna_ner_wikiann", "turna_ner_milliyet"], label ="Model", value="turna_ner_wikiann")
ner_input = gr.Textbox(label="NER Input")
ner_submit = gr.Button()
ner_output = gr.Textbox(label="NER Output")
ner_submit.click(ner, inputs=[ner_input, ner_choice], outputs=ner_output)
ner_examples = gr.Examples(examples = ner_example, inputs = [ner_input, ner_choice], outputs=ner_output, fn=ner)
with gr.Tab("Paraphrase"):
gr.Markdown("TURNA fine-tuned on paraphrasing. Enter text to paraphrase and pick the model.")
with gr.Column():
with gr.Row():
with gr.Column():
paraphrasing_choice = gr.Radio(choices = ["turna_paraphrasing_tatoeba", "turna_paraphrasing_opensubtitles"], label ="Model", value="turna_paraphrasing_tatoeba")
paraphrasing_input = gr.Textbox(label = "Paraphrasing Input")
paraphrasing_submit = gr.Button()
paraphrasing_output = gr.Text(label="Paraphrasing Output")
paraphrasing_submit.click(paraphrase, inputs=[paraphrasing_input, paraphrasing_choice], outputs=paraphrasing_output)
paraphrase_examples = gr.Examples(examples = long_text, inputs = [paraphrasing_input, paraphrasing_choice], outputs=paraphrasing_output, fn=paraphrase)
with gr.Tab("Summarization"):
gr.Markdown("TURNA fine-tuned on summarization. Enter text to summarize and pick the model.")
with gr.Column():
with gr.Row():
with gr.Column():
sum_choice = gr.Radio(choices = ["turna_summarization_mlsum", "turna_summarization_tr_news"], label ="Model", value="turna_summarization_mlsum")
sum_input = gr.Textbox(label = "Summarization Input")
sum_submit = gr.Button()
sum_output = gr.Textbox(label = "Summarization Output")
sum_submit.click(summarize, inputs=[sum_input, sum_choice], outputs=sum_output)
sum_examples = gr.Examples(examples = long_text, inputs = [sum_input, sum_choice], outputs=sum_output, fn=summarize)
demo.launch() |