Spaces:
Sleeping
Sleeping
Commit
•
3ffa1c6
1
Parent(s):
a0b720b
files added
Browse files- app.py +1 -1
- oxymiron.jpg +0 -0
- oxymiron_weights.pt +3 -0
- pages/Borgesian.py +1 -0
- pages/Oxymiron.py +54 -0
- pages/Pushkin.py +54 -0
- pushkin.jpg +0 -0
- pushkin_weights.pt +3 -0
app.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
import streamlit as st
|
2 |
|
3 |
-
st.title('
|
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
|