SaviAnna commited on
Commit
a0e7286
1 Parent(s): 7d7f649

Update pages/📖History_Mystery.py

Browse files
Files changed (1) hide show
  1. pages/📖History_Mystery.py +14 -83
pages/📖History_Mystery.py CHANGED
@@ -4,116 +4,50 @@ from transformers import GPT2LMHeadModel, GPT2Tokenizer
4
  import numpy as np
5
  from PIL import Image
6
  import torch
7
-
8
  st.title("""
9
  History Mystery
10
  """)
11
  # Добавление слайдера
12
  temperature = st.slider("Градус дичи", 1.0, 20.0, 1.0)
13
- max_length = st.slider(" Длина сгенерированного отрывка", 60, 120, 2)
14
  # Загрузка модели и токенизатора
15
  # model = GPT2LMHeadModel.from_pretrained('sberbank-ai/rugpt3small_based_on_gpt2')
16
  # tokenizer = GPT2Tokenizer.from_pretrained('sberbank-ai/rugpt3small_based_on_gpt2')
17
  # #Задаем класс модели (уже в streamlit/tg_bot)
18
-
19
- # @st.cache
20
- # def load_gpt():
21
- # model_GPT = GPT2LMHeadModel.from_pretrained(
22
- # 'sberbank-ai/rugpt3small_based_on_gpt2',
23
- # output_attentions = False,
24
- # output_hidden_states = False,
25
- # )
26
- # tokenizer_GPT = GPT2Tokenizer.from_pretrained(
27
- # 'sberbank-ai/rugpt3small_based_on_gpt2',
28
- # output_attentions = False,
29
- # output_hidden_states = False,
30
- # )
31
- # model_GPT.load_state_dict(torch.load('model_history_friday.pt', map_location=torch.device('cpu')))
32
- # return model_GPT, tokenizer_GPT
33
-
34
- # # # Вешаем сохраненные веса на нашу модель
35
-
36
- # # Функция для генерации текста
37
- # Загрузка модели и токенизатора
38
- # model = GPT2LMHeadModel.from_pretrained('sberbank-ai/rugpt3small_based_on_gpt2')
39
- # tokenizer = GPT2Tokenizer.from_pretrained('sberbank-ai/rugpt3small_based_on_gpt2')
40
- # #Задаем класс модели (уже в streamlit/tg_bot)
41
- model = GPT2LMHeadModel.from_pretrained(
42
- 'sberbank-ai/rugpt3small_based_on_gpt2',
43
- output_attentions = False,
44
- output_hidden_states = False,
45
- )
46
- tokenizer = GPT2Tokenizer.from_pretrained(
47
  'sberbank-ai/rugpt3small_based_on_gpt2',
48
  output_attentions = False,
49
  output_hidden_states = False,
50
- )
51
-
 
 
 
 
 
 
52
  # # Вешаем сохраненные веса на нашу модель
53
- model.load_state_dict(torch.load('model_history.pt',map_location=torch.device('cpu')))
54
  # Функция для генерации текста
55
- def generate_text(prompt):
56
- # Преобразование входной строки в токены
57
- input_ids = tokenizer.encode(prompt, return_tensors='pt')
58
-
59
- # Генерация текста
60
- output = model.generate(input_ids=input_ids, max_length=70, num_beams=5, do_sample=True,
61
- temperature=1.0, top_k=50, top_p=0.6, no_repeat_ngram_size=3,
62
- num_return_sequences=3)
63
-
64
- # Декодирование сгенерированного текста
65
- generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
66
-
67
- return generated_text
68
  def generate_text(model_GPT, tokenizer_GPT, prompt):
69
  # Преобразование входной строки в токены
70
  input_ids = tokenizer_GPT.encode(prompt, return_tensors='pt')
71
-
72
  # Генерация текста
73
  output = model_GPT.generate(input_ids=input_ids, max_length=70, num_beams=5, do_sample=True,
74
  temperature=1., top_k=50, top_p=0.6, no_repeat_ngram_size=3,
75
  num_return_sequences=3)
76
-
77
  # Декодирование сгенерированного текста
78
  generated_text = tokenizer_GPT.decode(output[0], skip_special_tokens=True)
79
-
80
  return generated_text
81
-
82
- # Streamlit приложение
83
- # def main():
84
- # model_GPT, tokenizer_GPT = load_gpt()
85
- # st.write("""
86
- # # GPT-3 генерация текста
87
- # """)
88
-
89
- # # Ввод строки пользователем
90
- # prompt = st.text_area("Какую фразу нужно продолжить:", value="В средние века на руси")
91
-
92
- # # # Генерация текста по введенной строке
93
- # # generated_text = generate_text(prompt)
94
- # # Создание кнопки "Сгенерировать"
95
- # generate_button = st.button("За работу!")
96
- # # Обработка события нажатия кнопки
97
- # if generate_button:
98
- # # Вывод сгенерированного текста
99
- # generated_text = generate_text(model_GPT, tokenizer_GPT, prompt)
100
- # st.subheader("Продолжение:")
101
- # st.write(generated_text)
102
-
103
-
104
-
105
- # if __name__ == "__main__":
106
- # main()
107
-
108
  # Streamlit приложение
109
  def main():
 
110
  st.write("""
111
  # GPT-3 генерация текста
112
  """)
113
-
114
  # Ввод строки пользователем
115
  prompt = st.text_area("Какую фразу нужно продолжить:", value="В средние века на руси")
116
-
117
  # # Генерация текста по введенной строке
118
  # generated_text = generate_text(prompt)
119
  # Создание кнопки "Сгенерировать"
@@ -121,11 +55,8 @@ def main():
121
  # Обработка события нажатия кнопки
122
  if generate_button:
123
  # Вывод сгенерированного текста
124
- generated_text = generate_text(prompt)
125
  st.subheader("Продолжение:")
126
  st.write(generated_text)
127
-
128
-
129
-
130
  if __name__ == "__main__":
131
  main()
 
4
  import numpy as np
5
  from PIL import Image
6
  import torch
 
7
  st.title("""
8
  History Mystery
9
  """)
10
  # Добавление слайдера
11
  temperature = st.slider("Градус дичи", 1.0, 20.0, 1.0)
12
+ max_length = st.slider(" Длина сгенерированного отрывка", 40, 120, 2)
13
  # Загрузка модели и токенизатора
14
  # model = GPT2LMHeadModel.from_pretrained('sberbank-ai/rugpt3small_based_on_gpt2')
15
  # tokenizer = GPT2Tokenizer.from_pretrained('sberbank-ai/rugpt3small_based_on_gpt2')
16
  # #Задаем класс модели (уже в streamlit/tg_bot)
17
+ @st.cache
18
+ def load_gpt():
19
+ model_GPT = GPT2LMHeadModel.from_pretrained(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  'sberbank-ai/rugpt3small_based_on_gpt2',
21
  output_attentions = False,
22
  output_hidden_states = False,
23
+ )
24
+ tokenizer_GPT = GPT2Tokenizer.from_pretrained(
25
+ 'sberbank-ai/rugpt3small_based_on_gpt2',
26
+ output_attentions = False,
27
+ output_hidden_states = False,
28
+ )
29
+ model_GPT.load_state_dict(torch.load('model_history_friday.pt', map_location=torch.device('cpu')))
30
+ return model_GPT, tokenizer_GPT
31
  # # Вешаем сохраненные веса на нашу модель
 
32
  # Функция для генерации текста
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  def generate_text(model_GPT, tokenizer_GPT, prompt):
34
  # Преобразование входной строки в токены
35
  input_ids = tokenizer_GPT.encode(prompt, return_tensors='pt')
 
36
  # Генерация текста
37
  output = model_GPT.generate(input_ids=input_ids, max_length=70, num_beams=5, do_sample=True,
38
  temperature=1., top_k=50, top_p=0.6, no_repeat_ngram_size=3,
39
  num_return_sequences=3)
 
40
  # Декодирование сгенерированного текста
41
  generated_text = tokenizer_GPT.decode(output[0], skip_special_tokens=True)
 
42
  return generated_text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43
  # Streamlit приложение
44
  def main():
45
+ model_GPT, tokenizer_GPT = load_gpt()
46
  st.write("""
47
  # GPT-3 генерация текста
48
  """)
 
49
  # Ввод строки пользователем
50
  prompt = st.text_area("Какую фразу нужно продолжить:", value="В средние века на руси")
 
51
  # # Генерация текста по введенной строке
52
  # generated_text = generate_text(prompt)
53
  # Создание кнопки "Сгенерировать"
 
55
  # Обработка события нажатия кнопки
56
  if generate_button:
57
  # Вывод сгенерированного текста
58
+ generated_text = generate_text(model_GPT, tokenizer_GPT, prompt)
59
  st.subheader("Продолжение:")
60
  st.write(generated_text)
 
 
 
61
  if __name__ == "__main__":
62
  main()