File size: 2,035 Bytes
42df73b
 
 
 
 
 
 
 
 
 
 
0ea9cc7
42df73b
0ea9cc7
42df73b
0ea9cc7
 
 
42df73b
0ea9cc7
 
42df73b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
---
language: en
license: mit
tags:
  - text-generation
  - causal-lm
  - llm
  - chatbot
  - llama-7b
  - fine-tuned
---

# Chatbot Llama-7B Fine-tuned for Chat

This model is a fine-tuned version of the Llama-7B model, trained for chatbot tasks using LoRA.

## How to use

You can use the model for text generation tasks. Here's an example of how to load the model and run inference.

```python
# 1. Import các thư viện cần thiết
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline
import time

# 2. Định nghĩa model_id từ Hugging Face
model_id = "phongnp2010/chatbot-llama-7b-chathf"  

# 3. Load Tokenizer và Model đã merge từ Hugging Face
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
tokenizer.pad_token = tokenizer.eos_token
tokenizer.padding_side = "right"

# 4. Load mô hình đã merge (không cần phải load base model và merge lại)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    low_cpu_mem_usage=True,
    return_dict=True,
    torch_dtype=torch.float16,  # Sử dụng FP16 nếu bạn muốn tiết kiệm bộ nhớ GPU
    device_map="auto",  # Cấu hình auto device map nếu sử dụng nhiều GPU hoặc chuyển sang CPU
)

# 5. Khởi tạo Inference Pipeline
pipe = pipeline(task="text-generation", model=model, tokenizer=tokenizer, max_length=2048)

# 6. Thực hiện inference
while True:
    prompt = input("Type your question (or '0' to exit): ")
    if prompt != '0':
        start = time.time()
        # Chạy inference
        result = pipe(f"<s>[INST] {prompt} [/INST]")  # Cách bạn chuẩn bị input (bằng cách sử dụng [INST] tag)
        generated_text = result[0]['generated_text']
        
        # Trích xuất câu trả lời từ text generated
        answer = generated_text.split('[/INST]')[1].split('</s>')[0].strip()
        
        print(f'Answer: {answer}')
        print(f'Time: {time.time() - start} seconds')
    else:
        print('Thank you!')
        break