Nonabzbssbbsbs commited on
Commit
5eff2e3
·
verified ·
1 Parent(s): a505019

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +58 -0
app.py ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from transformers import AutoTokenizer, AutoModelForCausalLM
2
+ import torch
3
+
4
+ # 1. Модель мен токенизатордың атын анықтау
5
+ model_name = "issai/Llama-3.1-KazLLM-1.0-8B"
6
+
7
+ # 2. Токенизаторды жүктеу
8
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
9
+
10
+ # 3. Модельді жүктеу (Ескерту: 8B модель үлкен, оған жеткілікті ЖҚЖ (RAM) немесе GPU қажет)
11
+ # Егер сізде GPU болмаса, `device_map="cpu"` немесе `device_map="auto"` қолдануға болады.
12
+ # Модельді жеделдету үшін `torch_dtype=torch.bfloat16` қосуға болады, бірақ ол GPU-ға байланысты.
13
+ model = AutoModelForCausalLM.from_pretrained(
14
+ model_name,
15
+ torch_dtype=torch.bfloat16,
16
+ device_map="auto" # Қол жетімді құрылғыға (GPU/CPU) автоматты түрде орналастыру
17
+ )
18
+
19
+ def kazakh_chatbot(prompt):
20
+ # Llama 3/KazLLM үшін диалог форматын дайындау
21
+ # Llama-ның арнайы форматын қолдану қажет болуы мүмкін.
22
+ # Қарапайым формат:
23
+ messages = [
24
+ {"role": "system", "content": "Сіз қазақ тіліндегі пайдалы және мейірімді чат-ботсыз. Барлық жауапты қазақ тілінде беріңіз."},
25
+ {"role": "user", "content": prompt}
26
+ ]
27
+
28
+ # Токенизация және генерация
29
+ input_ids = tokenizer.apply_chat_template(
30
+ messages,
31
+ tokenize=True,
32
+ add_generation_prompt=True,
33
+ return_tensors="pt"
34
+ ).to(model.device)
35
+
36
+ # Жауапты генерациялау
37
+ outputs = model.generate(
38
+ input_ids,
39
+ max_new_tokens=256, # Жауаптың максималды ұзындығы
40
+ do_sample=True,
41
+ temperature=0.7, # Шығудың креативтілігін басқару
42
+ top_p=0.9,
43
+ eos_token_id=tokenizer.eos_token_id
44
+ )
45
+
46
+ # Жауапты декодтау
47
+ response = tokenizer.decode(outputs[0][input_ids.shape[-1]:], skip_special_tokens=True)
48
+ return response
49
+
50
+ # Чат-ботты тексеру
51
+ user_input = "Қазақстанның астанасы қай қала?"
52
+ print(f"Сұрақ: {user_input}")
53
+ answer = kazakh_chatbot(user_input)
54
+ print(f"Жауап: {answer}")
55
+
56
+ # Егер Zero-Shot классификация қажет болса:
57
+ # Егер сізге тек сұрақтың тақырыбын анықтау (классификация) қажет болса, zero-shot классификациясын қолдануға болады.
58
+ # Бірақ бұл толыққанды чат-бот емес, мәтін жіктеуіш болады.