anilguven commited on
Commit
4d25419
·
verified ·
1 Parent(s): 634bdb5

Update pages/1_Llama_Turkish_Summarization.py

Browse files
Files changed (1) hide show
  1. pages/1_Llama_Turkish_Summarization.py +104 -74
pages/1_Llama_Turkish_Summarization.py CHANGED
@@ -1,74 +1,104 @@
1
- import streamlit as st
2
-
3
- st.set_page_config(page_title="Turkish Summarization - via AG", page_icon='📖')
4
- st.header("📖Turkish Summarization Task for Llama")
5
-
6
- with st.sidebar:
7
- hf_key = st.text_input("HuggingFace Access Key", key="hf_key", type="password")
8
-
9
- MODEL_QA = {
10
- "Llama3-1b": "anilguven/Llama3.2-1b-TrSummarization-unsloth",
11
- "Llama3-3b": "anilguven/Llama3.2-3b-TrSummarization-unsloth",
12
- "Llama3-8b": "anilguven/Llama3.1-8b-TrSummarization-unsloth",
13
- }
14
-
15
- MODEL_QAS = ["Llama3-1b","Llama3-3b","Llama3-8b"]
16
-
17
- # Use a pipeline as a high-level helper
18
- from transformers import pipeline
19
- # Create a mapping from formatted model names to their original identifiers
20
- def format_model_name(model_key):
21
- name_parts = model_key
22
- formatted_name = ''.join(name_parts) # Join them into a single string with title case
23
- return formatted_name
24
-
25
- formatted_names_to_identifiers = {
26
- format_model_name(key): key for key in MODEL_QA.keys()
27
- }
28
-
29
- # Debug to ensure names are formatted correctly
30
- #st.write("Formatted Model Names to Identifiers:", formatted_names_to_identifiers
31
-
32
- with st.expander("About this app"):
33
- st.write(f"""
34
- These models finetuned with Turkish wikipedia dataset (huggingface: musabg/wikipedia-tr-summarization)\n
35
- 1-Choose your Llama 3.x model for Turkish Summarization task\n
36
- 2-Enter your context.\n
37
- 3-And model predict your summary.
38
- """)
39
-
40
- model_name: str = st.selectbox("Model", options=MODEL_QAS)
41
- selected_model = MODEL_QA[model_name]
42
-
43
- if not hf_key:
44
- st.info("Please add your HuggingFace Access Key to continue.")
45
- st.stop()
46
-
47
- access_token = hf_key
48
-
49
- pipe = pipeline("text-generation", model=selected_model, token=access_token)
50
-
51
- #from transformers import AutoTokenizer, AutoModelForSequenceClassification
52
- #tokenizer = AutoTokenizer.from_pretrained(selected_model)
53
- #pipe = AutoModelForSequenceClassification.from_pretrained(pretrained_model_name_or_path=selected_model)
54
-
55
- # Display the selected model using the formatted name
56
- model_display_name = selected_model # Already formatted
57
- st.write(f"Model being used: `{model_display_name}`")
58
-
59
- with st.form('my_form'):
60
- 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")
61
- submitted = st.form_submit_button('Submit')
62
-
63
- if submitted:
64
- if not hf_key:
65
- st.info("Please add your HuggingFace Access Key to continue.")
66
- st.stop()
67
-
68
- else:
69
- result = pipe(context=context)
70
- st.text("Your response: \n " + str(result))
71
-
72
-
73
-
74
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+
3
+ st.set_page_config(page_title="Turkish Summarization - via AG", page_icon='📖')
4
+ st.header("📖Turkish Summarization Task for Llama")
5
+
6
+ with st.sidebar:
7
+ hf_key = st.text_input("HuggingFace Access Key", key="hf_key", type="password")
8
+
9
+ MODEL_QA = {
10
+ "Llama3-1b": "anilguven/Llama3.2-1b-TrSummarization-unsloth",
11
+ "Llama3-3b": "anilguven/Llama3.2-3b-TrSummarization-unsloth",
12
+ "Llama3-8b": "anilguven/Llama3.1-8b-TrSummarization-unsloth",
13
+ }
14
+
15
+ MODEL_QAS = ["Llama3-1b","Llama3-3b","Llama3-8b"]
16
+
17
+ # Use a pipeline as a high-level helper
18
+ from transformers import pipeline
19
+ # Create a mapping from formatted model names to their original identifiers
20
+ def format_model_name(model_key):
21
+ name_parts = model_key
22
+ formatted_name = ''.join(name_parts) # Join them into a single string with title case
23
+ return formatted_name
24
+
25
+ formatted_names_to_identifiers = {
26
+ format_model_name(key): key for key in MODEL_QA.keys()
27
+ }
28
+
29
+ # Debug to ensure names are formatted correctly
30
+ #st.write("Formatted Model Names to Identifiers:", formatted_names_to_identifiers
31
+
32
+ with st.expander("About this app"):
33
+ st.write(f"""
34
+ These models finetuned with Turkish wikipedia dataset (huggingface: musabg/wikipedia-tr-summarization)\n
35
+ 1-Choose your Llama 3.x model for Turkish Summarization task\n
36
+ 2-Enter your context.\n
37
+ 3-And model predict your summary.
38
+ """)
39
+
40
+ model_name: str = st.selectbox("Model", options=MODEL_QAS)
41
+ selected_model = MODEL_QA[model_name]
42
+
43
+ if not hf_key:
44
+ st.info("Please add your HuggingFace Access Key to continue.")
45
+ st.stop()
46
+
47
+ access_token = hf_key
48
+
49
+ from unsloth import FastLanguageModel
50
+ max_seq_length = 1024 # Choose any! We auto support RoPE Scaling internally!
51
+ dtype = None # None for auto detection. Float16 for Tesla T4, V100, Bfloat16 for Ampere+
52
+ load_in_4bit = True # Use 4bit quantization to reduce memory usage. Can be False.
53
+
54
+ model, tokenizer = FastLanguageModel.from_pretrained(
55
+ model_name = selected_model, # YOUR MODEL YOU USED FOR TRAINING
56
+ max_seq_length = max_seq_length,
57
+ dtype = dtype,
58
+ load_in_4bit = load_in_4bit,
59
+ token=access_token,
60
+ )
61
+
62
+ FastLanguageModel.for_inference(model)
63
+ #from transformers import AutoTokenizer, AutoModelForSequenceClassification
64
+ #tokenizer = AutoTokenizer.from_pretrained(selected_model)
65
+ #pipe = AutoModelForSequenceClassification.from_pretrained(pretrained_model_name_or_path=selected_model)
66
+
67
+ # Display the selected model using the formatted name
68
+ model_display_name = selected_model # Already formatted
69
+ st.write(f"Model being used: `{model_display_name}`")
70
+
71
+
72
+ sum_prompt = """Aşağıda, bir girdinin özet hali çıktıda verilmiştir. Girdiyi uygun şekilde özetleyin.
73
+ ### Input (Girdi):
74
+ {}
75
+
76
+ ### Response (Yanıt):
77
+ {}"""
78
+
79
+ with st.form('my_form'):
80
+ 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")
81
+ submitted = st.form_submit_button('Submit')
82
+
83
+ if submitted:
84
+ if not hf_key:
85
+ st.info("Please add your HuggingFace Access Key to continue.")
86
+ st.stop()
87
+
88
+ else:
89
+ inputs = tokenizer(
90
+ [
91
+ sum_prompt.format(
92
+ context,
93
+ "", # output - leave this blank for generation!
94
+ )
95
+ ], return_tensors = "pt").to("cuda")
96
+ outputs = model.generate(input_ids = inputs.input_ids, attention_mask = inputs.attention_mask, max_new_tokens = 256, use_cache = True)
97
+ output = tokenizer.batch_decode(outputs)
98
+ o = output[0].split("### Response (Yanıt):")[1]
99
+ predict_output = o.split("<|end")[0]
100
+ st.text("Your response: \n " + str(predict_output))
101
+
102
+
103
+
104
+