Q-bert commited on
Commit
6b22dfa
1 Parent(s): b1e0e63

Create README.md

Browse files
Files changed (1) hide show
  1. README.md +180 -0
README.md ADDED
@@ -0,0 +1,180 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ datasets:
3
+ - TFLai/Turkish-Alpaca
4
+ language:
5
+ - tr
6
+ library_name: peft
7
+ pipeline_tag: text-generation
8
+ license: apache-2.0
9
+ ---
10
+ # (ALPHA) Turkish Instruct LLM Based On Facebook-XGLM
11
+
12
+ This is one of our early experimental models based on Facebook's XGLM, fine-tuned using PEFT loRA on a Turkish Instruction dataset. Our goal is to share a Turkish LLM model in the future.
13
+
14
+ The model provided originates from a checkpoint at the 5700th step.
15
+
16
+ ## Inference
17
+ Please note, utilizing this model necessitates the download of substantial data files, necessitating a minimum of 24GB VRAM.
18
+
19
+ Given its experimental nature, it is very likely that this model can produce garbage (biased & wrong) output from time to time, so **use it with caution.**
20
+
21
+ In order to install PEFT modules, please visit:
22
+ * https://github.com/huggingface/peft
23
+
24
+ ### Load the Model
25
+ ```python
26
+ import torch
27
+ from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
28
+ from peft import PeftModel
29
+
30
+ bnb_config = BitsAndBytesConfig(
31
+ load_in_4bit=True,
32
+ bnb_4bit_use_double_quant=True,
33
+ bnb_4bit_quant_type="nf4",
34
+ bnb_4bit_compute_dtype=torch.bfloat16
35
+ )
36
+
37
+ model = AutoModelForCausalLM.from_pretrained("facebook/xglm-7.5B",
38
+ quantization_config=bnb_config,
39
+ device_map="auto")
40
+
41
+ model = PeftModel.from_pretrained(model, "myzens/XGLM_TR_FineTune_alpha")
42
+
43
+ tokenizer = AutoTokenizer.from_pretrained("facebook/xglm-7.5B")
44
+ ```
45
+
46
+ ### Text Generation Examples
47
+ Here's a quick and dirty implementation of a post-processing function in case you want to get rid of any garbage letters etc (if any exists):
48
+ ```python
49
+ import re
50
+
51
+ def post_process(text, how_many_sentences=5):
52
+
53
+ start_index = text.find("### Cevap: ") + len("### Cevap: ")
54
+ end_index = text.find("️", start_index)
55
+ extracted_text = text[start_index:end_index].strip()
56
+
57
+ sentences = extracted_text.split('.')
58
+ sentences = '.'.join(sentences[:how_many_sentences])
59
+ cleaned_text = ''.join(ch for ch in sentences if ch.isalnum() or ch.isspace() or ch == ".")
60
+ cleaned_text = cleaned_text.replace(" ", " ")
61
+ cleaned_text = re.sub('\.\.+', '.', cleaned_text)
62
+ cleaned_text = cleaned_text.strip()
63
+
64
+ return cleaned_text
65
+ ```
66
+
67
+ #### Basic Sentiment Analysis
68
+ ```python
69
+ PROMPT = """Aşağıda, daha fazla bağlam sağlayan bir girdi ile eşleştirilmiş bir görevi açıklayan bir talimat bulunmaktadır. İsteği uygun şekilde tamamlayan bir yanıt yazın.
70
+ ### Talimat: Sana verilen cümleyi olumlu, olumsuz veya tarafsız olarak sınıflandır
71
+ ### Giriş: Tamam iyi güzel kargo zamanında geliyor. HB ile ilgili bi sıkıntı yok. Ama bu ürün çok kullanışsız.
72
+ ### Cevap:"""
73
+
74
+ inputs = tokenizer(PROMPT, return_tensors="pt")
75
+ input_ids = inputs["input_ids"].cuda()
76
+
77
+ generation_output = model.generate(
78
+ input_ids=input_ids,
79
+ temperature=0.1,
80
+ top_p=0.2,
81
+ repetition_penalty=1.2,
82
+ max_length=128,
83
+ pad_token_id=tokenizer.pad_token_id,
84
+ eos_token_id=tokenizer.eos_token_id
85
+ )
86
+
87
+ for generated_text in generation_output:
88
+ story = tokenizer.decode(generated_text, skip_special_tokens=True)
89
+ print(post_process(story, 1)) # Olumsuz
90
+ ```
91
+
92
+ #### General
93
+
94
+ Use `how_many_sentences = -1`.
95
+
96
+ ```python
97
+ PROMPT = """Aşağıda, daha fazla bağlam sağlayan bir girdi ile eşleştirilmiş bir görevi açıklayan bir talimat bulunmaktadır. İsteği uygun şekilde tamamlayan bir yanıt yazın.
98
+ ### Talimat:
99
+ ### Giriş: Sanatın toplum için önemini açıkla.
100
+ ### Cevap:"""
101
+
102
+ inputs = tokenizer(PROMPT, return_tensors="pt")
103
+ input_ids = inputs["input_ids"].cuda()
104
+
105
+ generation_output = model.generate(
106
+ input_ids=input_ids,
107
+ temperature=0.8,
108
+ top_p=0.9,
109
+ repetition_penalty=1.2,
110
+ max_length=512,
111
+ pad_token_id=tokenizer.pad_token_id,
112
+ eos_token_id=tokenizer.eos_token_id
113
+ )
114
+ """
115
+ Sanat insanlığın gelişimine katkıda bulunan önemli bir araçtır ve birçok farklı alanda kullanılabilir.
116
+ Örneğin sanat eserleri görsel olarak bilgiyi aktarmak veya duyguları ifade etmek gibi çeşitli amaçlar sağlayabilirler.
117
+ Ayrıca sanatçılar yaratıcılıklarını kullanarak yeni fikirler üretebilmelerine olanak tanıyarak toplumun ilerlemesine yardımcı olabilirler.
118
+ Son olarak sanatsal ürünler insanlar arasında iletişim kurmaya da yardımcı olurken aynı zamanda kültürel etkileşimde de büyük rol oynarlar.
119
+ Bu nedenle sanatın toplumsal faydası yadsınamazdır
120
+ """
121
+ ```
122
+
123
+ #### Suggestions
124
+ ```python
125
+ PROMPT = """Aşağıda, daha fazla bağlam sağlayan bir girdi ile eşleştirilmiş bir görevi açıklayan bir talimat bulunmaktadır. İsteği uygun şekilde tamamlayan bir yanıt yazın.
126
+ ### Talimat:
127
+ ### Giriş: Ders çalışmak için önerilerde bulun.
128
+ ### Cevap:"""
129
+
130
+ generation_output = model.generate(
131
+ input_ids=input_ids,
132
+ temperature=0.7,
133
+ top_p=0.9,
134
+ repetition_penalty=1.2,
135
+ max_length=512,
136
+ pad_token_id=tokenizer.pad_token_id,
137
+ eos_token_id=tokenizer.eos_token_id
138
+ )
139
+
140
+ """
141
+ 1. Çalışmak istediğiniz konuyu belirleyin ve ders çalışmaya başlamadan önce o konudaki kaynakları araştırın.
142
+ 2. Dersi takip etmek için düzenli olarak zaman ayırmaya çalışın.
143
+ 3. Birden çok görev yapmayı deneyin - bu sayede her gün birkaç saatinizi verimli kullanabilirsiniz.
144
+ 4. Herhangi bir soru veya sorunla karşılaştığınız anda öğretmeninize danışın.
145
+ 5. Kendinizi motive etmenin yollarına odaklanın - böylece kendinize güvenebilirsiniz ve motivasyonunuzu sürdürmek kolaylaşır.
146
+ 6. Öğrenme sürecinde hata yapmaktan korkmayın! Hatalar öğrenmenin doğal bir parçasıdır; ancak yanlış yaptığınızda düzeltmeniz gereken şeylerin farkına varmanız önemlidir.
147
+ 7. Başarısızlık duygusunu kabul edin ve başarının yolunu bulmanıza yardımcı olacak yeni yollar arayın.
148
+ 8. Başkalarına yardım etmeye çalışarak kendi gelişiminize katkı sağlayın.
149
+ 9. Sınavlara hazırlık yaparken dikkat dağıtıcı aktivitelerden kaçının.
150
+ 10. Sonunda başarılı olduğunuzun garantisini vermeyin. Bu sadece sizi stresli hale getirebilir.
151
+ 11. Deneme sınavlarını tekrarlayın ve sonuçları değerlendirerek ilerlemeyi izleyin.
152
+ 12. Daha iyi sonuçlar elde etme yolunda adım atmak için sabırlı olun.
153
+ 13. Yeni bilgiler öğrendiğinizde bunları paylaşmayı unutmayın.
154
+ 14. Motivasyonunu kaybetmekten korkan öğrencilerle iletişim kurmaktan çekinmeyin.
155
+ 15. Soru sorduğunuzda olumlu geri bildirim almak önemli olduğundan emin olun.
156
+ 16. Arkadaşlarınızla birlikte çalışırken destekleyici olmakta fayda vardır.
157
+ 17. Öğretmeniniz tarafından verilen ödevleri eksiksiz yapın.
158
+ 18. Dikkat dağıtan diğer etkinliklerden uzak durun.
159
+ 19. Zaman yönetimini öğrenin ve planlı hareket ederek zamanı etkili kullanın.
160
+ 20. Uyku düzenini koruyun ve sağlıklı beslenmeye özen gösterin.
161
+ 21. Stresle başa çıkma becerilerinizi geliştirin.
162
+ 22. Hayatınızda başkalarının da sizin gibi zorluklar yaşadığını hatırlayın.
163
+ 23. Farkındalık yaratmak için farklı yöntemler deneyerek zihinsel sağlığınızı korumaya çalışın.
164
+ 24. Eğer yeterince konsantre olamıyorsanız dinlenmeye izin verin.
165
+ """
166
+ ```
167
+
168
+ ### Future Steps
169
+ 1) We are aiming to decrease the inference cost while maintaining the quality in the outputs.
170
+ 2) We'll continue to improve our dataset.
171
+
172
+ ### Contact
173
+
174
+ We would like to thank [Ünver Çiftçi](https://www.linkedin.com/in/unverciftci/) who has connected us in the first place.
175
+
176
+ | | Task | LinkedIn | GitHub |
177
+ |:---:|:---:|:---:|:---:|
178
+ | Kaan Bıçakcı | Training + Data Preprocessing | [Contact](https://www.linkedin.com/in/kaanbicakci/) | https://github.com/Frightera |
179
+ | Talha Rüzgar Akkuş | Data Collection + General Idea | [Contact](https://www.linkedin.com/in/talha-r%C3%BCzgar-akku%C5%9F-1b5457264/) | https://github.com/LegallyCoder |
180
+ | Ethem Yağız Çalık | Data Collection + General Idea | [Contact](https://www.linkedin.com/in/ethem-ya%C4%9F%C4%B1z-%C3%A7al%C4%B1k-799a73275/) | https://github.com/Weyaxi |