ruslanruslanruslan commited on
Commit
3ffa1c6
1 Parent(s): a0b720b

files added

Browse files
app.py CHANGED
@@ -1,5 +1,5 @@
1
  import streamlit as st
2
 
3
- st.title('A multipage application featuring various Natural Language Processing instruments and functions')
4
 
5
  st.image('aperiodic.png')
 
1
  import streamlit as st
2
 
3
+ st.title('Natural Language Processing Project')
4
 
5
  st.image('aperiodic.png')
oxymiron.jpg ADDED
oxymiron_weights.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f74f64156d6e3c915f8974370242f37e54c1ad5f2420f3efe62d61729e0f7071
3
+ size 500981453
pages/Borgesian.py CHANGED
@@ -34,5 +34,6 @@ user_input = st.text_area("Enter your text:")
34
  if st.button("Send"):
35
  if user_input:
36
  generate_response(user_input, temperature, length, top_p)
 
37
  else:
38
  st.warning("Please enter some text.")
 
34
  if st.button("Send"):
35
  if user_input:
36
  generate_response(user_input, temperature, length, top_p)
37
+ st.image('penrose_tiling.jpg')
38
  else:
39
  st.warning("Please enter some text.")
pages/Oxymiron.py ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import torch
3
+ from transformers import GPT2LMHeadModel, GPT2Tokenizer
4
+
5
+ @st.cache_resource
6
+ def load_model():
7
+ oxymiron = GPT2LMHeadModel.from_pretrained('sberbank-ai/rugpt3small_based_on_gpt2', output_attentions = False, output_hidden_states = False)
8
+ tokenizer = GPT2Tokenizer.from_pretrained("sberbank-ai/rugpt3small_based_on_gpt2")
9
+ return oxymiron, tokenizer
10
+
11
+ oxymiron, tokenizer = load_model()
12
+ oxymiron.load_state_dict(torch.load('pushkin_weights.pt', map_location=torch.device('cpu')))
13
+ oxymiron.to('cpu')
14
+ oxymiron.eval()
15
+
16
+ def generate_response(text, temperature, length, top_p):
17
+ input_ids = tokenizer.encode(text, return_tensors="pt")
18
+ with torch.no_grad():
19
+ out = oxymiron.generate(input_ids, do_sample=True, num_beams=2, temperature=float(temperature), top_p=float(top_p), max_length=length)
20
+ generated_text = list(map(tokenizer.decode, out))[0]
21
+ last_full_stop_index = generated_text.rfind('.')
22
+ st.write(generated_text[:last_full_stop_index + 1])
23
+
24
+ st.title('Миро́н Я́нович Фёдоров')
25
+ st.image('oxymiron.jpg', use_column_width=True)
26
+ st.write('Напишите подсказку на русском языке, и модель на основе GPT отобразит текст Оксимирона.')
27
+
28
+
29
+ # Задаем описание страницы, которое можно свернуть и развернуть
30
+ with st.expander("Описание"):
31
+ st.write("""sberbank-ai/rugpt3small_based_on_gpt2 - это нейронная сеть, специально обученный на большом количестве текстов на русском языке.
32
+ Модель может использоваться для создания автоматических ответов, разговорных систем и даже создания
33
+ субтитров для видео.""")
34
+ st.write("""Мой Dataset состоял из 30_000 слов и обучался 15 эпох (25 мин)""")
35
+ st.write("""Интересные факты:""")
36
+ st.write("""* Модель содержит около 124 миллионов параметров""")
37
+ st.write("""* Отличительной особенностью этой модели является ее способность генерировать тексты на различные темы и стили""")
38
+ st.write("""* Модель показала высокую точность и удовлетворенность при оценке на разных задачах, таких как вопросы-ответы и перевод текста""")
39
+
40
+
41
+ # Задаем параметры генерации
42
+ st.write('Определяем параметры генерации:')
43
+ with st.expander("Параметры генерации"):
44
+ temperature = st.slider('Температура (Более высокая может способствовать генерации более разнообразных, но менее четких и согласованных фраз)', value=1.5, min_value=1.0, max_value=5.0, step=0.1)
45
+ length = st.slider('Длина (определяет ожидаемую длину генерируемого текста)', value=50, min_value=20, max_value=150, step=1)
46
+ top_p = st.slider('Значение top-p (более высокое значение top-p, мы получаем более консервативную генерацию, в то время как более низкое значение top-p даёт более разнообразный текст)', value=0.9, min_value=0.5, max_value=1.0, step=0.05)
47
+
48
+ # Задаем поле ввода текста и кнопку "Отправить"
49
+ user_input = st.text_area("Введите текст:")
50
+ if st.button("Отправить"):
51
+ if user_input:
52
+ generate_response(user_input, temperature, length, top_p)
53
+ else:
54
+ st.warning("Пожалуйста, введите текст.")
pages/Pushkin.py ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import torch
3
+ from transformers import GPT2LMHeadModel, GPT2Tokenizer
4
+
5
+ @st.cache_resource
6
+ def load_model():
7
+ pushkin = GPT2LMHeadModel.from_pretrained('sberbank-ai/rugpt3small_based_on_gpt2', output_attentions = False, output_hidden_states = False)
8
+ tokenizer = GPT2Tokenizer.from_pretrained("sberbank-ai/rugpt3small_based_on_gpt2")
9
+ return pushkin, tokenizer
10
+
11
+ pushkin, tokenizer = load_model()
12
+ pushkin.load_state_dict(torch.load('pushkin_weights.pt', map_location=torch.device('cpu')))
13
+ pushkin.to('cpu')
14
+ pushkin.eval()
15
+
16
+ def generate_response(text, temperature, length, top_p):
17
+ input_ids = tokenizer.encode(text, return_tensors="pt")
18
+ with torch.no_grad():
19
+ out = pushkin.generate(input_ids, do_sample=True, num_beams=2, temperature=float(temperature), top_p=float(top_p), max_length=length)
20
+ generated_text = list(map(tokenizer.decode, out))[0]
21
+ last_full_stop_index = generated_text.rfind('.')
22
+ st.write(generated_text[:last_full_stop_index + 1])
23
+
24
+ st.title('Александр Сергеевич Пушкин')
25
+ st.image('pushkin.jpg', use_column_width=True)
26
+ st.write('Напишите подсказку на русском языке, и модель на основе GPT отобразит текст Пушкина.')
27
+
28
+
29
+ # Задаем описание страницы, которое можно свернуть и развернуть
30
+ with st.expander("Описание"):
31
+ st.write("""sberbank-ai/rugpt3small_based_on_gpt2 - это нейронная сеть, специально обученный на большом количестве текстов на русском языке.
32
+ Модель может использоваться для создания автоматических ответов, разговорных систем и даже создания
33
+ субтитров для видео.""")
34
+ st.write("""Мой Dataset состоял из 103_000 слов и обучался 5 эпох (1 час)""")
35
+ st.write("""Интересные факты:""")
36
+ st.write("""* Модель содержит около 124 миллионов параметров""")
37
+ st.write("""* Отличительной особенностью этой модели является ее способность генерировать тексты на различные темы и стили""")
38
+ st.write("""* Модель показала высокую точность и удовлетворенность при оценке на разных задачах, таких как вопросы-ответы и перевод текста""")
39
+
40
+
41
+ # Задаем параметры генерации
42
+ st.write('Определяем параметры генерации:')
43
+ with st.expander("Параметры генерации"):
44
+ temperature = st.slider('Температура (Более высокая может способствовать генерации более разнообразных, но менее четких и согласованных фраз)', value=1.5, min_value=1.0, max_value=5.0, step=0.1)
45
+ length = st.slider('Длина (определяет ожидаемую длину генерируемого текста)', value=50, min_value=20, max_value=150, step=1)
46
+ top_p = st.slider('Значение top-p (более высокое значение top-p, мы получаем более консервативную генерацию, в то время как более низкое значение top-p даёт более разнообразный текст)', value=0.9, min_value=0.5, max_value=1.0, step=0.05)
47
+
48
+ # Задаем поле ввода текста и кнопку "Отправить"
49
+ user_input = st.text_area("Введите текст:")
50
+ if st.button("Отправить"):
51
+ if user_input:
52
+ generate_response(user_input, temperature, length, top_p)
53
+ else:
54
+ st.warning("Пожалуйста, введите текст.")
pushkin.jpg ADDED
pushkin_weights.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5e692db88209c4bbc5a406058ff0026f52544b1f41ffaa4ebfb703389d1d1d0f
3
+ size 500980103