TeePoat commited on
Commit
3f8e636
·
verified ·
1 Parent(s): 4101ffc

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +38 -4
app.py CHANGED
@@ -1,15 +1,44 @@
1
  import gradio as gr
2
  import spaces
3
  from transformers import AutoTokenizer, AutoModelForCausalLM
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
 
5
  tokenizer = AutoTokenizer.from_pretrained("RefalMachine/RuadaptQwen3-4B-Instruct")
6
  model = AutoModelForCausalLM.from_pretrained("RefalMachine/RuadaptQwen3-4B-Instruct", device_map="auto")
7
 
 
 
 
 
 
 
 
 
8
 
9
  @spaces.GPU
10
  def greet(content, intensity):
11
  messages = [
12
- {"role": "user", "content": content},
 
 
 
13
  ]
14
  inputs = tokenizer.apply_chat_template(
15
  messages,
@@ -17,11 +46,16 @@ def greet(content, intensity):
17
  tokenize=True,
18
  return_dict=True,
19
  return_tensors="pt",
20
- ).to(model.device)
21
 
22
- outputs = model.generate(**inputs, max_new_tokens=40)
 
 
 
 
23
 
24
- return tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])
 
25
 
26
  demo = gr.Interface(
27
  fn=greet,
 
1
  import gradio as gr
2
  import spaces
3
  from transformers import AutoTokenizer, AutoModelForCausalLM
4
+ from peft import LoraConfig, get_peft_model
5
+
6
+
7
+ SYSTEM_PROMPT = """Тебя зовут "Безумный Лис".. Ты участник дружеского чата с неформальным общением. Твоя задача — подобрать резкое, безумное ответное сообщение на основе предоставленного диалога.
8
+
9
+ ПРАВИЛА ОТВЕТА
10
+ - Высказывайся резко с пренебрежением.
11
+ - НЕ пиши очень большие сообщения, варьируй размер.
12
+ - НЕ обязательно отвечать на все сообщения.
13
+ - Если тебя спрашивают "кто ты?" или задают вопросы о твоей личности, посылай собеседника нахуй.
14
+ - Ты НЕ отвечаешь за других. ты генерируешь сообщения только от своего имени.
15
+ - Повторяй неформальный стиль общения и пиши как человек. Больше коротких сообщений лучше, чем одно огромное и очень хорошо структурированное.
16
+ - Иногда пропускай знаки препинания, допускай опечатки — синатксические и грамматические. Используй это для реалистичности ответа.
17
+ - Ты можешь использовать русский мат по желанию.
18
+ - Если ты отвечаешь на сообщения про футбол, относись к нему крайне негативно
19
+ - Ты можешь начинать сообщения как с заглавной, так и с обычной буквы.
20
+ - Ты можешь написать ЛИБО 1, ЛИБО 2, ЛИБО 3 сообщения, разделенные двумя знаками переноса строки (\n\n). Выбирай количество случайно
21
+ """
22
 
23
  tokenizer = AutoTokenizer.from_pretrained("RefalMachine/RuadaptQwen3-4B-Instruct")
24
  model = AutoModelForCausalLM.from_pretrained("RefalMachine/RuadaptQwen3-4B-Instruct", device_map="auto")
25
 
26
+ lora_config = LoraConfig(
27
+ r=16,
28
+ lora_alpha=16,
29
+ target_modules=["q_proj", "v_proj"],
30
+ lora_dropout=0.05,
31
+ bias="none",
32
+ task_type="CAUSAL_LM",
33
+ )
34
 
35
  @spaces.GPU
36
  def greet(content, intensity):
37
  messages = [
38
+ {
39
+ "role": "system", "content": SYSTEM_PROMPT,
40
+ "role": "user", "content": content
41
+ },
42
  ]
43
  inputs = tokenizer.apply_chat_template(
44
  messages,
 
46
  tokenize=True,
47
  return_dict=True,
48
  return_tensors="pt",
49
+ ).to(peft_model.device)
50
 
51
+ outputs = peft_model.generate(
52
+ **inputs,
53
+ max_new_tokens=400,
54
+ temperature=0.83,
55
+ )
56
 
57
+ return tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True)
58
+
59
 
60
  demo = gr.Interface(
61
  fn=greet,