bond005 commited on
Commit
e45b560
1 Parent(s): 488f5aa

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +29 -14
README.md CHANGED
@@ -34,7 +34,7 @@ Meno-Tiny-0.1 was specifically "Russified" during the fine-tuning stage, but it
34
  #### 1. Example of communication in English
35
 
36
  ```python
37
- from transformers import AutoModelForCausalLM, AutoTokenizer
38
 
39
  model_name = "bond005/meno-tiny-0.1"
40
 
@@ -44,6 +44,7 @@ model = AutoModelForCausalLM.from_pretrained(
44
  device_map="auto"
45
  )
46
  tokenizer = AutoTokenizer.from_pretrained(model_name)
 
47
 
48
  prompt = "Give me a short introduction to large language model." # in English
49
  messages = [
@@ -59,7 +60,7 @@ model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
59
 
60
  generated_ids = model.generate(
61
  **model_inputs,
62
- max_new_tokens=1024
63
  )
64
  generated_ids = [
65
  output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
@@ -72,7 +73,7 @@ print(response)
72
  #### 2. Example of communication in Russian
73
 
74
  ```python
75
- from transformers import AutoModelForCausalLM, AutoTokenizer
76
 
77
  model_name = "bond005/meno-tiny-0.1"
78
 
@@ -82,6 +83,7 @@ model = AutoModelForCausalLM.from_pretrained(
82
  device_map="auto"
83
  )
84
  tokenizer = AutoTokenizer.from_pretrained(model_name)
 
85
 
86
  prompt = "Напиши краткое введение в большие языковые модели." # in Russian
87
  messages = [
@@ -97,7 +99,7 @@ model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
97
 
98
  generated_ids = model.generate(
99
  **model_inputs,
100
- max_new_tokens=1024
101
  )
102
  generated_ids = [
103
  output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
@@ -109,12 +111,21 @@ print(response)
109
 
110
  ## Abilities of Meno-Tiny-0.1
111
 
112
- Using Meno-Tiny-0.1 with different system and user prompts allows you to discover its various abilities. Below are some examples of how to communicate with Meno-Tiny-0.1 in Russian in order to solve a variety of specialized tasks.
 
 
 
 
 
 
 
 
 
113
 
114
  #### 1. The answer to the question about the document
115
 
116
  ```python
117
- from transformers import AutoModelForCausalLM, AutoTokenizer
118
 
119
  model_name = "bond005/meno-tiny-0.1"
120
 
@@ -124,6 +135,7 @@ model = AutoModelForCausalLM.from_pretrained(
124
  device_map="auto"
125
  )
126
  tokenizer = AutoTokenizer.from_pretrained(model_name)
 
127
 
128
  prompt = "Ответь на вопрос по тексту.\n\nВопрос: {question}\n\nТекст: {context}".format(
129
  question="Где живут пингвины?",
@@ -142,7 +154,7 @@ model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
142
 
143
  generated_ids = model.generate(
144
  **model_inputs,
145
- max_new_tokens=1024
146
  )
147
  generated_ids = [
148
  output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
@@ -155,7 +167,7 @@ print(response)
155
  #### 2. Summarization
156
 
157
  ```python
158
- from transformers import AutoModelForCausalLM, AutoTokenizer
159
 
160
  model_name = "bond005/meno-tiny-0.1"
161
 
@@ -165,6 +177,7 @@ model = AutoModelForCausalLM.from_pretrained(
165
  device_map="auto"
166
  )
167
  tokenizer = AutoTokenizer.from_pretrained(model_name)
 
168
 
169
  prompt = "Стали известны результаты, полученные открытой системой «Писец» на ежегодной акции «Тотальный диктант», которая состоялась 20 апреля. Напомним, что «Писец» был разработан научным сотрудником Лаборатории прикладных цифровых технологий Международного научно-образовательного математического центра НГУ и сооснователем стартапа «Сибирские нейросети» Иваном Бондаренко. Впервые искусственный интеллект соревновался в грамотности с человеческим в рамках задачи диктанта, и создатель «Писца» предполагал, что положительной оценки тот не получит — скорее всего, система допустит минимум орфографических ошибок, однако с расставлением знаков препинания вряд ли справится. \n\nРазработчикам «Писца» было важно собрать статистику о разнообразии совершаемых им ошибок и неточностей, чтобы в дальнейшем усовершенствовать систему. Результаты оказались неожиданными, но закономерными – «Писец» вполне удовлетворительно расставил запятые и разбил текст на абзацы. Для этого его специально научили улавливать в речи «кодовые фразы» вроде «пишем с красной строки» или «переходим на новый абзац». В этих целях использовалась отдельная нейросеть, обученная на базе Longformer выделять такие «внесюжетные» вставки наподобие системы NER (Named Entity Recognition - распознавание именованных сущностей). Для обучения использовался синтетический текстовый корпус. Сам же «Писец» использовал в своей работе связку Wav2Vec2-Large-Ru-Golos + Whisper-Podlodka (о Wav2Vec2-Large-Ru-Golos мы ранее писали https://www.nsu.ru/n/media/news/nauka/razrabotannuyu-professorom-ngu-model-raspoznavaniya-rechi-nauchili-razlichat-emotsii, а Whisper-Podlodka является новой моделью). Однако галлюцинаций избежать не удалось.\n\nГаллюцинация — это ответ авторегрессионной нейросетевой модели языка, который корректен грамматически, но неверен семантически (не соответствует входному запросу по смыслу)."
170
  messages = [
@@ -180,7 +193,7 @@ model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
180
 
181
  generated_ids = model.generate(
182
  **model_inputs,
183
- max_new_tokens=1024
184
  )
185
  generated_ids = [
186
  output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
@@ -193,7 +206,7 @@ print(response)
193
  #### 3. Anaphora resolution in dialogue (with few-shot prompting)
194
 
195
  ```python
196
- from transformers import AutoModelForCausalLM, AutoTokenizer
197
 
198
  model_name = "bond005/meno-tiny-0.1"
199
 
@@ -203,6 +216,7 @@ model = AutoModelForCausalLM.from_pretrained(
203
  device_map="auto"
204
  )
205
  tokenizer = AutoTokenizer.from_pretrained(model_name)
 
206
 
207
  user_prompt = "User: Кто сейчас ректор Новосибирского государственного университета?\nAssistant: Ректором Новосибирского государственного университета является Михаил Петрович Федорук, академик Российской академии наук, доктор физико-математических наук, профессор.\nUser: Какие у него научные интересы?"
208
  few_shots_for_anaphora = [
@@ -228,7 +242,7 @@ model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
228
 
229
  generated_ids = model.generate(
230
  **model_inputs,
231
- max_new_tokens=1024
232
  )
233
  generated_ids = [
234
  output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
@@ -241,7 +255,7 @@ print(response)
241
  ### 4. Correction of speech recognition output (with few-shot prompting)
242
 
243
  ```python
244
- from transformers import AutoModelForCausalLM, AutoTokenizer
245
 
246
  model_name = "bond005/meno-tiny-0.1"
247
 
@@ -251,8 +265,9 @@ model = AutoModelForCausalLM.from_pretrained(
251
  device_map="auto"
252
  )
253
  tokenizer = AutoTokenizer.from_pretrained(model_name)
 
254
 
255
- user_prompt = "то есть мы в каждый момент времени знаем про звук еще и какое то такое распределение частот и связанное это с тем что наше ухо на самом деле примерно также и воспринимать звук то есть мы не просто притуду понимаем что вот где то там громче где то тише а наше уху еще понимает что вот этот звук выше этот ниже этот голос боле высокий этот голос низки"
256
  few_shots_for_ASR_correction = [
257
  {"role": "user", "content": "вы выборском районе города проводится проверка по факту нападению на квартиру"},
258
  {"role": "assistant", "content": "В Выборгском районе города проводится проверка по факту нападения на квартиру."},
@@ -278,7 +293,7 @@ model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
278
 
279
  generated_ids = model.generate(
280
  **model_inputs,
281
- max_new_tokens=1024
282
  )
283
  generated_ids = [
284
  output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
 
34
  #### 1. Example of communication in English
35
 
36
  ```python
37
+ from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
38
 
39
  model_name = "bond005/meno-tiny-0.1"
40
 
 
44
  device_map="auto"
45
  )
46
  tokenizer = AutoTokenizer.from_pretrained(model_name)
47
+ gen_config = GenerationConfig.from_pretrained(model_name)
48
 
49
  prompt = "Give me a short introduction to large language model." # in English
50
  messages = [
 
60
 
61
  generated_ids = model.generate(
62
  **model_inputs,
63
+ generation_config=gen_config
64
  )
65
  generated_ids = [
66
  output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
 
73
  #### 2. Example of communication in Russian
74
 
75
  ```python
76
+ from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
77
 
78
  model_name = "bond005/meno-tiny-0.1"
79
 
 
83
  device_map="auto"
84
  )
85
  tokenizer = AutoTokenizer.from_pretrained(model_name)
86
+ gen_config = GenerationConfig.from_pretrained(model_name)
87
 
88
  prompt = "Напиши краткое введение в большие языковые модели." # in Russian
89
  messages = [
 
99
 
100
  generated_ids = model.generate(
101
  **model_inputs,
102
+ generation_config=gen_config
103
  )
104
  generated_ids = [
105
  output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
 
111
 
112
  ## Abilities of Meno-Tiny-0.1
113
 
114
+ Using Meno-Tiny-0.1 with different system and user prompts allows you to discover its various abilities. The main tasks that Meno-Tiny-0.1 can solve, including in the few-shot prompting mode, are:
115
+
116
+ - Answering questions about the text;
117
+ - Summarization;
118
+ - Determining text toxicity and detoxifying the text;
119
+ - Anaphora resolution;
120
+ - Correcting speech recognition errors;
121
+ - and so on.
122
+
123
+ Below are some examples of how to communicate with Meno-Tiny-0.1 in Russian in order to solve a variety of specialized tasks.
124
 
125
  #### 1. The answer to the question about the document
126
 
127
  ```python
128
+ from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
129
 
130
  model_name = "bond005/meno-tiny-0.1"
131
 
 
135
  device_map="auto"
136
  )
137
  tokenizer = AutoTokenizer.from_pretrained(model_name)
138
+ gen_config = GenerationConfig.from_pretrained(model_name)
139
 
140
  prompt = "Ответь на вопрос по тексту.\n\nВопрос: {question}\n\nТекст: {context}".format(
141
  question="Где живут пингвины?",
 
154
 
155
  generated_ids = model.generate(
156
  **model_inputs,
157
+ generation_config=gen_config
158
  )
159
  generated_ids = [
160
  output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
 
167
  #### 2. Summarization
168
 
169
  ```python
170
+ from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
171
 
172
  model_name = "bond005/meno-tiny-0.1"
173
 
 
177
  device_map="auto"
178
  )
179
  tokenizer = AutoTokenizer.from_pretrained(model_name)
180
+ gen_config = GenerationConfig.from_pretrained(model_name)
181
 
182
  prompt = "Стали известны результаты, полученные открытой системой «Писец» на ежегодной акции «Тотальный диктант», которая состоялась 20 апреля. Напомним, что «Писец» был разработан научным сотрудником Лаборатории прикладных цифровых технологий Международного научно-образовательного математического центра НГУ и сооснователем стартапа «Сибирские нейросети» Иваном Бондаренко. Впервые искусственный интеллект соревновался в грамотности с человеческим в рамках задачи диктанта, и создатель «Писца» предполагал, что положительной оценки тот не получит — скорее всего, система допустит минимум орфографических ошибок, однако с расставлением знаков препинания вряд ли справится. \n\nРазработчикам «Писца» было важно собрать статистику о разнообразии совершаемых им ошибок и неточностей, чтобы в дальнейшем усовершенствовать систему. Результаты оказались неожиданными, но закономерными – «Писец» вполне удовлетворительно расставил запятые и разбил текст на абзацы. Для этого его специально научили улавливать в речи «кодовые фразы» вроде «пишем с красной строки» или «переходим на новый абзац». В этих целях использовалась отдельная нейросеть, обученная на базе Longformer выделять такие «внесюжетные» вставки наподобие системы NER (Named Entity Recognition - распознавание именованных сущностей). Для обучения использовался синтетический текстовый корпус. Сам же «Писец» использовал в своей работе связку Wav2Vec2-Large-Ru-Golos + Whisper-Podlodka (о Wav2Vec2-Large-Ru-Golos мы ранее писали https://www.nsu.ru/n/media/news/nauka/razrabotannuyu-professorom-ngu-model-raspoznavaniya-rechi-nauchili-razlichat-emotsii, а Whisper-Podlodka является новой моделью). Однако галлюцинаций избежать не удалось.\n\nГаллюцинация — это ответ авторегрессионной нейросетевой модели языка, который корректен грамматически, но неверен семантически (не соответствует входному запросу по смыслу)."
183
  messages = [
 
193
 
194
  generated_ids = model.generate(
195
  **model_inputs,
196
+ generation_config=gen_config
197
  )
198
  generated_ids = [
199
  output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
 
206
  #### 3. Anaphora resolution in dialogue (with few-shot prompting)
207
 
208
  ```python
209
+ from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
210
 
211
  model_name = "bond005/meno-tiny-0.1"
212
 
 
216
  device_map="auto"
217
  )
218
  tokenizer = AutoTokenizer.from_pretrained(model_name)
219
+ gen_config = GenerationConfig.from_pretrained(model_name)
220
 
221
  user_prompt = "User: Кто сейчас ректор Новосибирского государственного университета?\nAssistant: Ректором Новосибирского государственного университета является Михаил Петрович Федорук, академик Российской академии наук, доктор физико-математических наук, профессор.\nUser: Какие у него научные интересы?"
222
  few_shots_for_anaphora = [
 
242
 
243
  generated_ids = model.generate(
244
  **model_inputs,
245
+ generation_config=gen_config
246
  )
247
  generated_ids = [
248
  output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
 
255
  ### 4. Correction of speech recognition output (with few-shot prompting)
256
 
257
  ```python
258
+ from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
259
 
260
  model_name = "bond005/meno-tiny-0.1"
261
 
 
265
  device_map="auto"
266
  )
267
  tokenizer = AutoTokenizer.from_pretrained(model_name)
268
+ gen_config = GenerationConfig.from_pretrained(model_name)
269
 
270
+ user_prompt = "то есть мы в каждый момент времени знаем про звук еще и какое то такое распределение частот и связанное это с тем что наше ухо на самом деле примерно также и воспринимать звук то есть мы не просто понимаем что вот где то там громче где то тише а наше уху еще понимает что вот этот звук выше этот ниже этот голос боле высокий этот голос низки"
271
  few_shots_for_ASR_correction = [
272
  {"role": "user", "content": "вы выборском районе города проводится проверка по факту нападению на квартиру"},
273
  {"role": "assistant", "content": "В Выборгском районе города проводится проверка по факту нападения на квартиру."},
 
293
 
294
  generated_ids = model.generate(
295
  **model_inputs,
296
+ generation_config=gen_config
297
  )
298
  generated_ids = [
299
  output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)