ERmak1581 commited on
Commit
0e0b4cc
·
verified ·
1 Parent(s): 6a5e096

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +53 -0
app.py ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # from transformers import GPT2Tokenizer, GPT2LMHeadModel, GPT2Config
2
+ #
3
+ #
4
+ # model = GPT2LMHeadModel.from_pretrained("rugpt3large_for_qna_120k10")
5
+ # tokenizer = GPT2Tokenizer.from_pretrained("rugpt3large_for_qna_120k10")
6
+ #
7
+ # print(tokenizer.decode(model.generate(
8
+ # tokenizer.encode('<s> [user] Ты кто? [assistant]',
9
+ # return_tensors="pt"),
10
+ # max_new_tokens=100, no_repeat_ngram_size=2, temperature=0.7, do_sample=True)[0]))
11
+
12
+ import gradio as gr
13
+ import torch
14
+ from transformers import GPT2Tokenizer, GPT2LMHeadModel
15
+
16
+ # Загрузка модели и токенизатора
17
+ tokenizer = GPT2Tokenizer.from_pretrained("ERmak1581/rugpt3large_for_qna_120k1")
18
+ model = GPT2LMHeadModel.from_pretrained("ERmak1581/rugpt3large_for_qna_120k1")
19
+
20
+ # Функция для генерации текста на основе входной строки
21
+ def gen(request, temperature, maxnewtokens):
22
+ input_text = f"<s> [user] {request} [assistant]"
23
+ max_new_tokens = maxnewtokens
24
+
25
+ # Преобразование входной строки в токены
26
+ input_ids = tokenizer.encode(input_text, return_tensors='pt')
27
+
28
+ # Генерация текста
29
+ output = model.generate(
30
+ input_ids,
31
+ do_sample=True,
32
+ max_new_tokens=max_new_tokens,
33
+ temperature=temperature,
34
+ no_repeat_ngram_size=3
35
+ )
36
+
37
+ # Декодирование сгенерированного текста
38
+ decoded_output = tokenizer.decode(output[0], skip_special_tokens=True)
39
+ res = decoded_output.split("[assistant]")[1]
40
+ res.removesuffix("</s>")
41
+ res = res.strip()
42
+ return res
43
+
44
+ # Создание интерфейса Gradio
45
+ inputs = [
46
+ gr.Textbox(lines=5, label="Input Text"),
47
+ gr.Slider(minimum=0.1, maximum=1.9, value=1.0, label="Temperature", step=0.05),
48
+ gr.Slider(minimum=10, maximum=200, value=50, label="Max New Tokens", step=5)
49
+ ]
50
+ output = gr.Textbox(label="Output Text")
51
+
52
+ interface = gr.Interface(gen, inputs, output, title="GPT-2 Text Generation", theme="compact", description="Демонстрация <a href=https://huggingface.co/ERmak1581/rugpt3large_for_qna_120k1>модели</a> для задачи Question-Answer")
53
+ interface.launch(share=True)