|
import streamlit as st |
|
|
|
st.set_page_config(page_title="Turkish Summarization - via AG", page_icon='📖') |
|
st.header("📖Turkish Summarization Task for Llama") |
|
|
|
with st.sidebar: |
|
hf_key = st.text_input("HuggingFace Access Key", key="hf_key", type="password") |
|
|
|
MODEL_QA = { |
|
"Qwen2.5-0.5": "anilguven/Qwen2.5-0.5B-TrSummarization-unsloth", |
|
"Qwen2.5-1.5": "anilguven/Qwen2.5-1.5B-TrSummarization-unsloth", |
|
} |
|
|
|
MODEL_QAS = ["Qwen2.5-0.5","Qwen2.5-1.5"] |
|
|
|
|
|
from transformers import pipeline |
|
|
|
def format_model_name(model_key): |
|
name_parts = model_key |
|
formatted_name = ''.join(name_parts) |
|
return formatted_name |
|
|
|
formatted_names_to_identifiers = { |
|
format_model_name(key): key for key in MODEL_QA.keys() |
|
} |
|
|
|
|
|
|
|
|
|
with st.expander("About this app"): |
|
st.write(f""" |
|
These models finetuned with Turkish wikipedia dataset (huggingface: musabg/wikipedia-tr-summarization)\n |
|
1-Choose your Llama 3.x model for Turkish Summarization task\n |
|
2-Enter your context.\n |
|
3-And model predict your summary. |
|
""") |
|
|
|
model_name: str = st.selectbox("Model", options=MODEL_QAS) |
|
selected_model = MODEL_QA[model_name] |
|
|
|
if not hf_key: |
|
st.info("Please add your HuggingFace Access Key to continue.") |
|
st.stop() |
|
|
|
access_token = hf_key |
|
|
|
from unsloth import FastLanguageModel |
|
max_seq_length = 1024 |
|
dtype = None |
|
load_in_4bit = True |
|
|
|
model, tokenizer = FastLanguageModel.from_pretrained( |
|
model_name = selected_model, |
|
max_seq_length = max_seq_length, |
|
dtype = dtype, |
|
load_in_4bit = load_in_4bit, |
|
token=access_token, |
|
) |
|
|
|
FastLanguageModel.for_inference(model) |
|
|
|
|
|
|
|
|
|
|
|
model_display_name = selected_model |
|
st.write(f"Model being used: `{model_display_name}`") |
|
|
|
|
|
sum_prompt = """Aşağıda, bir girdinin özet hali çıktıda verilmiştir. Girdiyi uygun şekilde özetleyin. |
|
### Input (Girdi): |
|
{} |
|
|
|
### Response (Yanıt): |
|
{}""" |
|
|
|
with st.form('my_form'): |
|
context = st.text_area('Enter text:', "IBOR Interbank Offered Rate (Bankalararası Teklif edilen Faiz oranı) başharfleridır. Belirtilmiş bir zamanda, ilk kategoriden bir Bankanın ayni kategoriden başka bir bankaya, hiçbir karşılık garanti verilmeden (İngilizcesı : unsecured lending), ödünç verilmesı için kullanılan faiz oranıdır. Ödünç karşılığında hiçbir varlık ya da güvenlik verilmediği için riskli bir işlemdır.Bankalararası Karşılıksız Ödünç Bankalararası Karşılıksız Ödünç Para Merkezlerinin en pahalı, en riskli ama aynı şekilde en çok kontrol altında olan işlemidir. Bundan dolayı, nadir, ve toplam miktarda ağır olmayan bir işlemdır. Bunun üzerinde, kısa süreler için kullanılır. İki yıllık Bilanço arasında, yani 31 Aralığı geçtıkten sonra, pek kullanılmaz.Bunlara rağmen, türev finansal ürünler merkezinin büyük bir bölümü bu küçük merkeze bağlıdır.IBOR EndeksleriLondra : LIBORAvro Alanı : EURIBOR 1999'den beri, EURIBOR eski PIBOR (Paris – Fransız Franğı FRF), FIBOR (Frankfurt – Deutschmark DEM), AIBOR (Amsterdam – NLG), RIBOR (Roma – İtalyan Lirası ITL) endekselerınden oluşmaktadır.Diğer IBOR Endeksleri BIBOR : Bangkok - THB BRIBOR : Bratislava SKK CIBOR : Kopenhag - DKK – Danimarka Milli Bankası EIBOR : Farklı dövizler - Birleşik Arap Emirlikleri HIBOR : Hong Kong - HKD JIBOR : Cakarta - IDR Bank Indonesia KIBOR : Karaçi - PKR MIBOR : Madrid PRIBOR : Prag - CZK - Çek Ulusal Bankası MIBOR : Mumbai - INR NIBOR : Norveç - NOK – Norveç Bankası SIBOR - Singapur – SGD içeren farklı dövizler STIBOR : Stockholm - SEK – İsveç Bankası TIBOR : Tokyo - JPY – Yurt içi bir endeks WIBOR : Varşova - PLN ZIBOR : Zagreb - HRKNot : Bu liste kapsamlı değildir.NotlarDış bağlantılar www.euribor.org") |
|
submitted = st.form_submit_button('Submit') |
|
|
|
if submitted: |
|
if not hf_key: |
|
st.info("Please add your HuggingFace Access Key to continue.") |
|
st.stop() |
|
|
|
else: |
|
inputs = tokenizer( |
|
[ |
|
sum_prompt.format( |
|
context, |
|
"", |
|
) |
|
], return_tensors = "pt").to("cuda") |
|
outputs = model.generate(input_ids = inputs.input_ids, attention_mask = inputs.attention_mask, max_new_tokens = 256, use_cache = True) |
|
output = tokenizer.batch_decode(outputs) |
|
o = output[0].split("### Response (Yanıt):")[1] |
|
predict_output = o.split("<|end")[0] |
|
st.text("Your response: \n " + str(predict_output)) |