Views
No views yet
1# 1. Import các thư viện cần thiết
2import torch
3from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline
4import time
5
6# 2. Định nghĩa model_id từ Hugging Face
7model_id = "phongnp2010/chatbot-llama-7b-chathf"
8
9# 3. Load Tokenizer và Model đã merge từ Hugging Face
10tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
11tokenizer.pad_token = tokenizer.eos_token
12tokenizer.padding_side = "right"
13
14# 4. Load mô hình đã merge (không cần phải load base model và merge lại)
15model = AutoModelForCausalLM.from_pretrained(
16 model_id,
17 low_cpu_mem_usage=True,
18 return_dict=True,
19 torch_dtype=torch.float16, # Sử dụng FP16 nếu bạn muốn tiết kiệm bộ nhớ GPU
20 device_map="auto", # Cấu hình auto device map nếu sử dụng nhiều GPU hoặc chuyển sang CPU
21)
22
23# 5. Khởi tạo Inference Pipeline
24pipe = pipeline(task="text-generation", model=model, tokenizer=tokenizer, max_length=2048)
25
26# 6. Thực hiện inference
27while True:
28 prompt = input("Type your question (or '0' to exit): ")
29 if prompt != '0':
30 start = time.time()
31 # Chạy inference
32 result = pipe(f"<s>[INST] {prompt} [/INST]") # Cách bạn chuẩn bị input (bằng cách sử dụng [INST] tag)
33 generated_text = result[0]['generated_text']
34
35 # Trích xuất câu trả lời từ text generated
36 answer = generated_text.split('[/INST]')[1].split('</s>')[0].strip()
37
38 print(f'Answer: {answer}')
39 print(f'Time: {time.time() - start} seconds')
40 else:
41 print('Thank you!')
42 break