Views
No views yet
1from peft import AutoPeftModelForCausalLM
2from transformers import GenerationConfig, AutoTokenizer
3import torch
4import time
5
6
7def generate_response(input_text: str) -> str:
8 """
9 Generate a response for the given input text using the Typhoon-7B model.
10
11 Parameters:
12 input_text (str): The input text prompt.
13
14 Returns:
15 str: The generated response.
16 """
17 # Initialize the tokenizer and model only once
18 tokenizer = AutoTokenizer.from_pretrained("Thaweewat/typhoon-7b-chat-alpaca")
19
20 model = AutoPeftModelForCausalLM.from_pretrained(
21 "Thaweewat/typhoon-7b-chat-alpaca",
22 low_cpu_mem_usage=True,
23 return_dict=True,
24 torch_dtype=torch.float16,
25 device_map="cuda")
26
27 generation_config = GenerationConfig(
28 do_sample=True,
29 top_k=1,
30 temperature=0.5,
31 max_new_tokens=300,
32 repetition_penalty=1.1,
33 pad_token_id=tokenizer.eos_token_id)
34
35 # Tokenize input
36 inputs = tokenizer(input_text, return_tensors="pt").to("cuda")
37
38 # Generate outputs
39 st_time = time.time()
40 outputs = model.generate(**inputs, generation_config=generation_config)
41
42 # Decode and print response
43 response = tokenizer.decode(outputs[0], skip_special_tokens=True)
44 print(f"Response time: {time.time() - st_time} seconds")
45 return response
46
47# Sample usage:
48input_text = "###Human: ใครคือนายกไทยคนปัจจุบัน ###Assistant: "
49print(generate_response(input_text))
50
51"""
52นายกรัฐมนตรีคนปัจจุบันของไทยคือพลเอกประยุทธ์ จันทร์โอชา เขาดำรงตำแหน่งนี้ตั้งแต่เดือนสิงหาคม 2557
53และได้รับเลือกอีกครั้งในการเลือกตั้งทั่วไปในปี 2562 เขาเป็นนายทหารที่เกษียณอายุแล้วและเคยดำรงตำแหน่งผู้บัญชาการ
54ทหารบกและผู้บัญชาการทหารสูงสุดมาก่อน เขาเป็นผู้นำรัฐบาลทหารตั้งแต่เดือนพฤษภาคม 2557 จนถึงเดือนธันวาคม 2559
55และเป็นผู้นำรัฐบาลพลเรือนตั้งแต่เดือนธันวาคม 2559 จนถึงปัจจุบัน เขาเป็นผู้นำรัฐบาลที่ดำรงตำแหน่งยาวนานที่สุดในประวัติศาสตร์ของไทย
56"""